SLA (Umowa o poziomie serwisu) to formalna umowa między klientem a zespołem IT, określająca parametry jakości usługi.
Na poziomie architektury przestrzeganie SLA zapewnia się za pomocą narzędzi technicznych, procesów, monitoringu i automatyzacji. Dla prawidłowej realizacji ważne jest posiadanie jasnego wyobrażenia o krytykach systemu, jego odporności na awarie i skalowalności.
# Przykład konfiguracji alertu na opóźnienie odpowiedzi API - alert: WysokieOpóźnienieOdpowiedzi expr: histogram_quantile(0.99, sum(rate(http_request_duration_seconds_bucket[5m])) by (le, service)) > 1 for: 5m labels: severity: critical annotations: summary: Czas odpowiedzi przekracza SLA (99% > 1 sek)
Czym są metryki eksploatacyjne i po co są potrzebne?
Metryki eksploatacyjne to wskaźniki charakteryzujące rzeczywiste parametry działania systemu, takie jak dostępność, opóźnienie, liczba błędów. Są potrzebne do pomiaru, w jakim stopniu system spełnia SLA, a także do szybkiego reagowania na odchylenia.
Przykład kodu:
# Przykład eksportu metryk za pomocą clienta Prometheus from prometheus_client import start_http_server, Summary REQUEST_TIME = Summary('request_processing_seconds', 'Czas przetwarzania zapytania')
SLA, SLO i SLI: jaka jest różnica?
Czy tylko wysoka dostępność zapewnia spełnienie SLA?
Nie, SLA obejmuje nie tylko dostępność, ale także wydajność (latencja), stabilność (wskaźnik błędów), poprawność działania. Wysoka dostępność sama w sobie nie gwarantuje spełnienia pozostałych wymagań SLA.