Site Reliability Engineering (SRE)
Definition
SRE ist, was passiert, wenn man einen Software-Ingenieur bittet, ein Operations-Team zu designen. (Google)
Kernprinzipien
- Embrace Risk: Akzeptierte Fehlerrate
- Service Level Objectives: Messbare Ziele
- Eliminate Toil: Automatisierung
- Monitoring: Data-driven Decisions
- Release Engineering: Sichere Deployments
- Simplicity: Komplexität reduzieren
SLI, SLO, SLA
SLI (Service Level Indicator)
- Messbare Metrik
- Quantitative Erfassung
- Beispiele:
- Request Latency (p99)
- Error Rate
- Availability
- Throughput
SLO (Service Level Objective)
- Zielwert für SLI
- Intern definiert
- Beispiel: "99.9% der Requests < 200ms"
SLA (Service Level Agreement)
- Vertragliche Zusicherung
- Extern mit Kunden
- Konsequenzen bei Verfehlung
Error Budgets
Berechnung
Error Budget = 100% - SLO
Beispiel:
SLO = 99.9% Availability
Error Budget = 0.1% = ~43 Minuten/Monat
Nutzung
- Budget vorhanden: Feature-Entwicklung
- Budget erschöpft: Reliability-Fokus
- Balance zwischen Innovation und Stabilität
Die vier Golden Signals
- Latency: Request-Dauer
- Traffic: Request-Volumen
- Errors: Fehlerrate
- Saturation: Auslastung
Toil
Definition
Manuelle, repetitive, automatisierbare Arbeit ohne dauerhaften Wert.
Beispiele
- Manuelle Deployments
- Ticket-basierte Requests
- Manuelle Skalierung
- Routine-Maintenance
Ziel
- < 50% Toil
- Automatisierung priorisieren
- Zeit für Engineering
On-Call
Best Practices
- Klare Eskalation
- Runbooks vorhanden
- Blameless Postmortems
- Ausgewogene Rotation
- Kompensation
Blameless Postmortems
Inhalt
- Timeline
- Root Cause
- Contributing Factors
- Action Items
- Lessons Learned
Ziel
- System verbessern
- Keine Schuldzuweisungen
- Organisationales Lernen
SRE-Team-Modelle
| Modell | Beschreibung |
|---|---|
| Kitchen Sink | Ein SRE-Team für alles |
| Infrastructure | Fokus auf Plattform |
| Embedded | SRE in Produkt-Teams |
| Consulting | Beratend, nicht operativ |
CFTools Software implementiert SRE-Praktiken für zuverlässige Systeme.