
Een immutable infrastructure is een infrastructuur waarbij de servers achteraf niet meer gemodificeerd kunnen worden. De keuze tussen een immutable infrastructure en een mutable infrastructure is een lastige. Er komen veel dingen bij kijken. In welke omgeving gaat je applicatie komen, voor wie en wat zijn de consequenties. Dit zijn allemaal zware keuzes aangezien de rest van je applicatie en ook het functioneren ervan er zeer vanaf hangt. In deze blog worden alle voor- en nadelen voor je uiteengezet. Nieuwsgierig geworden? Lees gerust verder.
Een mutable infrastructure
Bij de traditionele mutable server infrastructure worden
servers continu geüpdatet en gemodificeerd op locatie. De engineers en
administrators die met dit soort infrastructure werken kunnen via Secure Shells
aan de servers werken. Ze kunnen de servers up- en downgraden, tweak
configuration uitvoeren en nieuwe code direct op de bestaande servers inzetten.
Oftewel, deze servers zijn mutable, veranderbaar. Je kunt ze veranderen nadat
ze gemaakt en ingesteld zijn. Infrastructure die bestaat uit mutable servers
kunnen zelf ook mutable genoemd worden.
Een immutable infrastructure
Een immutable infrastructure is een ander model voor
infrastructuur waarbij servers nooit gemodificeerd worden nadat ze zijn
gemaakt. Als iets geüpdatet, gerepareerd of aangepast moet worden, moeten er
nieuwe servers gebouwd worden en alles aangepast worden.
De voordelen van een immutable infrastructure zijn onder
andere betere consistentie, hogere betrouwbaarheid en een simpelere en beter
voorspelbaar deployment proces. Het kan de problemen met mutable
infrastructures volledig voorkomen of grotendeels afzwakken, denk dan aan
problemen als configuration drift en snowflake servers. Het gebruik van mutable
infrastructure bevat echter een uitgebreide implementatie automatisering,
snelle server voorziening in een cloud omgeving en oplossingen voor het
behandelen van data.
Verschillen tussen mutable en immutable
infrastructure
Het fundamentele verschil zit natuurlijk in het feit dat het
ene niet veranderd kan worden na het lanceren ervan, wat ervoor zorgt dat je ze
fysiek moet vervangen als je ze wil veranderen, en het andere kan wel veranderd
worden. Er zijn zowel praktische en conceptuele verschillen tussen server-based
mutable en immutable infrastructures.
Praktisch gezien is de mutable infrastructure een veel ouder
infrastructure model dat nog stamt uit de tijd van voor de core technologieën,
zoals virtualization en cloud computing. Deze core technologieën maken de immutable
infrastructure mogelijk en praktisch in gebruik. Met deze korte geschiedenis in
het achterhoofd kun je de context bij de conceptuele verschillen en de
implicaties daarvan begrijpen.
Op conceptueel niveau zijn de twee typen infrastructuur zeer
verschillend qua aanpak van de server zelf, dit is dus in het creëren,
onderhouden, updaten en vernietigen van en op de server.
Praktische verschillen
Voordat virtualization en cloud computing mogelijk werden,
was server infrastructuur volledig afhankelijk van fysieke servers. Dit was
natuurlijk heel erg duur dus het vervangen van deze servers werd weinig gedaan.
Hiervandaan komen de mutable infrastructures. In plaats daarvan was er veel
plaats voor het aanbrengen van veranderingen, updates en toevoegingen. De opkomst
van virtualization en on-demand/cloud computing zorgde voor een verandering. De
servers werden minder duur en konden simpel vervangen worden. Dit maakte dat deployment
workflows en server management technieken mogelijk werden voor de eerste keer. Door
de lage kosten en de vele mogelijkheden kwamen de immutable servers.
Conceptuele verschillen
Dankzij de fundamentele conceptuele verandering dat servers
weggegooid konden worden werd cloud computing mogelijk. Het is niet handig om
een fysieke server te vervangen maar een virtuele kan makkelijk, het is zelfs
efficiënt. Een mooie analoog die wordt gebruikt is de pets vs cattle analoog.
Het huisdier vs de kudde. Het huisdier, de mutable server, is niet te vervangen
omdat het uniek is. De kudde, de immutable server, is vervangbaar en dus veel
flexibeler voor bedrijven.
Voordelen van de immutable infrastructure
Geen van de deployments in een immutable infrastructure
hangen af van de vorige staat van een server en kunnen om die reden niet falen,
of gedeeltelijk voltooien. De nieuwe servers kunnen van te voren worden getest
waardoor het uiteindelijke deployment proces gemakkelijker gaat. De deployment
wordt dus volledig en succesvol, of er gebeurt helemaal niets. Dit maakt deployment
vele malen betrouwbaarder en zorgt ervoor dat de toestand van iedere server in
de infrastructuur altijd bekend is.
Alle configuratie veranderingen worden geïmplementeerd door
het toevoegen van een geüpdatete versie, in een versie controleur, met
documentatie. Dit gebeurt door gebruik te maken van een geautomatiseerd en
geünificeerd deployment proces om servers met een bepaalde versie te vervangen.
Dit voorkomt gecompliceerde en moeilijk reproduceerbare setups doordat het
risico van snowflake servers en configuration drift wordt geëlimineerd.
Door het gebruik van deze versie controleur kun je
gemakkelijk de geschiedenis van de server bijhouden en dus ook makkelijk terug
gaan naar een oudere versie, mocht je dingen willen veranderen.
Geef je trainingsplan (infra)structuur
bij Master it Training
Weten of een van deze trainingen echt iets voor jou is en op
welk niveau je deze training dan moet volgen? Een goed advies is een goed begin
en daarmee al het halve werk! Daarom helpen we je graag. Je kan rechtsonder op
het Chat venster klikken of bellen naar 040 23 23 390 voor advies over je
trainingstraject.