Tijmen van den Brink
Tijmen van den Brink Architect
3 juli 2020

Pas op voor Kubernetes ‘Pets’

Als we in de IT de afgelopen decennia iets hebben geleerd, dan is het dat het verstandig is je niet al teveel aan je IT te hechten. Misschien dat je er begin deze eeuw nog mee weg kwam om een server “Bowser” te noemen en hem jarenlang te onderhouden als je kindje, maar tegenwoordig weten we dat het verstandiger is geen emotionele band te vormen met technologie. In het Engels wordt de analogie met Pets versus Cattle gebruikt – huisdieren versus vee. Een Pet geef je een naam. Je verzorgt en vertroetelt hem en doet je uiterste best er een lang en gelukkig leven mee te hebben. Cattle is inwisselbaar. Het is puur functioneel vee: als het niet langer geschikt is voor de functie die het heeft, is het rijp voor de slacht en tijd voor een nieuwe.

“ Tegenwoordig weten we dat het verstandiger is geen emotionele band te vormen met technologie.”

Het klinkt een beetje harteloos, maar bedenk waar we het over hebben. We leven in een wereld waarin we snel willen schalen en schakelen. We doen er alles aan om zo flexibel mogelijk te zijn, en om daar te komen maken we gebruik van cloud en agile werkmethoden, DevOps en CI/CD. Onze hele werkmethodiek is strikt functioneel geworden, en dat moet ook, anders zien we door de bomen het bos niet meer.

Waarde van containers

In deze snelle en complexe wereld is geen plaats voor uniek en onmisbaar, maar willen we juist inwisselbare eenheden van betrouwbare en consistente kwaliteit. Als er iets veranderd moet worden in de setup, is het niet de bedoeling dat we dat op individuele serverbasis handmatig gaan aanpassen, maar dat het een wijziging is in de desired state die vervolgens voor elke server gaat gelden. In zo’n setup is geen plaats voor servers die we “Zeus”, “Trillian” of “Marvin” noemen. Je hebt veel meer aan VM0011 die je in een handomdraai kunt inwisselen voor VM2351, die je op zijn beurt zonder aarzelen naast VM2847 kunt zetten omdat je weet dat ze identiek aan elkaar zijn.

Als je met containers gaat werken, wordt de Cattle-filosofie al helemaal onmisbaar. In containerland is geen ruimte voor individuele eigenheid – de waarde van containers zit juist in het feit dat je ze met Kubernetes allemaal kunt hoeden als vee: juist het feit dat je kunt vertrouwen op hun inwisselbaarheid maakt containers zo waardevol.

Geen plaats meer voor Pets

Maar hier gebeurt wel iets raars. Iedereen is het erover eens dat de desired state-principes en de onveranderlijkheid van containers heel belangrijk zijn, maar we passen deze principes vaak niet of nauwelijks toe bij de systemen die de containerkuddes managen. Die Kubernetes-clusters zijn toch vaak weer Pets: we gebruiken misschien een blueprint om ze op te tuigen, maar vervolgens passen we ze toch weer individueel aan. We zien in de praktijk bijvoorbeeld dat verschillende Kubernetes-clusters worden gebruikt voor Productie, Acceptatie en Test – en dat deze als Pets worden behandeld. Daar willen we nu juist vandaan blijven.

Werken met Kubernetes vereist dat we vooruit denken. Er zijn allerlei redenen (zoals edge computing) waarom we in de toekomst steeds meer K8s-clusters gaan inzetten die we naast elkaar moeten managen. Tegelijkertijd moeten we security en compliancy blijven waarborgen. De basis hiervoor is dat we ook onze clusters als Cattle gaan behandelen. In een toekomstbestendige IT-infrastructuur is geen plaats meer voor Pets – zelfs niet als de technologie nog druk bezig is volwassen te worden.

Meld je aan voor de Solvinity Nieuwsbrief

Ontvang het laatste nieuws, blogs, artikelen en events. Meld je aan voor onze nieuwsbrief.

Lees ook

Meer