Definition „Immutable System“ Was bedeutet Immutable?
Der Begriff Immutable bezieht sich in der IT auf unveränderliche Strukturen, das kann ein ganzes System, eine Betriebssystem-Plattform oder eine Infrastruktur sein. Bestimmte Elemente lassen sich dann nicht verändern.

Der englische Begriff „immutable“ bedeutet übersetzt, dass etwas unveränderlich ist. Diese Eigenschaft existiert in zahlreichen Systemen, wobei wir uns hier auf Computer- und Betriebssysteme sowie Infrastrukturelemente bezieht. Darüber hinaus existieren unveränderbare Elemente auch in anderen Umgebungen, wie Smart Contracts, die unveränderlich sind, um Nutzern Sicherheit über einen langen Zeitraum zu garantieren.
Generell wird mit diesem Ansatz das Ziel verfolgt, eine sehr stabile, leicht vorhersehbare Umgebung bereitzustellen. Unvorhergesehene Interaktionen zwischen verschiedenen Hard- oder Softwareanteilen sind in diesen Konfigurationen praktisch unmöglich. Kommt es auf eine absolut sichere Umgebung kann, können diese Systeme daher Vorteile verbuchen.
Immutable System: fest verankerte Computersysteme
Im Kontext von Computersystemen lassen sich deren Komponenten und Konfigurationen nicht veränderbar. Nach der ersten Einrichtung des Systems können somit keine oder nur in gewissen Bereichen erlaubte Veränderungen vorgenommen werden.
Falls ein solches System doch verändert werden soll, werden keine Komponenten ausgetauscht oder Updates eingespielt. Stattdessen wird das System von Grund auf neu erstellt oder es wird eine bereits existierende Vorlage (meist aus einer Image-Datei) herangezogen.
Wie eingangs erwähnt, bieten Immutable Systeme unter anderem den Vorteil der Sicherheit und Vorhersehbarkeit. Da jede kleinste Hard- und Softwarekomponente bekannt ist, können Fehler sofort nachvollzogen werden. Auch sind diese Systeme aufgrund des Ausbleibens jeglicher Veränderungen meist sehr stabil.
Immutable OS: das fixe Betriebssystem
Sobald ein solches Betriebssystem einmal installiert wurde, sind seine Systemdateien nicht ohne weiteres dauerhaft veränderbar. Das heißt, dass Updates nicht im klassischen Sinne eingespielt werden, und dass keine bestehenden Funktionen entfernt werden. Die Konfiguration eines Immutable OS wird niemals geändert und Komponenten werden nicht hinzugefügt oder entfernt.
Wie bei Computersystemen im Allgemeinen gilt auch hier, dass die Verwendung dieser Betriebssysteme dort stattfindet, wo Vorhersehbarkeit, Konsistenz und Stabilität Vorrang vor allen anderen Parametern haben. Dies ist etwa in der Industrie, aber auch in einigen Geräten in Unternehmen der Fall. In privaten Umgebungen sind diese OS-Formen hingegen noch eher selten anzutreffen.
Sollen Änderungen oder Updates vorgenommen werden, wird eine neue Instanz des jeweiligen OS erstellt und ausgerollt. Oft bleiben vorherige Versionen ähnlich wie einem Git-basierten System für einen Rollback erhalten, was mit dem Snapshot einer virtuellen Maschine vergleichbar ist.
Populäre unveränderliche Betriebssysteme sind NixOS und GUIxOS, Fedora Silverblue und openSUSE MicroOS oder auch carbon OS und Flatcar Container Linux. Diese vertrauen oft auf Flatpak als Installationsquelle für Anwendungen, da hier die Apps unabhängig lauffähig sind. Mit installierte, inkompatible Abhängigkeiten könnten hier ansonsten zu Problemen führen.
Immutable Infrastructure: festgelegte Strukturen für die IT
IT-Infrastrukturen sind in den meisten modernen Unternehmen auf kleiner bis großer Ebene anzutreffen. Je nach Einsatzzweck kann diese Infrastruktur unveränderlich sein. Nach diesen Prinzipien können an den laufenden Systemen innerhalb der Infrastruktur keine Veränderungen vorgenommen oder Ressourcen anders verteilt werden.
Die Vorteile sind, sofern korrekt angewendet, eine verbesserte Skalierbarkeit, eine unter Umständen höhere Ausfallsicherheit sowie eine leichte Reproduzierbarkeit bei Fehlern. Weitere Infrastrukturkomponenten können leicht hinzufügt werden, da jegliche Wechselwirkungen mit anderen Systemen im Verbund bekannt sind.
Ähnlich wie bei Computersystemen gilt auch hier, dass Veränderungen an Geräten nicht durch Updates, sondern durch das Aufspielen kompletter Datenimages durchgeführt werden, was Zeit kosten kann.
Nachteile unveränderlicher Systeme
Wie bereits erwähnt, profitieren unveränderbare Systeme von Vorteilen in Bereichen wie Sicherheit, Vorhersehbarkeit und Konsistenz. Zugleich gibt es jedoch einige Nachteile zu beachten:
- Der Ressourcenverbrauch kann beträchtlich ausfallen, da bestehende Systeme nicht aktualisiert, sondern komplett neu aufgesetzt werden müssen. Neue Instanzen müssen erstellt werden, was wesentlich aufwändiger sein kann als einfache Updates. Vor allem in Umgebungen, in denen häufige Aktualisierungen notwendig sind, kann dies problematisch und teuer sein.
- Die Reaktionsgeschwindigkeit auf Sicherheitslücken kann leiden. Andere, veränderbare Systeme können durch die Nutzung von Patches und Updates auf einen sicheren Stand gebracht werden. Ist ein System Immutable, muss eine komplett neue Instanz gestartet werden, die zuerst vorbereitet werden muss. Die Wartung dieser Systeme kann daher deutlich komplexer sein.
- Die Komplexität kann steigen, da im Voraus viel Planungs- und Konfigurationsarbeit notwendig ist. Images und Vorlagen müssen im Voraus bereitgestellt und verwaltet werden, was die Komplexität weiter erhöht. Generell ist viel Verwaltungsarbeit notwendig, die bei veränderbaren Systemen nicht gegeben ist.
- Die Persistenz von Daten kann leiden, da Mechanismen entworfen werden müssen, um Daten zu übertragen und zu speichern. Dies ist nicht immer einfach, wenn die zugrundeliegende Infrastruktur nicht verändert werden darf - was bedeutet, dass auch keine Daten gespeichert werden dürfen. Andere Mechanismen sind notwendig, die die Komplexität weiter erhöhen.
Vor- und Nachteile im Gleichgewicht
Elemente und Konfigurationen, die Immutable sind, verbuchen unterschiedliche Vor- und Nachteile. Ob sich die Einrichtung dieser Systeme in einer bestehenden Infrastruktur lohnt oder nicht, muss daher von Fall zu Fall betrachtet werden. Eine allgemeingültige Aussage darüber, welche Variante „besser“ ist, kann nicht getroffen werden: Der Anwendungsfall gibt vor, ob die Konfiguration unveränderbar oder veränderbar besser ist.
(ID:49455489)