further rework to the documentation

This commit is contained in:
Codex Agent
2025-11-20 12:31:21 +01:00
parent 6afa44d947
commit 9afcaa7836
90 changed files with 1721 additions and 29 deletions

126
docs/ops/oncall-roles.md Normal file
View File

@@ -0,0 +1,126 @@
---
title: Rollen & On-Call-Handbuch
sidebar_label: 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-Probleme**`ops/media-storage-spec.md`, `ops/guest-notification-ops.md`.
- **Photobooth**`ops/photobooth/ops_playbook.md`.
- **Abrechnung**`ops/billing-ops.md`.
- **DSGVO-Fälle**`ops/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.