Steady State (Stabilitätsmuster)
Steady State (deutsch stetiger Zustand) ist ein Stabilitätsmuster in der Informationstechnik.[1] Das Steady State-Muster kommt insbesondere bei der Containervirtualisierung zum Einsatz.
Funktionsweise
Steady State besagt, dass ein System in einem Produktionssystem nicht verändert werden darf. Anstatt ein Update des Systems durchzuführen, wird eine neue Version des Systems bereitgestellt.[1]
Veränderungen des Systems sind nicht zulässig. Auch Logdateien werden, soweit möglich, nicht auf dem Produktionssystem abgelegt, sondern auf einem zentralen System, welches die Daten aggregiert. Durch diese Zustandsfreiheit kann das System jederzeit ohne Datenverlust ersetzt werden.[1]
Versionierung
Die alte Version des Systems sollte zudem in Form einer Named Stable Base oder eines Virtual Server Snapshot bereitgehalten werden, sodass im Falle eines Fehlers der neuen Version des Systems wieder auf die ursprüngliche Version gewechselt werden kann.
Vorteile
Mittels eines Steady State besteht die Möglichkeit, die alte und die neue Version des Systems gleichzeitig zu betreiben. Dies ermöglicht es auch, alte Clienten weiter zu unterstützen, sowie die neue Version im Rahmen eines A/B-Tests zu verifizieren, bevor auf diese umgeschaltet wird. Des Weiteren werden Zero-Downtime-Migrationen ermöglicht.
Nachteile
Da die Systeme nicht automatisch aktualisiert werden, können zwischenzeitlich gefundene Sicherheitslücken des Systems durch Hacker ausgenutzt werden. Es ist daher nötig die Bereitstellung neuer Versionen der Infrastruktur und Dienste, sowie deren funktionale Verifikation mittels Softwaretests, weitestgehend zu automatisieren, um eine regelmäßige und rasche Aktualisierung mit Patches zu ermöglichen.
Quellen
- Michael T. Nygard: Release It! Design and Deploy Production-Ready Software. O'Reilly, 2007, ISBN 978-0-9787392-1-8, 5.4 Steady State (englisch, 326 S.).