Stack Upgrade & Rollback
Diese Anleitung erklärt, wie Sie bestehende Deployments auf neuere Versionen aktualisieren und wie der automatische Rollback-Mechanismus Ihre Deployments schützt.
Überblick
Abschnitt betitelt „Überblick“ReadyStackGo bietet integrierte Unterstützung für:
- Versionserkennung - Automatische Prüfung auf verfügbare Updates
- Stack Upgrade - Aktualisierung eines laufenden Deployments auf eine neue Version
- Automatisches Rollback - Wiederherstellung des vorherigen Zustands bei Upgrade-Fehlern
Upgrade-Prozess
Abschnitt betitelt „Upgrade-Prozess“Wie Upgrades funktionieren
Abschnitt betitelt „Wie Upgrades funktionieren“Bei einem Upgrade führt ReadyStackGo folgende Schritte durch:
- Snapshot erstellen - Erfasst den aktuellen Zustand (Version, Variablen, Services)
- Neue Images laden - Lädt die Container-Images der neuen Version herunter
- Neue Container starten - Startet die aktualisierten Services
- Point of No Return - Sobald die Container laufen, ist das Upgrade committed
- Snapshot löschen - Entfernt den Snapshot nach erfolgreichem Upgrade
Auf Updates prüfen
Abschnitt betitelt „Auf Updates prüfen“Auf der Deployment-Detailseite prüft ReadyStackGo automatisch, ob eine neuere Version im Katalog verfügbar ist. Bei verfügbarem Upgrade erscheint ein blaues Banner:
“Upgrade verfügbar: 1.0.0 → 2.0.0”
Das Banner zeigt außerdem:
- Neue Variablen - In der neuen Version hinzugefügte Variablen
- Entfernte Variablen - Variablen, die nicht mehr existieren
Ein Upgrade durchführen
Abschnitt betitelt „Ein Upgrade durchführen“- Navigieren Sie zu Deployments und wählen Sie Ihr Deployment
- Wenn ein Upgrade verfügbar ist, klicken Sie auf den Upgrade-Button
- Bestätigen Sie das Upgrade im Dialog
- Überwachen Sie den Fortschritt in Echtzeit über die Live-Fortschrittsanzeige
Echtzeit-Fortschrittsverfolgung
Abschnitt betitelt „Echtzeit-Fortschrittsverfolgung“ReadyStackGo bietet Live-Fortschrittsupdates während Upgrades via SignalR:
- Fortschrittsbalken - Zeigt den Gesamtfortschritt in Prozent
- Aktuelle Phase - Zeigt die aktuelle Operation an (Images laden, Services starten, etc.)
- Service-Zähler - Zeigt, wie viele Services bereits verarbeitet wurden
- Live-Status - Grüner Indikator bestätigt Echtzeit-Verbindung
Die Fortschrittsupdates erfolgen automatisch ohne Seitenaktualisierung. Bei temporärem Verbindungsverlust zeigt die UI “Verbindung wird wiederhergestellt…” an und setzt die Updates nach Wiederherstellung fort.
Variablenbehandlung beim Upgrade
Abschnitt betitelt „Variablenbehandlung beim Upgrade“Beim Upgrade auf eine neue Version:
- Bestehende Variablen werden beibehalten und mit der neuen Konfiguration zusammengeführt
- Neue Pflichtfelder müssen vor dem Upgrade-Start konfiguriert werden
- Entfernte Variablen werden nicht mehr verwendet, aber die Werte bleiben im Snapshot erhalten
Rollback-Mechanismus
Abschnitt betitelt „Rollback-Mechanismus“Point of No Return Semantik
Abschnitt betitelt „Point of No Return Semantik“ReadyStackGo verwendet ein “Point of No Return”-Modell für Upgrades:
| Phase | Rollback möglich? | Beschreibung |
|---|---|---|
| Snapshot erstellt | Nein | Upgrade hat noch nicht begonnen |
| Images laden | Ja | Bei Fehler beim Image-Pull ist Rollback möglich |
| Container starten | Ja | Bei Fehler beim Container-Start ist Rollback möglich |
| Container laufen | Nein | Point of No Return überschritten |
| Upgrade abgeschlossen | Nein | Snapshot wurde gelöscht |
Wann ein Rollback verfügbar ist
Abschnitt betitelt „Wann ein Rollback verfügbar ist“Ein Rollback ist verfügbar, wenn:
- Das Upgrade vor dem Containerstart fehlgeschlagen ist
- Ein Snapshot existiert vom fehlgeschlagenen Upgrade-Versuch
Wenn Sie ein bernsteinfarbenes “Rollback verfügbar”-Banner auf der Deployment-Detailseite sehen, können Sie den vorherigen Zustand wiederherstellen.
Ein Rollback durchführen
Abschnitt betitelt „Ein Rollback durchführen“- Navigieren Sie zum fehlgeschlagenen Deployment
- Klicken Sie auf den Rollback-Button im bernsteinfarbenen Banner
- Bestätigen Sie den Rollback auf der dedizierten Rollback-Seite
- Überwachen Sie den Rollback-Fortschritt in Echtzeit
- Das Deployment wird auf die vorherige Version zurückgesetzt
Rollback-Fortschrittsverfolgung
Abschnitt betitelt „Rollback-Fortschrittsverfolgung“Genau wie bei Upgrades bieten auch Rollbacks Echtzeit-Fortschrittsupdates:
- Fortschrittsbalken - Zeigt den Rollback-Fortschritt in Prozent
- Aktuelle Phase - Zeigt Operationen wie “Alte Container entfernen”, “Images laden”, “Services starten”
- Live-Updates - Automatische Updates via SignalR-Verbindung
Die Rollback-Seite zeigt vor dem Start einen Bestätigungsbildschirm, der Ihnen ermöglicht zu überprüfen, auf welche Version zurückgesetzt wird.
API-Endpunkte
Abschnitt betitelt „API-Endpunkte“Auf Upgrade prüfen
Abschnitt betitelt „Auf Upgrade prüfen“GET /api/environments/{environmentId}/deployments/{deploymentId}/upgrade/checkAntwort:
{ "success": true, "upgradeAvailable": true, "currentVersion": "1.0.0", "latestVersion": "2.0.0", "latestStackId": "source:product:stack", "newVariables": ["NEW_VAR"], "removedVariables": ["OLD_VAR"], "canUpgrade": true, "cannotUpgradeReason": null}Upgrade durchführen
Abschnitt betitelt „Upgrade durchführen“POST /api/environments/{environmentId}/deployments/{deploymentId}/upgradeContent-Type: application/json
{ "stackId": "source:product:stack", "variables": { "NEW_VAR": "value" }, "sessionId": "signalr-session-id"}Rollback-Info abrufen
Abschnitt betitelt „Rollback-Info abrufen“GET /api/environments/{environmentId}/deployments/{deploymentId}/rollbackAntwort:
{ "canRollback": true, "rollbackTargetVersion": "1.0.0", "snapshotDescription": "Before upgrade to v2.0.0", "snapshotCreatedAt": "2024-01-15T10:30:00Z"}Rollback durchführen
Abschnitt betitelt „Rollback durchführen“POST /api/environments/{environmentId}/deployments/{deploymentId}/rollbackContent-Type: application/json
{ "sessionId": "signalr-session-id"}Die sessionId ist optional, aber für Echtzeit-Fortschrittsverfolgung empfohlen. Wenn angegeben, sollte der Client sich beim SignalR Deployment Hub mit dieser Session-ID anmelden, bevor der Endpunkt aufgerufen wird.
Best Practices
Abschnitt betitelt „Best Practices“Vor dem Upgrade
Abschnitt betitelt „Vor dem Upgrade“- Release Notes prüfen - Überprüfen Sie, was sich in der neuen Version geändert hat
- Daten sichern - Wenn Ihr Stack persistente Volumes verwendet, erwägen Sie ein Backup
- In Entwicklungsumgebung testen - Probieren Sie das Upgrade zuerst in einer Nicht-Produktionsumgebung
- Wartung planen - Verwenden Sie den Wartungsmodus, um Alarme während des Upgrades zu vermeiden
Umgang mit fehlgeschlagenen Upgrades
Abschnitt betitelt „Umgang mit fehlgeschlagenen Upgrades“Wenn ein Upgrade fehlschlägt:
- Fehlermeldung prüfen - Verstehen Sie, warum das Upgrade fehlgeschlagen ist
- Logs überprüfen - Prüfen Sie Container-Logs für detaillierte Fehlerinformationen
- Rollback durchführen - Nutzen Sie die Rollback-Funktion, um den vorherigen Zustand wiederherzustellen
- Problem beheben - Beheben Sie die Ursache, bevor Sie das Upgrade erneut versuchen
Versionsstrategie
Abschnitt betitelt „Versionsstrategie“- Aktuell bleiben - Regelmäßige Updates enthalten Sicherheitsfixes und Verbesserungen
- Erst testen - Testen Sie Upgrades immer in Nicht-Produktionsumgebungen
- Änderungen dokumentieren - Behalten Sie den Überblick, welche Versionen wo eingesetzt sind
Fehlerbehebung
Abschnitt betitelt „Fehlerbehebung“”Upgrade nicht möglich” Meldung
Abschnitt betitelt „”Upgrade nicht möglich” Meldung“| Grund | Lösung |
|---|---|
| ”Deployment muss laufen” | Starten Sie das Deployment zuerst, dann upgraden |
| ”Keine neuere Version verfügbar” | Die aktuelle Version ist bereits die neueste |
| ”Produkt nicht im Katalog gefunden” | Stellen Sie sicher, dass die Stack-Quelle noch konfiguriert ist |
Rollback nicht verfügbar
Abschnitt betitelt „Rollback nicht verfügbar“Rollback ist nur verfügbar, wenn:
- Das Deployment im Status Failed ist
- Ein Snapshot existiert vom fehlgeschlagenen Upgrade
Wenn das Upgrade den Point of No Return passiert hat (Container wurden gestartet), ist der Snapshot bereits gelöscht und ein Rollback nicht mehr möglich.