Files
fotospiel-app/docs/ops/oncall-roles.md
2025-11-20 12:31:21 +01:00

5.7 KiB
Raw Blame History

title, sidebar_label
title sidebar_label
Rollen & On-Call-Handbuch Rollen & On-Call

Dieses Dokument beschreibt, wer im Betrieb wofür zuständig ist und wie OnCallBereitschaft organisiert wird. Es ergänzt die technischen Runbooks um eine klare Verantwortungsebene.

Hinweis: Konkrete Namen/Kontaktdaten sollten nicht in Git stehen, sondern getrennt (z.B. in einem internen Adressbuch oder PasswortSafe). Dieses Dokument definiert Rollen und Prozesse.

1. Rollenübersicht

1.1 Platform Ops

  • Verantwortlich für:
    • Infrastruktur (Docker/DokployStacks, Netzwerke, TLS, Backups).
    • Technische Verfügbarkeit der Services (App, Queues, DB, Redis, Storage).
    • Umsetzung und Pflege der Runbooks unter docs/ops/.
  • Typische Aufgaben:
    • Deployments koordinieren (docker-compose, Dokploy, Migrations).
    • Monitoring/Alerting pflegen (ops/monitoring-observability.md).
    • IncidentResponse bei SEV1/SEV2 (ops/incidents-major.md).

1.2 On-Call Engineer

  • Rolle, die im wechselnden Turnus (z.B. wöchentlich) OnCall ist.
  • Verantwortlich für:
    • Reaktion auf laufende Alerts (Monitoring, Pager, ChatBots).
    • Erstes Triage nach ops/incidents-major.md.
    • Eskalation an weitere Rollen (z.B. Platform Ops, Produkt, Security).
  • Voraussetzungen:
    • Zugriff auf ProduktionsLogs, MonitoringDashboards, Dokploy/Horizon.
    • Vertraut mit den wichtigsten Runbooks (PublicAPI, Storage, Photobooth, Billing).

1.3 Support / Customer Success

  • Verantwortlich für:
    • Kontakt mit Tenants (EMail/Telefon/Chat).
    • Übersetzung technischer Probleme in Kundensprache.
    • Sammeln aller relevanten Informationen, bevor an OnCall/Platform Ops eskaliert wird.
  • Typische Aufgaben:
    • Tickets aus dem HelpSystem triagieren.
    • Proaktive Kommunikation bei Events („Wir haben ein UploadProblem identifiziert, wir arbeiten daran“).

1.4 Produkt / Engineering Leads

  • Verantwortlich für:
    • Entscheidungen bei FeatureFlags, Rollbacks, HotfixReleases.
    • Priorisierung langfristiger Maßnahmen nach Incidents (docs/process/roadmap.md, docs/process/todo/*).
  • Typische Aufgaben:
    • Teilnahme an Postmortems.
    • Freigabe von riskanteren Änderungen (z.B. große Migrations).

2. On-Call-Modell

2.1 Bereitschaftszeiten

Empfohlene Einteilung (anpassbar an dein Team):

  • Bürozeiten (z.B. 09:0017:00)
    • OnCall ist die jeweils zuständige PlatformOpsPerson des Tages.
    • Reaktionsziel: 15 Minuten bei SEV1/2, 60 Minuten bei SEV3.
  • Außerhalb der Bürozeiten / Event-Spitzen
    • Optional: Rotierender OnCallDienst mit Rufbereitschaft.
    • Reaktionsziel: nach individueller Vereinbarung (z.B. 3060 Minuten bei SEV1).

Wenn ihr keinen formalen 24/7Dienst habt, sollte klar dokumentiert sein, wann keine garantierte Reaktionszeit besteht (z.B. nachts/wochenends) und wie das Kunden gegenüber kommuniziert wird.

2.2 Rotation & Übergabe

  • OnCallRotation (z.B. wöchentlich) im Teamtool (Kalender/IssueTracker) pflegen.
  • Vor Start einer Schicht:
    • Offene Incidents und bekannte Problemzonen durchgehen.
    • Sicherstellen, dass Aufrufwege funktionieren (Chat, Telefon, Pager).
  • Nach Schicht:
    • Kurze Übergabe an nächste OnCallPerson (offene Themen, laufende Beobachtungen).

3. Eskalationspfad bei Incidents

3.1 Standard-Eskalation (SEV-2/3)

  1. OnCall nimmt Alert entgegen, prüft grob die Lage (ops/incidents-major.md → Triage).
  2. Wenn Problem lösbar erscheint:
    • Runbooks anwenden (z.B. PublicAPIPlaybook, MedienRunbook, PhotoboothOps).
    • Kundenkommunikation via Support abstimmen.
  3. Wenn unklar oder größer:
    • PlatformOps bzw. Engineering Lead im Chat markieren.
    • IncidentThread mit Statusupdates führen.

3.2 SEV-1 (kritisch)

  1. OnCall ruft sofort PlatformOps und ggf. ProduktLead in den IncidentThread.
  2. Falls nötig, mit Produkt die Entscheidung für:
    • Rollback auf letztes Release,
    • temporäre Abschaltung einzelner Features (FeatureFlags),
    • Aktivierung einer MaintenanceSeite treffen.
  3. Support/Success informieren betroffene Tenants mit kurzem Status und ETA (auch wenn ETA noch grob ist).

4. Tools & Zugänge

Für OnCall/PlatformOps sollten mindestens folgende Zugänge eingerichtet und getestet sein:

  • Dokploy / Docker-Orchestrierung
    • Zugriff auf ComposeStacks, Logs, HealthChecks.
  • Horizon / Queue-Monitoring
    • Zugriff auf /horizon (nur für SuperAdmins).
  • Logs
    • Zentralisierte Logs (Loki/ELK) oder SSHZugriff zur Maschine mit storage/logs.
  • Monitoring/Alerts
    • Zugang zu Uptime/MonitoringService (StatusDashboard, AlertKonfiguration).

Stelle sicher, dass OnCallPersonen ausprobiert haben, ob sie diese Tools tatsächlich erreichen können (VPN, 2FA, etc.), bevor eine Schicht beginnt.

5. Verbindung zu den Runbooks

Bei einem Incident sollte die OnCallPerson immer vom Betriebshandbuch aus denken:

  • Einstieg über docs/ops/operations-manual.md (DocusaurusStartseite).
  • Je nach Symptome:
    • API-/Frontend-Probleme → PublicAPIPlaybook (ops/deployment/public-api-incident-playbook.md), ggf. Marketing/GuestPWASpezifikationen in docs/prp/ (in PRP, nicht im OpsBereich).
    • Upload/Storage-Problemeops/media-storage-spec.md, ops/guest-notification-ops.md.
    • Photoboothops/photobooth/ops_playbook.md.
    • Abrechnungops/billing-ops.md.
    • DSGVO-Fälleops/compliance-dsgvo-ops.md.

Dieses Dokument soll nicht alle technischen Details wiederholen, sondern sicherstellen, dass immer klar ist, wer reagiert und welches Runbook als nächstes geöffnet werden sollte.