Chaos Engineering

Chaos engineering is a practice of testing distributed software that deliberately introduces failure and faulty scenarios to verify its resilience in the face of random disruptions.
Contributed by

Sebastien Wains

Published July 22, 2022

What Is Chaos Engineering?

Chaos Engineering is a practice where an organization tries to predict the unpredictable. It can be used to achieve resilience against infrastructure failures, network failures, and application failures.

Typically test driven development is testing for mishaps that can be predicted, such as testing that 2 + 2 = 4 or testing that a database is available before writing to it.

With chaos engineering, we introduce failures on purpose on production systems to see how they withstand the chaos.

Disruptions can be of different nature:

  • server shutdown such as shutting down a service, server or a whole datacenter
  • latency injection in order to simulate degradation or outages in a network
  • resource exhaustion such burning up a CPU or filling up a disk

These disruptions can cause applications to respond in unpredictable ways.

In case of disruption the application needs to be improved to withstand the specific failure scenario.

Why Do Chaos Engineering?

  • Allows developers to improve applications to withstand failure scenarios that are hard to replicate in a CI/CD pipeline
  • Allows operations to test failure scenarios that are hard to implement in CI/CD pipelines (such as network latency)
  • Leads to application improvement

How to do Chaos Engineering?

Chaos Mesh is a chaos engineering platform for Kubernetes.

Chaos Monkey randomly terminates instances in production

Chaos Blade is a cloud-native chaos engineering platform that supports multiple environments, clusters, and languages.

Look at Chaos Engineering

Links we love

Check out these great links which can help you dive a little deeper into running the Chaos Engineering practice with your team, customers or stakeholders.

Except where noted, content on this site is licensed under a Creative Commons Attribution 4.0 International license. This site is graciously hosted by Netlify