Skip to main content

Chaos engineering cheatsheet

A one-page reference for chaos engineering. For worked LitmusChaos/AWS FIS examples and game-day facilitation, see the complete guide.

๐Ÿ“– Full guide: Chaos Engineering โ†’

Steady-state hypothesisโ€‹

Define a measurable "normal" (e.g. p99 latency, error rate) before injecting failure. The experiment succeeds if the system holds steady state, or fails safely and you learned something real.

Lifecycleโ€‹

Define steady state โ†’ Hypothesize โ†’ Inject failure โ†’
Observe โ†’ Compare to hypothesis โ†’ Fix or scale up blast radius

Failure injection typesโ€‹

  • Instance/pod termination
  • Network latency / packet loss / partition
  • Resource exhaustion (CPU, memory, disk)
  • Dependency failure (DB down, API 5xx)
  • Clock skew / time travel

Toolsโ€‹

ToolBest for
Chaos Monkeyrandom instance termination, AWS/cloud
Gremlincommercial, host/container/k8s, large attack library
LitmusChaosCNCF, Kubernetes-native, CRD-based experiments
Chaos MeshCNCF, Kubernetes-native, strong network/IO chaos
AWS FISAWS-native, IAM-scoped, CloudWatch stop conditions

Blast-radius controlโ€‹

  • Start in staging, then a single low-traffic prod instance.
  • Always define a stop condition tied to a real metric/alarm.
  • Have a kill switch โ€” every experiment must be instantly abortable.

Game daysโ€‹

Scheduled, team-wide chaos exercises. Purpose: validate runbooks and on-call muscle memory under a controlled failure, not just test the system.

Common mistakesโ€‹

  • No steady-state baseline โ†’ can't tell if the experiment "failed."
  • Running in prod before staging is solid.
  • No stop condition / no one able to abort quickly.
  • Treating chaos engineering as a one-time event instead of an ongoing practice.
See: Common Mistakes