„Všechno funguje, dokud to nefunguje.” Chaos Engineering je disciplína, která tuto pravdu bere vážně — a záměrně injektuje selhání do produkčních systémů, aby odhalila slabiny dřív než skutečný incident. V roce 2026 už nejde o exotickou praktiku z Netflixu. Je to standardní součást SRE a platform engineering workflow, s vyspělými nástroji jako Gremlin, Litmus a Chaos Mesh, formalizovanými procesy GameDay a přímou vazbou na observability a SLO Engineering.
Co je Chaos Engineering a proč ho potřebujete¶
Chaos Engineering je experimentální přístup k testování odolnosti distribuovaných systémů. Na rozdíl od tradičního testování, které ověřuje, že systém dělá to, co má, chaos engineering ověřuje, že systém přežije podmínky, které neočekává — výpadek databáze, network partition, saturace CPU, ztráta celé availability zone nebo kaskádové selhání downstream služby.
Koncept formalizoval Netflix v roce 2011 vydáním Chaos Monkey — nástroje, který náhodně vypínal produkční instance EC2. Myšlenka byla jednoduchá: pokud vaše architektura nepřežije ztrátu jedné instance, dozvíte se to raději v úterý v 10:00 než v sobotu ve 3:00 ráno. Od té doby disciplína vyspěla do strukturovaného vědeckého přístupu s jasně definovanými principy.
60%
enterprise organizací praktikuje chaos engineering (Gartner 2025)
3×
rychlejší MTTR u týmů s pravidelnými GameDay cvičeními
45%
méně kritických incidentů po zavedení chaos testů
$2.5M
průměrná cena hodiny výpadku enterprise systému
Principy Chaos Engineeringu¶
Chaos Engineering není „vypneme random server a uvidíme co se stane”. Je to strukturovaný vědecký experiment s jasně definovanými kroky. Dokument Principles of Chaos Engineering (principlesofchaos.org) definuje pět základních principů:
1
Definujte Steady State¶
Než začnete cokoliv rozbíjet, musíte vědět, jak vypadá „normální” chování systému. Steady State Hypothesis je měřitelná definice zdravého systému — typicky vyjádřená pomocí SLI/SLO metrik: latence, error rate, throughput. Bez jasného steady state nemůžete poznat, jestli experiment odhalil problém, nebo je systém prostě pomalý.
2
Formulujte hypotézu¶
Každý chaos experiment začíná hypotézou: „Věříme, že při výpadku Redis cache bude systém nadále sloužit požadavky z databáze s latencí pod 500ms a error rate pod 1 %.” Hypotéza musí být falsifikovatelná — jinak to není experiment, ale demo.
3
Simulujte reálné události¶
Injektujte selhání, která se skutečně stávají: network latency, disk failures, process crashes, DNS resolution failures, certificate expiration. Fantazijní scénáře typu „co když se změní gravitační konstanta” nejsou užitečné. Podívejte se na své postmortem reporty — to jsou vaše chaos scénáře.
4
Omezte blast radius¶
Začněte malým. Blast radius je rozsah dopadu experimentu. Nikdy nespouštějte chaos experiment, který by mohl způsobit nekontrolovaný výpadek. Začněte ve staging, pak canary na 1 % produkčního trafficu, pak na 5 %, pak na celý region. Vždy mějte kill switch.
5
Spouštějte experimenty v produkci¶
Kontroverzní, ale zásadní: staging prostředí nikdy přesně nereplikuje produkci. Traffic patterns, data volumes, race conditions — to vše se projeví jen v reálném prostředí. Samozřejmě s kontrolovaným blast radius a připraveným rollbackem. Ale pokud testujete jen ve staging, testujete staging, ne produkci.
Steady State Hypothesis v praxi¶
Steady State Hypothesis (SSH) je formální definice normálního chování systému, vyjádřená jako sada měřitelných podmínek. Je to základ každého chaos experimentu — ověříte ji před experimentem (baseline), spustíte injekci selhání, a pak znovu ověříte SSH. Pokud SSH stále platí, systém je odolný. Pokud ne, máte nález.
SSH přímo navazuje na SLO definice vašich služeb. Příklad pro e-commerce checkout:
# Steady State Hypothesis: Checkout API
steady_state:
- probe: http_availability
type: probe
provider:
type: http
url: "https://api.example.com/health"
tolerance:
status: 200
- probe: p99_latency
type: probe
provider:
type: prometheus
query: "histogram_quantile(0.99, rate(http_request_duration_seconds_bucket{service='checkout'}[5m]))"
tolerance:
type: range
range: [0, 0.5] # max 500ms
- probe: error_rate
type: probe
provider:
type: prometheus
query: "rate(http_requests_total{service='checkout',code=~'5..'}[5m]) / rate(http_requests_total{service='checkout'}[5m])"
tolerance:
type: range
range: [0, 0.01] # max 1%
Klíčové: SSH musí být automatizovaná. Žádné manuální kontroly „podívej se na dashboard”. Probes se spouštějí programaticky, tolerance se vyhodnocují strojově. To umožňuje integraci chaos experimentů do CI/CD pipeline — experiment se spustí automaticky po deployi, ověří SSH, a pokud steady state nedrží, deployment se rollbackne.
Nástroje pro Chaos Engineering v roce 2026¶
Ekosystém chaos engineering nástrojů dozrál. Tři hlavní hráči pokrývají různé use cases:
Gremlin
Enterprise SaaS platforma. Nejširší knihovna fault injection scénářů, safety controls, týmová kolaborace, compliance reporting.
Litmus
CNCF project pro Kubernetes-native chaos. ChaosHub s 50+ předpřipravenými experimenty, GitOps workflow, open-source.
Chaos Mesh
CNCF project od PingCAP. Kubernetes-native, Chaos Dashboard UI, podpora pro síťové, IO, kernel a JVM fault injection.
Chaos Toolkit
Open-source CLI framework. Platform-agnostic, deklarativní YAML/JSON experimenty, extensible přes drivery pro AWS, Azure, GCP, K8s.
Gremlin — Enterprise chaos platforma¶
Gremlin je nejkompletnější komerční řešení pro chaos engineering. Nabízí širokou paletu attack vektorů: resource attacks (CPU, memory, disk IO), network attacks (latency, packet loss, DNS failure, blackhole), state attacks (process kill, time travel, shutdown). Klíčová výhoda pro enterprise: safety controls — automatické halt conditions, blast radius limits, audit logging a role-based access control. Gremlin se v roce 2026 zaměřuje i na reliability scoring — automatické hodnocení resilience vašich služeb na základě výsledků experimentů.
Litmus — Kubernetes-native chaos¶
Litmus je CNCF inkubovaný projekt navržený primárně pro Kubernetes.
Chaos experimenty se definují jako CRD (Custom Resource Definitions) — ChaosEngine,
ChaosExperiment, ChaosResult. To znamená, že chaos experimenty
žijí vedle vašich Kubernetes manifestů v git repozitáři a procházejí code review.
Kubernetes-native přístup
zajišťuje přirozené napojení na existující tooling.
apiVersion: litmuschaos.io/v1alpha1
kind: ChaosEngine
metadata:
name: checkout-pod-kill
namespace: production
spec:
appinfo:
appns: production
applabel: "app=checkout-api"
appkind: deployment
chaosServiceAccount: litmus-admin
experiments:
- name: pod-delete
spec:
components:
env:
- name: TOTAL_CHAOS_DURATION
value: "30"
- name: CHAOS_INTERVAL
value: "10"
- name: FORCE
value: "false"
probe:
- name: check-availability
type: httpProbe
httpProbe/inputs:
url: "http://checkout-api.production.svc:8080/health"
method:
get:
criteria: "=="
responseCode: "200"
mode: Continuous
runProperties:
probeTimeout: 5
interval: 2
retry: 1
Chaos Mesh — granulární fault injection¶
Chaos Mesh vyniká v granularitě fault injection. Kromě standardních pod kill a network chaos nabízí JVM chaos (exception injection do Java aplikací), IO chaos (filesystem latency, errno injection), kernel chaos (kernel fault injection přes BPF), a HTTP chaos (injection chyb na úrovni HTTP requestů). Chaos Dashboard poskytuje vizuální přehled běžících experimentů a jejich dopadů v reálném čase.
GameDay — řízené cvičení odolnosti¶
GameDay je strukturované cvičení, kde tým záměrně provokuje selhání systému a procvičuje incident response. Na rozdíl od automatizovaných chaos experimentů, které běží v CI/CD, GameDay je sociální událost — celý tým sedí společně (nebo na video callu), sleduje dashboardy a reaguje na injektované incidenty v reálném čase.
Jak zorganizovat GameDay¶
- Plánování (1–2 týdny předem) — Vyberte cílový systém, definujte scénáře, připravte Steady State Hypothesis, informujte stakeholdery. Určete Game Master (řídí experiment), Red Team (injektuje selhání) a Blue Team (reaguje na incident).
- Briefing (30 min) — Game Master vysvětlí pravidla, cíle, safety controls a kill switch procedury. Blue Team neví, jaké konkrétní selhání přijde — jen ví, že bude testován cílový systém.
- Execution (1–3 hodiny) — Red Team postupně eskaluje selhání. Začněte jednoduchou injekcí (single pod kill), pozorujte reakci, eskalujte (network partition, AZ failure). Blue Team detekuje, diagnostikuje a mitiguje. Vše se nahrává pro retrospektivu.
- Debriefing (1 hodina) — Blameless review. Co fungovalo? Co ne? Kde byly mezery v observability? Jaké runbooky chyběly? Kde selhala automatizace? Výstupem jsou konkrétní action items s ownerem a deadline.
- Follow-up (1–2 týdny) — Implementace action items. Nové alerty, opravené runbooky, vylepšená automatizace, nové chaos experimenty pro regresi nalezených problémů.
Tip: Začněte s GameDay ve staging prostředí. Po 2–3 úspěšných staging GameDays přejděte na produkci s kontrolovaným blast radius. Frekvence: minimálně jednou za kvartál pro kritické služby, měsíčně pro tier-1 systémy.
Blast Radius — kontrola dopadu¶
Blast radius je rozsah systémů a uživatelů potenciálně ovlivněných chaos experimentem. Kontrola blast radius je to, co dělí chaos engineering od sabotáže. Praktické techniky:
- Canary targeting — Injektujte selhání jen do canary instance, která obsluhuje 1–5 % trafficu. Pokud canary selže, zbytek produkce je nedotčen.
- Namespace isolation — V Kubernetes spouštějte experimenty v dedikovaném namespace s resource quotas a network policies.
- Feature flag targeting — Kombinujte chaos experimenty s feature flags. Selhání se projeví jen uživatelům v experimentální skupině.
- Time-boxing — Každý experiment má maximální dobu trvání. Po jejím uplynutí se automaticky ukončí, i když ho nikdo manuálně nezastaví.
- Auto-halt conditions — Definujte automatické zastavení experimentu, pokud SLO metrika klesne pod kritický threshold (např. error rate > 5 %).
# Gremlin attack s blast radius kontrolou
gremlin attack network latency \
--length 300 \
--delay 200 \
--target-tags "service=checkout,canary=true" \
--halt-condition "p99_latency > 1000ms" \
--halt-condition "error_rate > 0.05" \
--percent 10
Jak začít s Chaos Engineeringem — 8týdenní roadmapa¶
Nemusíte hned pouštět Chaos Monkey v produkci. Začněte postupně:
Týden 1–2: Observability assessment¶
Než začnete cokoliv rozbíjet, potřebujete vidět, co se děje. Ověřte, že máte funkční observability stack — metriky, logy, traces. Umíte odpovědět na otázku „jak se má můj systém teď” za méně než 30 sekund? Pokud ne, začněte tady. Chaos engineering bez observability je řízení naslepo. Definujte SLI a SLO pro kritické služby.
Týden 3–4: První experiment ve staging¶
Vyberte nejjednodušší scénář: pod-delete jedné repliky vaší služby.
Definujte Steady State Hypothesis, spusťte experiment, pozorujte. Očekávaný výsledek:
Kubernetes vytvoří nový pod, služba zůstane dostupná. Pokud i to selže,
máte první cenný nález. Zaznamenejte výsledky, napište krátký report.
Týden 5–6: Rozšíření scénářů + CI/CD integrace¶
Přidejte network latency injection, DNS failure, disk pressure. Integrujte chaos experimenty do CI/CD pipeline — spouštějte je automaticky po deployi do staging. Pokud experiment selže (SSH se neverifikuje), deployment se zablokuje. Nastavte dashboard pro výsledky experimentů.
Týden 7–8: První produkční GameDay¶
Zorganizujte první GameDay s kontrolovaným blast radius v produkci. Začněte single pod kill s canary targeting. Postupně eskalujte. Dokumentujte nálezy, vytvořte action items, naplánujte follow-up GameDay za 4–6 týdnů.
Reálné chaos scénáře pro enterprise¶
Scénář 1: Availability Zone failure¶
Simulujte výpadek celé AZ. V AWS to znamená blackhole na všechny IP adresy v jedné AZ. Ověřte, že load balancer přesměruje traffic na zbývající AZ, že databáze provede failover, a že služba zůstane v rámci SLO. Tento test odhalí hidden single points of failure — služby, které tvrdí, že jsou multi-AZ, ale ve skutečnosti mají sticky sessions nebo stateful data v jedné AZ.
Scénář 2: Downstream dependency failure¶
Injektujte 100 % error rate na volání do downstream služby (payment gateway, email provider, third-party API). Ověřte, že circuit breaker se otevře, že fallback logika funguje (graceful degradation), a že systém nezačne kaskádově selhávat kvůli thread pool exhaustion. Toto je nejčastější nález v chaos experimentech — chybějící nebo špatně nakonfigurované circuit breakery.
Scénář 3: Resource exhaustion¶
Injektujte CPU stress, memory pressure nebo disk fill na subset podů. Ověřte, že Kubernetes HPA správně škáluje, že OOM killer zabije správný proces, že alerty se spustí včas a že tým má funkční runbook pro resource exhaustion.
Scénář 4: Certificate a secret expiration¶
Simulujte expiraci TLS certifikátu nebo rotaci database credentials. Tento scénář odhalí služby s hardcoded credentials, chybějící cert-manager konfigurace nebo secret rotation, která vyžaduje restart podu.
Chaos Engineering × SRE × Observability¶
Chaos Engineering není izolovaná disciplína. Funguje nejlépe jako součást širšího SRE a observability ekosystému:
- SLO jako Steady State — Vaše SLO definice jsou přímo vaše Steady State Hypothesis. Chaos experiment ověřuje, že SLO drží i pod stresem.
- Error budget jako governance — Chaos experimenty konzumují error budget. Pokud je error budget nízký, odkládáte agresivnější experimenty. Pokud je zdravý, máte prostor pro riskantnější testy.
- Observability jako feedback loop — OpenTelemetry traces a metriky jsou to, co vám umožňuje vidět dopad chaos experimentu v reálném čase. Bez distributed tracing je diagnostika nalezených problémů nemožná.
- DevSecOps integrace — Chaos experimenty testují i security resilience: co se stane, když WAF dostane spike malicious trafficu? Jak reaguje rate limiter? Funguje graceful degradation při DDoS?
- Postmortem → Chaos experiment — Každý produkční incident by měl generovat nový chaos experiment, který ověří, že oprava funguje a problém se neopakuje. To je nejcennější zdroj scénářů.
Anti-patterns — čeho se vyvarovat¶
- Chaos without observability — Spouštět chaos experimenty bez funkčního monitoringu je jako dělat operaci poslepu. Nejdřív observability, pak chaos.
- Chaos as punishment — Chaos engineering není nástroj k prokázání, že „tenhle tým má špatný kód”. Je to collaborative learning. Blameless culture je prerequisite.
- Big bang approach — Začít rovnou multi-AZ failover testem v produkci je recept na katastrofu. Postupná eskalace je klíčová.
- One-time event — Jednorázový GameDay je PR událost, ne chaos engineering. Hodnota přichází z opakování, automatizace a kontinuálního zlepšování.
- Ignoring human factors — Chaos engineering testuje nejen technologii, ale i procesy a lidi. Fungují runbooky? Ví on-call, koho eskalovat? Jsou kontakty aktuální?
Závěr: Chaos Engineering je investice do spánku¶
Chaos Engineering v roce 2026 je zralá disciplína s vyspělými nástroji, formalizovanými procesy a prokazatelným ROI. Organizace, které pravidelně provádějí chaos experimenty, mají kratší MTTR, méně kritických incidentů a sebevědomější on-call inženýry. Nejde o to, jestli váš systém selže — selže. Jde o to, jestli to zjistíte v kontrolovaném experimentu v úterý dopoledne, nebo v produkčním výpadku v pátek o půlnoci.
Začněte jednoduše: observability → SLO → první chaos experiment ve staging → automatizace → produkční GameDay. Za 8 týdnů budete mít funkční chaos engineering program, který prokazatelně zlepšuje odolnost vašich systémů.
Brauchen Sie Hilfe bei der Implementierung?
Unsere Experten helfen Ihnen bei Design, Implementierung und Betrieb. Von der Architektur bis zur Produktion.
Kontaktieren Sie uns