Unveränderliche Infrastruktur (Immutable Infrastructure)
Unveränderliche Infrastruktur (aus dem Englischen: Immutable Infrastructure) bezeichnet einen Ansatz zur Verwaltung von Diensten und Software-Deployments auf IT-Ressourcen, in denen Komponenten nicht geändert, sondern ersetzt werden. Eine Anwendung oder ein Dienst werden bei jeder auftretenden Änderung komplett neu ausgerollt.
In traditionellen Software-Deployments erfordert das Update eines Dienstes oder einer Anwendung, dass in der Produktivumgebung eine Komponente geändert wird, während der Dienst oder die Anwendung als solche unverändert und betriebsbereit bleiben.
Der Ansatz der unveränderlichen Infrastruktur setzt stattdessen auf Instanzen. Dabei werden Ressourcen in Rechnerressourcen vereint und bilden auf diese Weise den Dienst oder die Anwendung. Wird der Dienst oder die Anwendung weiterentwickelt, so bleiben die Komponenten bestehen – somit ist der Dienst oder die Anwendung unveränderlich und nicht in der Lage, sich zu verändern. Wird an einer oder mehreren Komponenten eines Dienstes oder einer Anwendung eine Änderung vorgenommen, so wird die gesamte Iteration neu zusammengestellt, getestet, geprüft und schließlich ausgerollt. Damit kann die bisherige Iteration aufgegeben und damit Ressourcen der Betriebsumgebung freigegeben oder für andere Zwecke eingesetzt werden.
Unveränderlichkeit begrenzt das Potenzial für Konfigurationsverschiebungenund schmälert damit die Angriffsfläche der IT-Infrastruktur. Bei unerwarteten Vorfällen wir die Uptime verbessert, weil Instanzen neu ausgerollt werden können statt aus verschiedenen Konfigurationen und Versionen neu zusammengestellt werden zu müssen.
Eine Deployment-Iteration führt in der Regel zum Erstelleneines gemeinsamen Image, das getestet und bestätigt werden kann. Cloud-Umgebungen verfügen über automatisierte Vorgänge, um Images für unveränderliche Operationen auszurollen.
Die Vorteile unveränderlicher Infrastruktur umfassen eine niedrigere Komplexität der IT und daraus folgend weniger Ausfälle, verbesserte Sicherheit und einfachere Fehlerbehebung als bei veränderlicher Infrastruktur. Das Patchen von Servern entfällt ebenso wie Konfigurationsänderungen, da ja jedes Update des Dienstes oder der Anwendung eine neue, getestete und aktuelle Instanz erzeugt. Die mühsame Dokumentationüber Änderungen entfällt einfach komplett. Erfüllt die neue Instanz nicht die Erwartungen, erfolgt einfach ein Rollback auf die vorhergehende Instanz, die den Anforderungen entsprach. Da in der Umgebung nicht mit einzelnen Komponenten gearbeitet wird, fällt die Wahrscheinlichkeit für unerwartetes Verhalten oder unerwünschte Folgen von Code-Änderungen erheblich geringer aus.
Das Konzept der unveränderlichen Infrastruktur befindet sich noch in einem Entwicklungsstadium. Es gibt nicht die eine richtige oder allgemeine Methode und auch nicht das eine richtige oder allgemeine Werkzeug zur Umsetzung des Konzepts. Vergleichbare Konzepte wie IT-Orchestrierung und Ressourcenverwaltung entwickeln sich derzeit noch. Ein Unternehmen, das das Konzept der unveränderlichen Infrastruktur übernehmen will, muss auf hochgradig entwickelte Geschäftsprozesse ebenso wie Netzwerk-, Server- und Speichergrundlagen verfügen.