Kurzfassung
Ein Rolling Upgrade ersetzt laufende Instanzen einer Anwendung einzeln oder in kleinen Batches durch neue, sodass der Service während des gesamten Deployments verfügbar bleibt – ohne doppelte Umgebungen zu benötigen.
Was ist ein Rolling Upgrade?
Bei einem Rolling Upgrade entnimmt das Deployment-System eine Teilmenge der Instanzen aus der Load-Balancer-Rotation, aktualisiert sie auf die neue Version, überprüft ihre Gesundheit und fährt dann mit dem nächsten Batch fort. Dies setzt sich fort, bis alle Instanzen die neue Version ausführen. Zu keinem Zeitpunkt ist der gesamte Service offline.
Kubernetes unterstützt Rolling Upgrades nativ über seine Deployment-Ressource. Parameter wie maxUnavailable und maxSurge steuern, wie viele Pods während des Rollouts nicht verfügbar oder überprovisioniert sein dürfen. Ein Rollback ist unkompliziert: Kubernetes kann auf das vorherige ReplicaSet zurückwechseln, wenn die neuen Pods ihre Readiness-Probes nicht bestehen.
Die größte Herausforderung bei Rolling Upgrades ist die Rückwärtskompatibilität: Während der Übergangsphase laufen alte und neue Version gleichzeitig und müssen dieselben Anfragen, Datenbankschemata und API-Verträge verarbeiten. Dies erfordert sorgfältiges Versionsmanagement und den Einsatz von Feature Flags.
Warum ist Rolling Upgrade relevant?
- Keine Umgebungsverdopplung: Im Gegensatz zu Blue/Green benötigen Rolling Upgrades keine zweite vollständige Produktionsumgebung
- Schrittweise Risikoexposition: Probleme mit der neuen Version treten inkrementell auf, nicht alle auf einmal
- Native Kubernetes-Unterstützung: Kubernetes Deployments implementieren Rolling Upgrades als Standard-Release-Strategie