From Chaos Comes Order: A Journey into Chaos Engineering
Chaos Engineering: Continuous Resilience in the Cloud
In today’s fast-paced digital landscape, organizations rely heavily on cloud services and platforms to deliver seamless experiences to their customers. However, with increased complexity comes the risk of unexpected failures that can disrupt critical services. This is where Chaos Engineering steps in.
What is Chaos Engineering?
Chaos Engineering is the intentional and controlled causing of failures in the production or pre-production environment to understand their impact and plan a better defence posture and incident maintenance strategy. It’s not about randomly breaking things; instead, it’s a systematic approach to uncovering weaknesses and improving resilience.
Why Chaos Engineering?
1. Proactive Problem Solving: Chaos experiments allow engineering teams to identify potential issues before they happen. By simulating real-world scenarios, organizations can proactively address vulnerabilities and avoid costly downtime.

Minimizing Impact
When inevitable failures occur, Chaos Engineering helps minimize their impact. By understanding failure modes and implementing recovery processes, organizations can ensure smoother service delivery even during disruptions.
Operational Readiness
Chaos experiments drive best practices around workload observability, design, and implementation. They prepare teams to handle component failures with minimal impact on end users.
Netflix’s Success Story
Netflix, a pioneer in Chaos Engineering, learned its lesson during an outage that disrupted service delivery for three days. Since then, they’ve embraced controlled chaos experiments using tools like “Chaos Monkey.” By identifying weaknesses early, Netflix ensures uninterrupted streaming for millions of users.

The Simian Army is a suite of tools developed by Netflix for testing the reliability, security, and resiliency of their AWS infrastructure. The most famous member of the Simian Army is Chaos Monkey, a tool that randomly terminates instances in production to ensure that engineers implement their services to be resilient to instance failures.
Here’s a high-level overview of how Chaos Monkey works:
Random Selection: Chaos Monkey operates by randomly selecting a virtual machine (VM) instance running within a specified group. The selection process is not truly random, as you can configure Chaos Monkey to exclude certain instances or groups.
Termination: Once an instance has been selected, Chaos Monkey will terminate it during a specified time window. This is typically during business hours, so that engineers are available to respond if there are any issues.
Monitoring: After the instance has been terminated, Chaos Monkey, along with other monitoring tools, will observe the system to see how it responds. The goal is for the system to automatically detect the failure, route around it, and spin up a new instance to replace the one that was terminated.
Reporting: Chaos Monkey provides reports on what it has done, allowing you to track its actions and the system’s response.
The idea behind Chaos Monkey is to “fail often” in order to ensure that failure scenarios are well-tested and that recovery procedures are effective and well-understood.
Here’s a basic setup of the Simian Army on AWS:
- Set up an AWS account: If you don’t already have one, you’ll need to create an AWS account.
- Set up an EC2 instance: You’ll need an EC2 instance to run the Simian Army tools. You can use the AWS Management Console, AWS CLI, or SDKs to launch and manage your instances.
- Install the Simian Army: You can clone the Simian Army from the GitHub repository. After cloning the repository, you can build it using Gradle.
git clone https://github.com/Netflix/SimianArmy.gitcd SimianArmy./gradlew build
- Configure the Simian Army: You’ll need to configure the Simian Army to work with your AWS account. This involves setting up properties files with your AWS credentials, regions, and other settings. You can find sample properties files in the
src/main/resources
directory of the Simian Army repository. - Run the Simian Army: Once everything is set up and configured, you can start the Simian Army.
./gradlew jettyRun
Please note that this is a basic setup and you might need to adjust it according to your specific needs. Also, remember that running tools like Chaos Monkey on your production environment can lead to disruptions and outages if your services are not designed to be resilient to instance failures. Always test in a controlled environment before running it on production.
For more detailed instructions, you can refer to the Simian Army wiki on GitHub.
Please replace the placeholders with your actual AWS credentials and desired configuration. Always remember to keep your AWS credentials secure and never expose them in public repositories or unsecured files.
Remember: It’s not about breaking things — it’s about building robust systems that thrive under pressure!