Ile znaczą „dziewiątki”
Poniższe przybliżenia dotyczą czasowej dostępności w okresie 365 dni, bez wyłączeń. Kontrakt rozliczany miesięcznie wymaga obliczenia każdego miesiąca osobno.
- 99% (dwie dziewiątki): do ~3,65 dnia niedostępności rocznie.
- 99,9% (trzy dziewiątki): do ~8,76 godziny rocznie.
- 99,95%: do ~4,38 godziny rocznie.
- 99,99% (cztery dziewiątki): do ~52,6 minuty rocznie.
Jak mierzyć uczciwie
Zdefiniuj, co znaczy sukces: odpowiedź, poprawna treść i limit czasu na ważnej ścieżce. Czasowe uptime i udział udanych żądań to różne SLI; okres bez ruchu nie oznacza 100% sukcesów żądań. Zapisz okno, regiony, wyłączenia i źródło pomiaru, zanim porównasz wynik z celem.
Przykład
Przykład SLO 99,9% dla dokładnie 30 dni: 30 × 24 × 60 × 60 × (1 − 0,999) = 2592 s. Po 20 minutach awarii pozostaje 23 min 12 s w tym samym oknie. To arytmetyka SLO, nie interpretacja umowy SLA; niewykorzystany czas nie przechodzi automatycznie do następnego okresu.
Okno: 30 dni
SLO: 99,9%
Budżet: 43 min 12 s
Awaria: 20 min
Pozostało: 23 min 12 sPrzy pomiarze czasowym: 43 min 12 s w 30 dni albo 8 h 45 min 36 s w 365 dni, bez wyłączeń. To dwa różne okna, nie możliwość przenoszenia miesięcznych limitów.
SLI to wskaźnik, np. udział udanych żądań. SLO to cel dla wskaźnika w określonym oknie, a SLA to uzgodnione zobowiązanie i konsekwencje jego naruszenia. Budżet błędów wynika z SLO. Wewnętrzny cel bywa ostrzejszy niż SLA, ale nie jest to reguła definicyjna.
Nie. SLA określa, co się stanie, gdy próg nie zostanie dotrzymany. Zwykle są to kredyty na kolejny okres rozliczeniowy. To rekompensata za przestój, a nie obietnica, że przestoju nie będzie.
Z zewnątrz, z kilku lokalizacji i na ścieżce, która ma znaczenie dla użytkownika, a nie tylko na sprawdzeniu, czy serwer odpowiada. Warto też z góry ustalić, co liczy się jako przestój: sam błąd 500, czy również odpowiedź poprawna, ale tak wolna, że nikt na nią nie czeka.
Źródła i dalsza lektura
- Google SRE Book: Service Level Objectives publikacja
- Google SRE Workbook: Implementing SLOs publikacja