"Chaos engineering is the discipline of experimenting on a software system in production in order to build confidence in the system's capability to withstand turbulent and unexpected conditions."
I think when most of us hear 'Chaos' we automatically get a little anxious. The idea of presenting failure into anything let alone a system can sound scary, however, by running these controlled experiments we can gain insight and reduce disasters. This is important because inevitably a system WILL fail.
So let's break some stuff and see how it all works!
Below is a repo with step by step instructions to setup Kubernetes clusters and use a few different platforms to run experiments on them.
A lot of tutorials I have found around running chaos experiments with K8s skip the cluster setup bit - making this repo a good complete getting started guide if you're new to K8s and Chaos Engineering. 🙂 🎉
🧪 A Kubernetes sandbox repo of chaos experiment tutorials for litmus chaos, chaos mesh, and gremlin (includes k8s setup)
Kubernetes Chaos Sandbox
OS: MacOs Catalina
Kubernetes: Docker Desktop
- CPUs:6 - Memory: 6GB - Swap: 3GB - Disk Size: 59.6GB
Quick Links to Tutorials
Quick Link to Kubernetes setup
- Rancher - Single node cluster
- Openshift(OKD) - Single node cluster
- Kind single node cluster for dev
- Kubesrpay - customizable HA cluster
Each provides various interesting experiments and testing experiences. Gremlin is chaos engineering as a service. This is perfect if you like a good GUI and want to get up and running quickly. Litmus Chaos is a good choice if you enjoy the command line (which I do 😉 ). I had the opportunity to contribute to their project and the team is great! Chaos Mesh is similar to Litmus Chaos and they have some awesome documentation I was able to contribute to this Hacktoberfest as well. Chaos Mesh offers the option of using an interactive GUI or the command line (or both!) making it very developer friendly.
While the purpose of Chaos experimenting is introducing failure the main goal in testing is really to fix and overcome any weaknesses found in a system. By using these tools we are making software and infrastructure more reliable and sustainable.
I am giving away a $12 voucher to the dev shop! Leave a comment below if interested and I'll pick someone at random this weekend to send it to! 🎁 ✌🏾