Middle
Was ist eine unveränderliche Infrastruktur (Immutable Infrastructure)?
sobes.tech KI
Antwort von AI
Dieser Ansatz besteht darin, dass Infrastrukturkomponenten (Server, Container) nach der Bereitstellung nicht modifiziert werden. Änderungen erfordern die Erstellung einer neuen Instanz des Components mit den erforderlichen Konfigurationen und den Austausch der alten.
Hauptideen:
- Einfache Rücksetzung: Wenn eine neue Version Probleme verursacht, kann man einfach den Datenverkehr auf die alten, unveränderten Instanzen umleiten.
- Zuverlässigkeit: Beseitigt das Risiko des "Konfigurations-Derifs" (configuration drift), wenn manuelle Änderungen an laufenden Servern zu inkonsistenten Zuständen führen.
- Einfache Tests: Jede bereitgestellte Instanz wird auf die gleiche Weise gebaut, was Entwicklungs-, Test- und Produktionsumgebungen ähnlicher macht.
- Skalierbarkeit: Der Ansatz funktioniert gut mit horizontaler Skalierung und automatischer Clusterverwaltung.
Implementierungsbeispiele:
- Verwendung von Virtual Machine-Images (AMI in AWS) oder Containern (Docker-Images), die einmal gebaut werden und nach dem Start nicht verändert werden.
- Einsatz von Tools wie Packer zur Erstellung von Images.
- Orchestratoren wie Kubernetes, die den Lebenszyklus von Containern verwalten und das einfache Ersetzen alter Pods durch neue ermöglichen.
Vergleich mit veränderlicher Infrastruktur:
| Merkmal | Veränderliche Infrastruktur | Unveränderliche Infrastruktur |
|---|---|---|
| Änderungen | Werden direkt an laufenden Instanzen vorgenommen | Neue Instanz wird erstellt, alte ersetzt |
| Rollback | Schwierig, erfordert manuelle Eingriffe | Einfach, Umschalten auf alte Instanzen |
| Zuverlässigkeit | Risiko der Konfigurations-Derive | Hohe Konsistenz |
| Verwaltung | Häufig manuelle Verwaltung, Konfiguration | Verwendung von Images, Automatisierung |
Dieser Ansatz erfordert eine stärkere Automatisierung bei der Erstellung und Bereitstellung von Komponenten, erhöht jedoch die Vorhersehbarkeit und Zuverlässigkeit der Infrastruktur.