Rolling Deployment ist eine Methode zur schrittweisen Bereitstellung einer neuen Softwareversion, bei der die Anwendung Server für Server oder Knoten für Knoten aktualisiert wird. Ziel ist es, eine kontinuierliche Verfügbarkeit der Anwendung während des Updates sicherzustellen, indem immer nur ein Teil der Infrastruktur aktualisiert wird, während der Rest weiterhin die alte Version verwendet.
Wie funktioniert es?
- Inkrementelles Update: Die neue Version wird auf einem Teil der Server (z. B. einem Server in einem Cluster) bereitgestellt. Der Rest der Server bedient weiterhin den Benutzerverkehr mit der alten Version.
- Überwachung: Jeder aktualisierte Server wird überwacht, um sicherzustellen, dass die neue Version stabil und funktionsfähig ist. Wenn keine Probleme auftreten, wird der nächste Server aktualisiert.
- Fortschreitende Aktualisierung: Dieser Prozess wird fortgesetzt, bis alle Server auf die neue Version aktualisiert wurden.
- Rollback-Fähigkeit: Wenn auf einem der aktualisierten Server Probleme festgestellt werden, kann das Deployment gestoppt oder ein Rollback auf die vorherige Version durchgeführt werden, bevor weitere Server aktualisiert werden.
Vorteile:
- Kontinuierliche Verfügbarkeit: Da immer nur ein Teil der Infrastruktur aktualisiert wird, bleibt die Anwendung für Benutzer verfügbar.
- Risikominimierung: Probleme können auf einem kleinen Teil der Infrastruktur erkannt werden, bevor sie die gesamte Anwendung betreffen.
- Effizient für große Systeme: Besonders bei großen verteilten Systemen ist es effizient, schrittweise vorzugehen, anstatt die gesamte Anwendung auf einmal zu aktualisieren.
Nachteile:
- Längere Bereitstellungszeit: Da die Aktualisierung schrittweise erfolgt, dauert der gesamte Deployment-Prozess länger als bei einem vollständigen Deployment.
- Komplexität bei der Überwachung: Es kann schwieriger sein, verschiedene Versionen parallel zu überwachen und sicherzustellen, dass sie korrekt interagieren, insbesondere wenn es um Datenstrukturen oder APIs geht.
- Dateninkonsistenz: Wie bei anderen Deployment-Strategien, bei denen mehrere Versionen gleichzeitig aktiv sind, kann es zu Problemen bei der Datenkonsistenz kommen.
Ein Rolling Deployment ist ideal für große, skalierbare Systeme, die eine kontinuierliche Verfügbarkeit erfordern, und reduziert das Risiko durch eine schrittweise Bereitstellung.