<EbeneX/>
Architektur DevOps · Updated 11. März 2026

SLA, SLO, SLI

Definition

Die drei Säulen der Service-Zuverlässigkeit – SLI misst, SLO definiert Ziele, SLA ist der Vertrag. Grundlage für Reliability Engineering.

Fortgeschritten 3 Min. Lesezeit EN: Service Level Agreement / Objective / Indicator

Einfach erklärt

SLI, SLO und SLA sind die drei Ebenen, um Service-Zuverlässigkeit zu definieren und zu messen.

Die Hierarchie:

SLA (Service Level Agreement)
│   "Wir garantieren 99.9% Verfügbarkeit, sonst Gutschrift"
│   → Vertrag mit Kunden, rechtlich bindend

└── SLO (Service Level Objective)
    │   "Unser internes Ziel: 99.95% Verfügbarkeit"
    │   → Strenger als SLA, gibt uns Puffer

    └── SLI (Service Level Indicator)
        "Gemessene Verfügbarkeit letzte 30 Tage: 99.97%"
        → Die tatsächliche Messung

Beispiel für eine API:

TypBeispiel
SLILatenz P99 = 145ms
SLOLatenz P99 soll unter 200ms sein
SLALatenz P99 unter 500ms, sonst 10% Gutschrift

Technischer Deep Dive

Typische SLIs

KategorieSLIMessung
VerfügbarkeitErfolgreiche Requests / Alle RequestsProzent
LatenzAntwortzeit P50, P95, P99Millisekunden
DurchsatzRequests pro SekundeRPS
FehlerrateFehler / Alle RequestsProzent
KorrektheitKorrekte Antworten / Alle AntwortenProzent

SLO Definition

# slo.yaml
slos:
  - name: api-availability
    description: "API sollte verfügbar sein"
    sli:
      type: availability
      good_events: "http_status < 500"
      total_events: "all requests"
    objective: 99.9%
    window: 30d
    
  - name: api-latency
    description: "API sollte schnell antworten"
    sli:
      type: latency
      threshold: 200ms
      percentile: 99
    objective: 99%
    window: 30d

Error Budget

SLO: 99.9% Verfügbarkeit über 30 Tage

Error Budget = 100% - 99.9% = 0.1%
             = 0.1% × 30 Tage × 24h × 60min
             = 43.2 Minuten Downtime erlaubt

Aktueller Verbrauch:
- Incident 1: 15 Minuten
- Incident 2: 10 Minuten
- Verbraucht: 25 Minuten (58%)
- Übrig: 18.2 Minuten (42%)

Prometheus SLI-Messung

# Verfügbarkeit SLI
- record: sli:api_availability:ratio
  expr: |
    sum(rate(http_requests_total{status!~"5.."}[5m]))
    /
    sum(rate(http_requests_total[5m]))

# Latenz SLI (P99 unter 200ms)
- record: sli:api_latency:ratio
  expr: |
    sum(rate(http_request_duration_seconds_bucket{le="0.2"}[5m]))
    /
    sum(rate(http_request_duration_seconds_count[5m]))

SLO-basiertes Alerting

# Alert wenn Error Budget zu schnell verbraucht wird
groups:
  - name: slo-alerts
    rules:
      - alert: ErrorBudgetBurnRate
        expr: |
          (
            1 - sli:api_availability:ratio
          ) > 14.4 * (1 - 0.999)
        for: 5m
        labels:
          severity: critical
        annotations:
          summary: "Error Budget wird zu schnell verbraucht"

Die 9er-Tabelle

VerfügbarkeitDowntime/JahrDowntime/Monat
99% (zwei 9)3.65 Tage7.3 Stunden
99.9% (drei 9)8.76 Stunden43.8 Minuten
99.95%4.38 Stunden21.9 Minuten
99.99% (vier 9)52.6 Minuten4.38 Minuten
99.999% (fünf 9)5.26 Minuten26.3 Sekunden

SLI ist wie ein Thermometer (misst Temperatur), SLO ist wie die Wunschtemperatur (20°C), SLA ist wie der Mietvertrag (Vermieter garantiert funktionierende Heizung, sonst Mietminderung).

SLI (Indicator): Was messen wir? (z.B. Latenz, Verfügbarkeit)

SLO (Objective): Was ist unser Ziel? (z.B. 99.9% Verfügbarkeit)

SLA (Agreement): Was versprechen wir Kunden? (mit Konsequenzen)

API-Services

Latenz und Verfügbarkeit für externe APIs garantieren

ML-Inference

Antwortzeiten und Accuracy für Modell-Endpoints

Cloud-Dienste

AWS, GCP, Azure haben SLAs für ihre Services

Enterprise-Verträge

Vertragliche Zusagen an Geschäftskunden

Was ist der Unterschied zwischen SLO und SLA?

SLO ist intern (unser Ziel). SLA ist extern (Vertrag mit Kunden). SLOs sollten strenger sein als SLAs, um Puffer zu haben.

Wie viele 9en brauche ich?

99% = 3.65 Tage Downtime/Jahr. 99.9% = 8.76 Stunden. 99.99% = 52 Minuten. Mehr 9en = exponentiell teurer. Wähle basierend auf Business-Anforderungen.

Was ist ein Error Budget?

Die erlaubte Fehlerquote. Bei 99.9% SLO hast du 0.1% Error Budget. Wenn aufgebraucht: Keine neuen Features, nur Stabilität.

Dein persönliches Share-Bild für Instagram – 1080×1080px, bereit zum Posten.