Waarom je een container-expert moet worden
Containers zijn hip. Is dat voldoende reden om je in de dingen te specialiseren? In wezen is het natuurlijk altijd interessant om op de hoogte te zijn van opkomende technologie, maar wat containers betreft zijn er nog enkele extra argumenten.
1. Virtuele machines
Wie de technologiewereld op de voet volgt, kan niet om containers heen. Je zou haast denken dat iedereen vandaag cloud native toepassingen ontwikkelt met microservices in het achterhoofd. In de praktijk slaagt dat natuurlijk tegen. De oude en trouwe virtuele machine is verre van dood en heeft zo haar eigen voordelen. Toch is het interessant om je tot container-expert te ontpoppen.
Laten we eerst even naar het waarom van de container kijken. In den beginne was er de fysieke server, met daarop een besturingssysteem en een bijhorende toepassing. Die aanpak was toereikend, tot de wet van Moore ervoor zorgde dat de rekenkracht van zelfs bescheiden servers de vraag van veel applicaties begon te overtreffen.
Aan het begin van de jaren 2000 bood de oplossing zich aan met virtualisatie. De technologie laat je toe om meerdere virtuele computers op één fysieke server te draaien. Iedere virtuele machine (VM) heeft zijn eigen besturingssysteem met daarop een toepassing. VM’s zijn intussen commodity.
2. Licht en flexibel
Containers gaan nog een stapje verder. Een VM moet een digitale computer met eigen besturingssysteem bevatten en weegt al snel verschillende gigabytes, zelfs wanneer er slechts een éénvoudige toepassing op draait. De container lost dat probleem op door een applicatie te verpakken met enkel die componenten van het OS die nodig zijn om de toepassing te draaien. Zo weegt een container slechts enkele megabytes.
De voordelen ken je wel: de dingen hebben per definitie een app en de bijhorende dependencies aan boord, dus ze zijn draagbaar. Containers opstarten gaat erg vlot en ze zijn klein, wat schaalbaarheid ten goede komt. Verder nodigen ze uit om met microservices te werken. Zo hoef je geen grote monolithische toepassing meer te ontwikkelen, maar bouw je een applicatie uit verschillende componenten die individueel in containers draaien. Die componenten kan je eenvoudig bewerken en updaten. Dat brengt een bonus met zich mee: loopt er iets mis met één component, dan gaat niet de hele achterliggende toepassing offline.
3. De keerzijde
Waarom gebruikt dan niet iedereen containers vandaag? Twee belangrijke nadelen staan adoptie en de weg en vooral het tweede maakt het zo interessant voor ontwikkelaars om zich in de technologie te verdiepen.
Het eerste nadeel is technisch en heeft betrekking op beveiliging. Verschillende VM’s op één server zijn bijna volledig van elkaar gescheiden. In de praktijk kunnen toepassingen van twee verschillende bedrijven in de cloud op VM’s op dezelfde fysieke server draaien, zonder risico. De dingen hebben hun eigen OS en praten met hun eigen gevirtualiseerde versie van de onderliggende hardware.
Containers hebben weliswaar hun eigen dependencies aan boord, maar ze delen één besturingssysteem op een server. Dat OS is zo slechts één keer geïnstalleerd waardoor de container zo licht en draagbaar is, maar brengt wel een theoretisch beveiligingsrisico met zich mee. Wie kan prutsen met het OS waarop containers draaien, kan in theorie alle containers aantasten.
4. Nadeel of voordeel?
Het tweede nadeel is praktisch: containers zijn relatief nieuw en slechts weinig IT’ers zijn echte experts. Een ontwikkelaar met ervaring in cloud native ontwikkeling met containers is zo zeldzaam als een eenhoorn. Organisaties die containers willen omarmen, stoten tegen een gebrek aan gekwalificeerd personeel aan.
Misschien wil een organisatie de legacy-infrastructuur wel omvormen naar handige toekomstbestendige containertoepassingen, maar ontbreekt het aan beschikbare experts. Daar komt nog bij dat de zeldzaamheid van juiste profielen een premium met zich meebrengt. De lonen liggen hoger, dus de toepassingen zijn iets duurder. Dat financiële detail in combinatie met de flessenhals van de beschikbaarheid, houdt massale adoptie tegen.
Vervelend voor bedrijven, handig voor jou. Wie de juiste kwalificaties verwerft, heeft een erg populair profiel zelfs onder al gegeerde IT’ers. Alle andere voor- en nadelen van containers terzijde, is dat het belangrijkste argument om je kennis bij te schaven of op pijl te houden.