SLI, SLO, SLA: meriame dostupnosť bez ilúzií
V skratke: SLI je čo merate, SLO je aký cieľ chcete dosiahnuť, SLA je zmluvný záväzok. Tieto pojmy z Google SRE knihy sú jedno z najpoužitejších slovných spojení v provozovaní webových služieb - a často miešaných.
SLI - Service Level Indicator
Konkrétna metrika, ktorou kvantifikujete spoľahlivosť služby. Príklady:
- % requestov, ktoré skončili HTTP 2xx alebo 3xx za posledných 30 dní
- % requestov s response time pod 500 ms
- % správne doručených emailov (delivered, nie bounced)
- Pomer úspešných platobných transakcií ku všetkým pokusom
Kľúčové vlastnosti dobrého SLI:
- Merateľný - existuje konkrétna metóda zberu dát
- Užívateľsky relevantný - odráža reálnu skúsenosť zákazníka, nie internú technickú metriku
- Špecifický - "uptime" je príliš vágne; "% úspešných requestov na /api/v1/orders za 5-minútové okno" je SLI
SLO - Service Level Objective
Interný cieľ, ktorú hodnotu má SLI dosahovať. Vyjadruje sa percentuálne za časové okno.
Príklady:
- "99,9 % requestov na
/api/ordersmá skončiť HTTP 2xx za 30 dní" - "95 % requestov má response time pod 200 ms za 7 dní"
- "99,5 % platobných transakcií prejde úspešne za kalendárny mesiac"
SLO je vyšší ako SLA, aby ste mali buffer. Ak SLA hovorí 99,9 %, interný SLO by mal byť napr. 99,95 % - aby ste mali rezervu na neočakávané incidenty.
SLA - Service Level Agreement
Zmluvný záväzok voči zákazníkom. Definuje čo sa stane, keď nedodržíte SLO - typicky:
- Service credits - vrátite časť mesačného poplatku (10-50% podľa veľkosti porušenia)
- Termination rights - zákazník môže vypovedať zmluvu bez sankcie
- Reporting povinnosť - musíte publikovať postmortem a uptime reporty
SLA má právne dôsledky. SLO je interný cieľ.
Error budget
Kľúčový koncept SRE: downtime, ktorý si môžete dovoliť bez porušenia SLO.
Príklad: SLO = 99,9 % uptime za 30 dní. To je 0,1 % povoleného downtime. 0,1 % z 30 dní = 43 minút mesačne. Toto je váš error budget.
Praktické dôsledky:
- Ak máte už 35 min downtime v mesiaci, zostáva 8 min do "porušenia SLO". Tím by mal byť konzervatívny pri ďalších deployoch.
- Ak máte 5 min downtime, máte 38 min budget na riziká - môžete robiť agresívnejšie zmeny, A/B testy, experimenty.
- Error budget rieši konflikt medzi rýchlosťou inovácie (dev team) a stabilitou (ops team). Obaja sledujú rovnaké číslo.
Praktický príklad: e-commerce API
SLI: % HTTP requestov na POST /api/checkout, ktoré skončili 2xx, merané v 1-minútových bucketoch za posledných 30 dní.
SLO: ≥ 99,9 % úspešných requestov za rolling 30-day window.
SLA (pre Enterprise customers):
- ≥ 99,5 % uptime za kalendárny mesiac
- Pri 99,0-99,5 % = 10% credit z mesačného poplatku
- Pri 95,0-99,0 % = 25% credit
- Pri < 95,0 % = 50% credit + právo vypovedať zmluvu
Error budget: 99,9 % SLO znamená 43 min downtime / mesiac na budget. SLA dáva ešte väčší buffer pred ekonomickou penalizáciou.
Zhrnutie: tabuľka
| Pojem | Čo to je | Pre koho |
|---|---|---|
| SLI | Konkrétna metrika spoľahlivosti | Engineering tím |
| SLO | Interný cieľ pre SLI | Engineering + product |
| SLA | Zmluvný záväzok | Zákazník + legal |
| Error budget | Downtime ktorý si môžete dovoliť pred SLO breach | Engineering risk management |
Praktické chyby
- SLO príliš ambiciózne. 99,99 % vyžaduje active-active redundancy v multiple regions. Pre malú firmu nereálne.
- Iba uptime SLO. Web môže byť "up" a aj tak nepoužiteľný. Pridajte latency SLO a error rate SLO.
- SLA bez automatického merania. Manuálne kalkulovaný SLA report je nedôveryhodný. Investujte do automatizovaného uptime trackingu.
- SLO bez consequences. Ak SLO breach nikoho nezaujíma, nikto sa o ňom nestará. Linkujte na deploy freeze, on-call escalation, atď.
Záver
SLI/SLO/SLA framework nie je papierová byrokracia - je to jazyk, ktorým engineering tím komunikuje so business stakeholdermi o spoľahlivosti. Bez týchto pojmov sa diskusia o stabilite stáva subjektívnou ("náš web je nestabilný"). S nimi je číselná ("za posledných 30 dní sme dosiahli 99,87 % SLI, čo je pod naším 99,9 % SLO - tu je akčný plán").
Merajte SLI v reálnom čase
ePulzio poskytuje historický uptime záznam s 30/90/365-dňovým rollupom. Základ pre SLO reporting.
Spustiť monitoring →