Skip to content
Reliabilitymedium

Chaos Engineering

Chaos engineering deliberately injects failures into production systems to find weaknesses before they cause real outages, building confidence in the system's resilience.

Memory anchor

Chaos engineering = a fire drill for your servers. You deliberately set small controlled fires to find the exits that are blocked BEFORE the real emergency. Netflix's Chaos Monkey = a gremlin that unplugs random machines to keep engineers honest.

Expected depth

Netflix pioneered this with Chaos Monkey (randomly terminates EC2 instances). The process: define a steady state (system behaves normally), form a hypothesis (system will remain stable if X fails), run the experiment in production or staging, compare results to steady state. Chaos experiments: kill random instances, inject network latency, drop packets, saturate disk, cause dependency failures. Tools: Chaos Monkey, Gremlin, AWS Fault Injection Simulator, Litmus (Kubernetes).

Deep — senior internals

Chaos engineering is not random destruction — it's controlled experiments with blast radius management. Start in staging, then move to production with kill switches. Limit experiments to non-peak hours initially. Define the minimal experiment scope: one instance, one AZ, one dependency. The goal is to find the gap between your design assumptions and system behavior. Key insights from chaos experiments: circuit breakers that are configured but never tested often have wrong thresholds; auto-scaling groups that look correct in theory can fail to scale in time; health check misconfigurations let unhealthy instances serve traffic. Game Days extend this: the team runs a planned disaster scenario (region outage, database failure) together, observing system behavior and practicing runbooks. Google DiRT (Disaster Recovery Testing) runs multi-day exercises simulating datacenter failures.

🎤Interview-ready answer

I'd introduce chaos engineering in three phases: first, run chaos experiments in staging to validate that circuit breakers, retries, and failover work as designed. Second, move to production during off-peak hours with strict blast radius limits (one instance, one AZ at a time). Third, run Game Days quarterly where the team practices responding to simulated outages. The metric for success is that chaos experiments find failures before users do — every chaos-induced incident is a win.

Common trap

Treating chaos engineering as a one-time activity. The value comes from continuous experimentation as the system evolves. New features, configuration changes, and dependency updates can break previously validated resilience properties — run chaos experiments in CI/CD pipelines.