Sobes.tech
Middle

Wat is ongewijzigde infrastructuur (Immutable Infrastructure)?

sobes.tech AI

Antwoord van AI

Deze aanpak houdt in dat infrastructuurcomponenten (servers, containers) niet worden gewijzigd na deployment. Elke wijziging vereist het creëren van een nieuwe instantie van het component met de benodigde configuraties en het vervangen van de oude.

Belangrijkste ideeën:

  • Eenvoudige rollback: Als een nieuwe versie problemen veroorzaakt, is het gemakkelijk terug te keren naar de vorige door het verkeer simpelweg naar de oude, ongewijzigde instanties te leiden.
  • Betrouwbaarheid: Vermijdt het risico van "configuratie drift" (configuration drift), waarbij handmatige wijzigingen op werkende servers leiden tot inconsistente toestanden.
  • Eenvoudig testen: Elke uitgerolde instantie wordt op dezelfde manier gebouwd, waardoor ontwikkel-, test- en productieomgevingen meer op elkaar lijken.
  • Schaalbaarheid: De aanpak werkt goed met horizontale schaalvergroting en automatische clusterbeheer.

Implementatievoorbeelden:

  • Gebruik van virtuele machine images (AMI in AWS) of containers (Docker images), die één keer worden gebouwd en niet worden gewijzigd na het starten.
  • Gebruik van tools zoals Packer om images te maken.
  • Orkestratoren zoals Kubernetes, die de levenscyclus van containers beheren en het eenvoudig vervangen van oude pods door nieuwe mogelijk maken.

Vergelijking met mutable infrastructuur:

Kenmerk Mutable infrastructuur Onveranderlijke infrastructuur
Wijzigingen Worden direct aangebracht op werkende instanties Wordt een nieuwe instantie gemaakt, de oude wordt vervangen
Rollback Moeilijk, vereist handmatige acties Eenvoudig, overschakelen naar oude instanties
Betrouwbaarheid Risico op configuratie drift Hoge consistentie
Beheer Vaak handmatig beheer, configuratie Gebruik van images, automatisering

Deze aanpak vereist meer automatisering bij het maken en uitrollen van componenten, maar verhoogt de voorspelbaarheid en betrouwbaarheid van de infrastructuur aanzienlijk.