Free tech learning for everyone, from basics to pro

High AvailabilitySystems ArchitectureIntermediate

Testing resilience: failover tests and chaos engineering

In short: Redundancy that has never been tested is only a hope. Failover tests and DR drills check that planned recovery works; chaos engineering goes further, injecting controlled faults to find weaknesses before real incidents do. Start small, define normal behaviour first and always have a way to stop.

Why test resilience

Standby servers drift out of date, certificates expire, runbooks go stale and failover scripts break silently. Many outages happen not because there was no redundancy, but because nobody had checked that it worked. Testing turns assumptions into evidence and gives teams practice so real incidents are calmer.

Levels of testing

MethodWhat it involvesGood for
Tabletop exerciseTalk through a scenario with the teamChecking roles, contacts and runbooks
Component failover testPlanned switch of a pair, such as firewalls or databaseProving each HA pair works
DR drillRun the service from the DR siteMeasuring real RTO and RPO
Game dayScheduled, realistic failure with the team watchingTesting people, tools and process together
Chaos engineeringControlled, often automated fault injectionFinding unknown weaknesses continuously

Chaos engineering

Chaos experiment loopSteady statedefine normalHypothesispredict outcomeInject faultsmall blast radiusObservemetrics and alertsLearn and fiximprove system
Figure 1. Chaos engineering is a repeated scientific loop, not random breakage.

Chaos engineering is the practice of running careful experiments on a system to build confidence that it can handle turbulent conditions. It was popularised by Netflix with tools that randomly terminated instances. The method is scientific:

  1. Define steady state using user-facing metrics, such as successful orders per minute.
  2. Form a hypothesis, for example "if one web instance dies, the success rate stays above 99.9%".
  3. Inject a fault with a small blast radius: one instance, a small share of traffic, a test environment first.
  4. Observe metrics, alerts and logs. Did the system and the on-call team behave as expected?
  5. Learn and fix, then repeat or widen the experiment.
Faults to injectKill instanceprocess or VMAdd latencyslow dependencyDrop packetslossy networkFill diskresource exhaustionZone outagelose a siteExpire certconfig failure
Figure 2. Typical failure types used in resilience experiments, from small to large.

Tools include open-source projects such as Chaos Mesh and LitmusChaos for Kubernetes, and managed services from cloud providers such as AWS Fault Injection Service and Azure Chaos Studio. Simple scripts work too. On a lab Linux host you can add network delay to test timeouts:

sudo tc qdisc add dev eth0 root netem delay 200ms
sudo tc qdisc del dev eth0 root

Doing it safely

  • Get approval from service owners and run experiments only on systems you are authorised to change.
  • Have a clear abort switch and automatic stop conditions if key metrics drop.
  • Start in test environments, then production at quiet times with a small blast radius.
  • Tell the support desk and on-call team, unless the aim is to test detection, in which case have a senior observer ready to stop it.
  • Record findings and track fixes like any other bug.

Tip: chaos experiments also test security monitoring. Check whether your SIEM alerts when a host disappears or logging stops, since attackers often disable logs first.

For exams and interviews, stress that chaos engineering is controlled and hypothesis-driven, and that it supports SLOs and error budgets (see availability and SLOs).

Practice

What is meant by "blast radius" in a chaos experiment?
The scope of what the injected fault can affect, kept small at first, such as one instance or a small share of traffic.
Why define steady state before injecting a fault?
So you can measure objectively whether the system stayed healthy, using user-facing metrics.
Which test would best measure the real RTO of a DR site?
A DR drill in which the service actually runs from the DR site, with the time to recovery recorded.

Key takeaways

  • Untested redundancy is only an assumption.
  • Tabletops, failover tests, DR drills and game days build confidence step by step.
  • Chaos engineering is a controlled, hypothesis-driven experiment.
  • Keep the blast radius small and always have an abort switch.
  • Only test systems you are authorised to change; track fixes.
Tracks your learning on this device only. See your progress on the learning paths.

About the author

Mohamed Fayas

Founder of FM TecHub. CCNA certified, with a BTEC HND in Network Engineering, and BEng (Hons) in Computer Networking and Cloud Security. He writes practical, plain-English guides on networking, security and cloud.

More about the author

Original content written by Mohamed Fayas for FM TecHub. © 2026 FM TecHub. You're welcome to share a link to this page; please don't copy the text elsewhere without permission.

Stay up to date by email

New notes, tools and security news from FM TecHub, explained simply. Free.

We only use your email to send these updates. See our privacy policy.