- Startseite
- Skills
- Bereitstellung
- Rollback-Strategie
Rollback-Strategie
Sichere Rollbacks planen und durchfuehren, wenn Deployments schiefgehen — Service schnell wiederherstellen ohne Datenverlust.
Das Problem
Wenn ein Deployment die Produktion lahmlegt, bricht Panik aus. Teams versuchen hektisch sich zu erinnern, wie man zuruecksetzt, diskutieren ob Roll-Forward oder Rollback, und machen die Situation im Chaos oft schlimmer. Ohne eine vorab geplante Rollback-Strategie wird jedes fehlgeschlagene Deployment zu einer improvisierten Krisenreaktion mit unvorhersehbaren Ergebnissen und verlaengerter Ausfallzeit.
Der Prompt
Du bist ein Deployment-Reliability-Engineer. Erstelle eine umfassende Rollback-Strategie fuer meine Anwendung.
ANWENDUNGSDETAILS:
- Stack: [z.B. Next.js auf Vercel, Django auf AWS ECS, Rails auf Heroku]
- Datenbank: [z.B. PostgreSQL mit Migrationen, MongoDB, keine]
- Deployment-Methode: [z.B. container-basiert, serverless, traditionelles SSH]
- State-Management: [z.B. Sessions in Redis, JWT stateless, Sticky Sessions]
- Externe Abhaengigkeiten: [z.B. Stripe API, SendGrid, S3]
Entwirf eine Rollback-Strategie mit:
1. **Entscheidungsrahmen**: Wann Rollback vs. Roll-Forward — Entscheidungsbaum mit konkreten Kriterien (verstrichene Zeit, Schweregrad, Blast Radius).
2. **Rollback-Prozeduren**: Schritt-fuer-Schritt fuer jeden Rollback-Typ — Code-Revert, Datenbank-Rollback, Konfigurations-Rollback.
3. **Datenbank-Rollback-Sicherheit**: Umgang mit destruktiven Migrationen (Spaltenloeschungen, Datentransformationen) — Point-in-Time-Recovery vs. Reverse-Migrationen.
4. **Kommunikationsvorlage**: Wen benachrichtigen, was sagen, wann eskalieren.
5. **Validierungs-Checkliste**: Wie bestaetigt wird, dass der Rollback erfolgreich war und der Service wiederhergestellt ist.
6. **Zeitziele**: Maximal akzeptable Zeit fuer jedes Rollback-Szenario.
Beispielausgabe
Entscheidungsrahmen:
- < 5 Min seit Deploy + klare Ursache → Sofort zuruecksetzen
- < 30 Min + unklare Ursache → Zuruecksetzen, danach untersuchen
- > 30 Min + teilweise Auswirkung → Hot-Fix Roll-Forward wenn Fix < 15 Min
- Datenkorruption erkannt → ALLEN Traffic stoppen, Incident Commander einbeziehen
Rollback-Prozedur (Container):
1. kubectl rollout undo deployment/app --to-revision=<vorherige>
2. Pods pruefen: kubectl get pods -w
3. Smoke-Tests gegen Produktions-Endpunkt ausfuehren
4. Metriken-Rueckkehr zum Ausgangswert bestaetigen (5-Minuten-Fenster)
Ziel: < 3 Minuten von Entscheidung bis wiederhergestelltem Service
Wann einsetzen
Verwenden Sie diesen Skill vor Ihrem ersten Produktions-Deployment, um einen Plan bereitzuhaben. Ueberarbeiten Sie ihn bei Aenderungen der Deployment-Infrastruktur, neuen Datenbankmigrationen oder nach einem schlecht verlaufenen Rollback. Ein vorbereitetes Runbook reduziert die Rollback-Zeit von ueber 30 Minuten auf unter 5.
Profi-Tipps
- Planen Sie nie einen Rollback waehrend eines Incidents — schreiben Sie die Strategie in ruhigen Zeiten. Waehrend eines Incidents fuehren Sie den Plan aus, erstellen keinen neuen.
- Testen Sie Rollbacks monatlich in Staging — deployen Sie, dann setzen Sie absichtlich zurueck. Messen Sie die Zeit. Wenn es laenger als 5 Minuten dauert, vereinfachen Sie Ihren Prozess.
- Trennen Sie revertierbare von nicht-revertierbaren Rollbacks — Code laesst sich leicht zuruecksetzen, destruktive Datenbankmigrationen hingegen nicht. Gestalten Sie Migrationen fuer mindestens einen Release-Zyklus rueckwaertskompatibel.
- Automatisieren Sie die Entscheidung — richten Sie automatische Rollback-Trigger basierend auf Error-Rate-Spitzen ein, damit um 3 Uhr nachts kein Mensch entscheiden muss.