Unter unveränderlicher Infrastruktur (immutable infrastructure) versteht man die Praxis, Server und Umgebungen nach dem Ausrollen nicht mehr zu verändern. Statt ein laufendes System zu patchen oder umzukonfigurieren, wird ein neues, vollständig konfiguriertes Abbild erzeugt und das alte ersetzt.
Das Problem mit veränderlichen Servern
In gewachsenen Umgebungen hat jeder Server seine eigene Geschichte. Ein Update wurde hier eingespielt, dort nicht; ein Paket fehlt auf einer Maschine, eine Konfigurationsdatei wurde vor zwei Jahren von Hand geändert und nie dokumentiert. Solche Systeme werden als Snowflakes (Schneeflocken) bezeichnet: Jede ist einzigartig, und niemand weiß genau, wie sie entstanden ist. Die Folgen sind ernst:
- Fehler lassen sich nicht reproduzieren, weil die Umgebung nicht reproduzierbar ist.
- Ein Testsystem verhält sich anders als die Produktion.
- Wiederherstellung im Notfall dauert lange, weil der Weg unbekannt ist.
- Sicherheitsupdates bleiben auf einzelnen Maschinen liegen.
Der unveränderliche Ansatz
Der Ablauf kehrt sich um: Das vollständige Abbild wird gebaut, getestet und dann ausgerollt. Änderungen sind ausschließlich neue Abbilder. Technisch braucht das drei Bestandteile:
- Abbild-Bau: Packer oder ein Container-Build erzeugen ein versioniertes Abbild.
- Tests am Abbild: Prüfungen laufen im gebauten Image, nicht erst auf der laufenden Maschine.
- Ersetzen statt ändern: Beim Ausrollen werden alte Instanzen durch neue ersetzt – bei Servern über die Infrastrukturverwaltung, bei Containern durch einen neuen Pod.
Nutzen
- Reproduzierbarkeit: Dasselbe Abbild erzeugt immer dasselbe System. „Läuft bei mir“ verliert seine Bedeutung.
- Einfacher Rollback: Die vorherige Version ist das vorherige Abbild. Ein Rückrollen ist ein Zeigerwechsel, keine Reparatur.
- Sicherheit: Der Patch-Stand ist auf allen Instanzen identisch und bekannt; Patch-Management wird planbar.
- Automatisierung: Was keinen Zustand hat, braucht keine Konfigurationsdrift-Korrektur.
Der Preis
Unveränderliche Infrastruktur verlangt Disziplin und Werkzeuge. Konfiguration muss zentral verwaltet werden (Ansible, Terraform), Geheimnisse müssen außerhalb des Abbilds liegen, und zustandsbehaftete Dienste wie Datenbanken lassen sich nicht einfach ersetzen. Dort arbeitet man mit Datenreplikation und kontrolliertem Umschalten statt mit Austausch. Auch die Bauzeit wächst: Ein neues Abbild zu erstellen dauert länger als ein Paket zu installieren. In der Praxis wird deshalb abgestuft gearbeitet – Container und zustandslose Server unveränderlich, Datenbanken und Sonderfälle sorgfältig einzeln geführt.
Verwandte Grundlagen: Packer, Konfigurationsmanagement, Terraform, Docker-Grundlagen.