Kubernetes Chaos Engineering with LitmusChaos 0.6 release

LitmusChaos 0.6 release is a significant release for LitmusChaos project. The changes in this release enable LitmusChaos project to be positioned as a framework for planning and orchestrating chaos around any cloud-native application on Kubernetes. Summary of new features in this release is:

  • New CRDs for orchestrating chaos for both developers and SREs.
  • New place to collaborate chaos logic for applications.

Releasing LitmusChaos 0.6
Releasing LitmusChaos 0.6

Chaos CRDs and Operator

CRDs are needed to define chaos, link the chaos to an application, and observe the results of chaos. The three CRDs are:

  • ChaosExperiment
  • ChaosEngine
  • ChaosResult


How does the Operator work around the chaos CRs?

The set of controllers that manage the above CRs is called ChaosOperator. This operator is implemented using the operator-sdk. LitmusChaos operator is available in operatorhub.io. The operator is installed on the Kubernetes cluster and watches for the ChaosEngine CR. As an application developer or as an SRE, you will create a ChaosEngine CR, ChaosExperiment CR. The chaos operator that is watching ChaosEngine CR will instantiate chaos-runner pod, which will, in turn, read the chaos associated experiment CRs and starts executing the actual chaos. The results of the chaos experiment will be available through a ChaosResults CR, which is created for each ChaosExperiment.

Chaos Charts

Developers and SREs need to create a ChaosEngine YAML to link with an application and specify the list of Chaos Experiments. However, the logic around chaos experiment itself is more complicated. The ChaosExperiment will involve the status check of the application pre and post the chaos injection, which will be specific to the application. Application vendors typically develop these chaos experiments during their application development phase and release process. These are then made available at hub.litmuschaos.io to their users to run the chaos in production. The group of such experiments is called a chaos chart.

Users who want to inject chaos into a particular application, search for a relevant chart, and install the chart (ChaosExperiment CRDs) into their namespace. And, then proceed to create a ChaosEngine specification referring to the installed ChaosExperiments.

Community

The community looks great with 250+ stars, 99 forks, 54 contributors and 25 Slack users. We are expecting/seeking new chaos charts to be contributed to the Chaos Hub.

A quick peek into the 0.7 release:

  • More chaos charts for OpenEBS and K8s.
  • Option to pass environment variables to chaos experiments from chaos engine.
  • Ability to avoid monitoring for specific chaos experiments.
  • Improve the pluggability of other chaos runners like PowerfulSeal into LitmusChaos.

Hacktoberfest

Borrowing the sentence from Digital Ocean, "Open source is changing the world – one pull request at a time. Hacktoberfest encourages more participation in the open source community, which grows bigger every year." This year we at MayaData are looking to get more newbies contribution into LitmusChaos project. Watch out for hacktoberfest tag.

Summary:

We have created the CRDs and charts to help write and orchestrate chaos in a generic way around Kubernetes. Start using LitmusChaos in your development environments and staging environments and give us feedback. Tell us what you think about chaos charts at the hub.

Evan Powell
Founding CEO of a few companies including StackStorm (BRCD) and Nexenta — and CEO &Chairman of OpenEBS / MayaData. ML and DevOps and Python, oh my!
Jeffry Molanus
Jeffry prior to being CTO at MayaData has worked at several other startups in the storage industry. He worked on several scale out object storage products as well as traditional NAS and SAN storage solutions where he held technical leadership roles. At MayaData, his primary focus will be around making sure the product is flexible and scalable yet robust enough to be integrated seamlessly into modern day infrastructure where he believes, containers will have a dominant role. Jeffry holds a master degree in electrical engineering with a focus on distributed control engineering from the University Twente in the Netherlands. When he is not working with code, he practices martial arts.
Saumya Sharma
I am a Software Engineer turned Digital Marketer. Being from a Computer Science background, Software Engineering never thrilled me. I believe learning is a continuous process, and it's never too late to start a new phase of life. I am currently working on SEO and blog setups. In my free time, I love to read and write. I have a blog named The Inked Perception, where I post my poetry. I also love to travel and binge-watch web series.