SLI vs SLO vs SLA: różnice i jak je ustawić
· 7 min czytania
W skrócie: SLI to co mierzysz, SLO to jaki cel chcesz osiągnąć, SLA to zobowiązanie umowne. Te terminy z książki Google SRE są jednymi z najczęściej używanych zwrotów w prowadzeniu usług webowych - i często mylonych.
W skrócie: SLI to co mierzysz, SLO to jaki cel chcesz osiągnąć, SLA to zobowiązanie umowne. Te terminy z książki Google SRE są jednymi z najczęściej używanych zwrotów w prowadzeniu usług webowych - i często mylonych.
SLI - Service Level Indicator
Konkretna metryka, którą kwantyfikujesz niezawodność usługi. Przykłady:
- % requestów, które zakończyły się HTTP 2xx lub 3xx w ostatnich 30 dniach
- % requestów z response time poniżej 500 ms
- % poprawnie dostarczonych emaili (delivered, nie bounced)
- Stosunek udanych transakcji płatniczych do wszystkich prób
Kluczowe cechy dobrego SLI:
- Mierzalny - istnieje konkretna metoda zbierania danych
- Istotny dla użytkownika - odzwierciedla rzeczywiste doświadczenie klienta, nie wewnętrzną metrykę techniczną
- Specyficzny - "uptime" jest zbyt mglisty; "% udanych requestów do /api/v1/orders w oknie 5-minutowym" to SLI
SLO - Service Level Objective
Wewnętrzny cel, jaką wartość ma SLI osiągać. Wyrażany procentowo za okno czasowe.
Przykłady:
- "99,9 % requestów do
/api/ordersma zakończyć się HTTP 2xx w 30 dni" - "95 % requestów ma response time poniżej 200 ms w 7 dni"
- "99,5 % transakcji płatniczych przejdzie pomyślnie w miesiącu kalendarzowym"
SLO jest wyższy niż SLA, aby mieć buffer. Jeśli SLA mówi 99,9 %, wewnętrzny SLO powinien być np. 99,95 % - aby mieć rezerwę na nieoczekiwane incydenty.
SLA - Service Level Agreement
Zobowiązanie umowne wobec klientów. Definiuje co się dzieje, gdy nie dotrzymasz SLO - typowo:
- Service credits - zwracasz część miesięcznej opłaty (10-50% w zależności od wielkości naruszenia)
- Termination rights - klient może wypowiedzieć umowę bez sankcji
- Obowiązek reportingu - musisz publikować postmortem i raporty uptime
SLA ma konsekwencje prawne. SLO to cel wewnętrzny.
Error budget
Kluczowa koncepcja SRE: downtime, na który możesz sobie pozwolić bez naruszenia SLO.
Przykład: SLO = 99,9 % uptime w 30 dniach. To 0,1 % dopuszczalnego downtime. 0,1 % z 30 dni = 43 minuty miesięcznie. To twój error budget.
Praktyczne konsekwencje:
- Jeśli masz już 35 min downtime w miesiącu, zostaje 8 min do "naruszenia SLO". Zespół powinien być konserwatywny przy kolejnych deployach.
- Jeśli masz 5 min downtime, masz 38 min budget na ryzyka - możesz robić bardziej agresywne zmiany, testy A/B, eksperymenty.
- Error budget rozwiązuje konflikt między szybkością innowacji (dev team) a stabilnością (ops team). Obaj śledzą to samo liczbę.
Praktyczny przykład: API e-commerce
SLI: % requestów HTTP do POST /api/checkout, które zakończyły się 2xx, mierzone w bucketach 1-minutowych w ostatnich 30 dniach.
SLO: ≥ 99,9 % udanych requestów w oknie rolling 30-day.
SLA (dla klientów Enterprise):
- ≥ 99,5 % uptime w miesiącu kalendarzowym
- Przy 99,0-99,5 % = 10% credit z miesięcznej opłaty
- Przy 95,0-99,0 % = 25% credit
- Przy < 95,0 % = 50% credit + prawo wypowiedzenia umowy
Error budget: SLO 99,9 % oznacza 43 min downtime / miesiąc na budget. SLA daje jeszcze większy buffer przed ekonomiczną penalizacją.
Podsumowanie: tabela
| Termin | Czym jest | Dla kogo |
|---|---|---|
| SLI | Konkretna metryka niezawodności | Zespół engineering |
| SLO | Wewnętrzny cel dla SLI | Engineering + product |
| SLA | Zobowiązanie umowne | Klient + legal |
| Error budget | Downtime na który możesz sobie pozwolić przed naruszeniem SLO | Engineering risk management |
Praktyczne błędy
- SLO zbyt ambitne. 99,99 % wymaga active-active redundancy w wielu regionach. Dla małej firmy nierealne.
- Tylko uptime SLO. Web może być "up" i mimo to nieużyteczny. Dodaj latency SLO i error rate SLO.
- SLA bez automatycznego pomiaru. Manualnie kalkulowany raport SLA jest niewiarygodny. Zainwestuj w automatyczne uptime tracking.
- SLO bez konsekwencji. Jeśli naruszenia SLO nikt nie obchodzi, nikt o nim nie pamięta. Linkuj do deploy freeze, on-call escalation, itd.
Wnioski
Framework SLI/SLO/SLA nie jest papierową biurokracją - to język, którym zespół engineering komunikuje się z business stakeholders o niezawodności. Bez tych terminów dyskusja o stabilności staje się subiektywna ("nasz web jest niestabilny"). Z nimi jest liczbowa ("w ostatnich 30 dniach osiągnęliśmy 99,87 % SLI, co jest poniżej naszego 99,9 % SLO - tu jest plan działania").
Mierz SLI w czasie rzeczywistym
ePulz.io zapewnia historyczny zapis uptime z rollupem 30/90/365-dniowym. Podstawa dla reportingu SLO.
Wypróbuj ePulz.io za darmo - 7 dni bez karty kredytowej.
Załóż konto