Wartungsmodus

Verwalte Wartungsfenster mit automatischem Stoppen und Starten von Containern.

Operation Modes

ReadyStackGo verfolgt den Betriebszustand jedes Deployments separat vom Health-Status. So kannst du zwischen geplanter Downtime und echten Ausfällen unterscheiden.

Verfügbare Modi

🟢 Normal

Normalbetrieb, alle Services sollten laufen

🔧 Maintenance

Geplante Wartung, Services können gestoppt sein

🔄 Migrating

Upgrade oder Migration läuft

🔴 Failed

Operation fehlgeschlagen, Eingriff nötig

⏹️ Stopped

Stack absichtlich gestoppt

Automatisches Container-Lifecycle

Beim Wechsel in den Wartungsmodus werden Container automatisch verwaltet:

Container-Lifecycle:

  • Normal → Maintenance: Alle Stack-Container werden gestoppt
  • Maintenance → Normal: Alle Stack-Container werden gestartet

Container ausschließen

Manche Container (wie Datenbanken) sollten während der Wartung weiterlaufen. Nutze das rsgo.maintenance Label:

services:
  postgres:
    image: postgres:16
    labels:
      rsgo.stack: my-app
      rsgo.maintenance: ignore  # Wird nicht gestoppt

  api:
    image: myapp/api:latest
    labels:
      rsgo.stack: my-app
      # Kein rsgo.maintenance = wird gestoppt

Anwendungsfälle

  • Datenbank-Migrationen: App-Container stoppen, Migrationen ausführen, neustarten
  • Backup-Fenster: Services während Backups stoppen
  • Konfigurationsänderungen: Sichere Config-Changes ohne Traffic
  • Upgrades: Kontrollierte Versionswechsel mit Rollback-Support

Maintenance Observers

Synchronisiere den Wartungsmodus automatisch mit externen Systemen. Konfiguriere Observer, die externe Zustände überwachen und den Wartungsmodus automatisch auslösen.

SQL Extended Property

Überwache Datenbank-Properties von Legacy- oder Backend-Systemen

SQL Query

Führe eigene Queries für komplexe Wartungsbedingungen aus

HTTP Endpoint

Überwache externe Status-APIs oder Maintenance-Endpoints

File Observer

Beobachte Maintenance-Flag-Dateien von Legacy-Systemen

# Beispiel: Sync mit ERP-Wartungsmodus
maintenanceObserver:
  type: sqlExtendedProperty
  connectionString: ${DB_CONNECTION}
  propertyName: ams.MaintenanceMode
  maintenanceValue: "1"
  normalValue: "0"
  pollingInterval: 30s

Echtzeit UI-Updates

Modusänderungen werden sofort via SignalR gepusht:

  • Dashboard zeigt aktuellen Operation Mode
  • Health-Status im Modus-Kontext interpretiert
  • Verfügbare Aktionen basierend auf aktuellem Modus
  • Modus-Historie für Audit Trail

API Integration

PUT /api/deployments/{id}/operation-mode
{
  "newMode": "Maintenance",
  "reason": "Geplantes wöchentliches Backup"
}

Vorteile

  • Kontrollierte Downtime: Klare Unterscheidung zwischen geplanten und ungeplanten Ausfällen
  • Automatisches Lifecycle: Kein manuelles Container Stop/Start nötig
  • Selektiver Ausschluss: Kritische Services weiterlaufen lassen
  • Audit Trail: Nachvollziehen wer den Modus wann geändert hat