Infrastruktur
Runbooks
Schritt-für-Schritt-Abläufe für Betrieb und Deployments
Release deployen (Staging -> Production)
Wege:
- Automatisch nach Merge: Workflow "Build & Push Images" auf
staging/productionbaut und pusht nach ACR/GHCR; "Deploy - Auto (after Build)" startet Terraform Cloud apply mit Image Digests. - Manuell: "Build & Push Images" via
workflow_dispatchstarten (Digests erzeugen), dann "Reusable - Terraform Cloud Apply" mitfrontend_digest,backend_digest,revision_suffixanstossen.
Schritte (manuell):
- "Build & Push Images" auf dem Branch (
stagingoderproduction) ausführen. - Artifact
image-digestsnotieren (enthältbackend=sha256:...undfrontend=sha256:...). - Terraform Apply Workflow mit folgenden Inputs starten:
target_branch: staging/productionimage_tag: wie Branch (für Tag-Referenzen)frontend_digest,backend_digest: Digests einfügenrevision_suffix: Commit-SHA, um neue Revisions zu erzwingen
Release Rollback
Option A (ältere Digests redeployen):
- In Actions -> früheren erfolgreichen "Build & Push Images" Run öffnen,
image-digestsherunterladen -> Apply mit diesen Digests auslösen.
Option B (Tag Rollback):
- Falls Tags genutzt werden,
image_tagauf vorherigen Tag setzen und neuenrevision_suffixvergeben.
Validierung: Container Apps Revisions prüfen; sicherstellen, dass Traffic auf die gewünschte Revision zeigt.
Secrets & Keys rotieren
Scope:
- Payrexx:
PAYREXX_API_SECRET,PAYREXX_WEBHOOK_SECRET - Better Auth:
BETTER_AUTH_SECRET - Google OAuth:
GOOGLE_CLIENT_SECRET(in der Web App für Better Auth) - Plunk:
PLUNK_API_KEY - Database:
DATABASE_URL(bei Passwort-Rotation)
Schritte:
- Key Vault Secrets in der Ziel-Umgebung aktualisieren (z. B.
bfs-staging-kv). - Für Frontend Config Container App Env oder KV Secret-Namen anpassen.
- Deployment mit neuem
revision_suffixauslösen, damit Änderungen ausgerollt werden. - Prüfen:
- Payrexx Webhook-Signatur (
/v1/payments/webhooks/payrexx). - Better Auth Login (OTP + Google) funktioniert.
- Plunk Zustellung oder Dev-Preview-Endpoints.
- Database-Verbindung aktiv.
- Payrexx Webhook-Signatur (
SumUp Nutzer:innen & Affiliate Key aktualisieren
Affiliate Key:
- CI Secret
SUMUP_AFFILIATE_KEYwird im Android Release Workflow verwendet; für Release-Builds verpflichtend.
Geräte-Login:
- In der POS App: Falls nicht angemeldet, triggert Android vor Checkout den SumUp-Login.
- Geräte aktualisieren: Logout/Login am Gerät; die Web-POS hört auf
bfs:sumup:resultEvents.
Validierung:
- Kleine Kartentransaktion in Staging durchführen; prüfen, ob Beleg um Kartendaten ergänzt wird.
POS URL (Android) aktualisieren
- Property:
POS_URL. - Release-Builds benötigen
POS_URLvia Gradle Property (-PposUrl) oder Env; Dev/Staging haben Defaults. - Test: Dev-Build installieren,
/poslädt; prüfen, obwindow.PosBridgein der Web-POS erkannt wird.
App neu starten / skalieren
- Restart: Azure Portal -> Container Apps -> Revision Actions (oder auf 0 skalieren und wieder hoch).
- Scale:
min_replicas,max_replicasund Scale Rules inenvs/<env>/main.tfändern -> Terraform apply.
Logs & Metriken ansehen
- Container Apps Console Logs: Azure Portal -> Container App -> Console/Logs.
- Log Analytics (KQL):
- Fehler: nach
5xxfiltern, nach Pfad aggregieren. - Latenz: Perzentile pro Route; Revisions vergleichen.
- Fehler: nach
- Payrexx: Webhook-Zustellungen korrelieren;
/v1/payments/{id}Status prüfen.
Neue Umgebung erstellen
envs/stagingnachenvs/<new>kopieren; Namen (RG, Env, KV, ACR) und Scaling anpassen.- Backend konfigurieren (Key Vault Mappings, URLs): Secrets
database-url,better-auth-url,payrexx-*setzen. - GitHub Environment Variablen/Secrets einrichten.
- Deployment via Terraform (lokal oder Terraform Cloud).
Incident Response
- Erhöhte 5xx:
- Zur vorherigen Revision rollen; Logs vergleichen; letzte Änderungen prüfen.
- Payment Ausfälle:
- Payrexx Status prüfen; Webhook-Signatur verifizieren; notfalls manuell abgleichen.
- Database Connectivity:
- Connection String prüfen; PostgreSQL erreichbar? Flyway-Migrationen aktuell?
- CORS Blocks:
- Trusted Origins im Backend prüfen.