Chaos engineering (game days)
Celowe psucie części systemu w kontrolowany sposób, np. wyłączenie serwera albo spowolnienie zależności, żeby sprawdzić, czy degraduje się zgodnie z projektem.
Netflix spopularyzował tę praktykę narzędziami, które losowo wyłączają instancje na produkcji. Większość zespołów zaczyna skromniej: game day, w którym zespół wyłącza replikę bazy albo zewnętrzne API na stagingu i patrzy, co się dzieje. Celem jest sprawdzenie twierdzeń w rodzaju „mamy circuit breaker” albo „strona degraduje się łagodnie”, zanim sprawdzi je prawdziwa awaria. Trzymaj zasięg awarii mały i miej przycisk stop.
Powiązane hasła
- Łagodna degradacja (graceful degradation): Utrzymanie rdzenia produktu w działaniu, gdy padnie zależność, przez wyłączenie albo uproszczenie części, które na niej polegają.
- Circuit breaker (bezpiecznik): Osłona wywołań zależności, która po serii błędów przestaje ją wołać i od razu zwraca błąd, dopóki zależność nie wróci.
- Zasięg awarii (blast radius): Jak duża część systemu i ilu klientów może ucierpieć przez jedną awarię, złe wdrożenie albo wyciek klucza.
- Budżet błędów (error budget): Ilość zawodności, na którą pozwala SLO w danym okresie, używana do decyzji, kiedy zespół wydaje nowe funkcje, a kiedy zatrzymuje się, by naprawić niezawodność.
