Nodea — logo

Chaos engineering

Chaos engineering (inżynieria chaosu) to dyscyplina polegająca na przeprowadzaniu kontrolowanych eksperymentów, w których do działającego systemu celowo wstrzykuje się awarie — po to, by sprawdzić, czy zachowa się zgodnie z oczekiwaniami, i wykryć słabe punkty, zanim ujawni je prawdziwa awaria. Podejście spopularyzował Netflix narzędziem Chaos Monkey, które losowo wyłączało maszyny produkcyjne, wymuszając budowanie architektury odpornej na utratę dowolnego elementu.

Na czym polega chaos engineering?

Eksperyment ma strukturę naukową:

  1. Stan ustalony — definiuje się mierzalne metryki normalnej pracy (np. odsetek poprawnych odpowiedzi, opóźnienie p99).
  2. Hipoteza — „po utracie jednego węzła bazy danych system nadal obsługuje 99,9% żądań”.
  3. Wstrzyknięcie awarii — wyłączenie instancji, dodanie opóźnień lub strat pakietów, zapełnienie dysku, odcięcie zależności, wysycenie CPU.
  4. Obserwacja i wnioski — porównanie metryk ze stanem ustalonym; każda rozbieżność to znaleziona słabość do naprawy.

Kluczowe zasady to ograniczanie „promienia rażenia” (mały odsetek ruchu, jedna strefa), automatyczny wyłącznik przerywający eksperyment po przekroczeniu progów oraz dojrzała obserwowalność — bez metryk i traców nie sposób ocenić wyniku. Popularne narzędzia to Chaos Mesh i LitmusChaos (środowiska Kubernetes), Gremlin oraz AWS Fault Injection Service.

Zastosowanie w praktyce

Inżynierię chaosu stosuje się do weryfikacji mechanizmów wysokiej dostępności: czy failover bazy naprawdę działa, czy load balancer omija niezdrowy węzeł, czy retry i circuit breakery chronią przed lawiną błędów, a autoskalowanie nadąża za skokiem ruchu. Regularne „game days” — ćwiczenia zespołowe z symulowaną awarią — testują przy okazji procedury reagowania i plany DRP, nie tylko technologię.

Praktyka ma sens tam, gdzie istnieje już monitoring, redundancja i procedury odtwarzania; w prostych systemach lepszą inwestycją jest najpierw solidny backup i failover, a dopiero potem eksperymenty z chaosem.

Powiązane pojęcia

Najczęstsze pytania

Czy eksperymenty chaos engineering przeprowadza się na produkcji?

Docelowo tak — tylko produkcja ma prawdziwy ruch, dane i konfigurację, więc tylko tam weryfikacja jest pełna. Zaczyna się jednak od środowisk testowych, a na produkcji eksperymentuje z ograniczonym „promieniem rażenia": na małym odsetku ruchu, z automatycznym wyłącznikiem przerywającym test przy przekroczeniu progów.

Czym chaos engineering różni się od zwykłych testów?

Testy sprawdzają, czy system robi to, co zaplanowano, w znanych scenariuszach. Chaos engineering bada zachowanie systemu w warunkach nieprzewidzianych — awarii zależności, opóźnień sieci, utraty węzła — i weryfikuje hipotezy o odporności całości, a nie poprawność pojedynczych funkcji.