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.

Niladri
Niladri is a CSAT Solutions / Support Engineer at MayaData. He works with Kubernetes, Docker, and the rest of the stack down below.
Niladri
Niladri is a CSAT Solutions / Support Engineer at MayaData. He works with Kubernetes, Docker, and the rest of the stack down below.
Kumar Indrajeet
Kumar has 10 years' experience in the design, implementation, management of enterprise distributed systems, and highly available clustered solutions. Expert in Architecting Cloud infrastructure, migration to containers, cost optimization, security enhancements, and predictive monitoring. Certified Professional with expertise in AWS, Openstack, Linux, and DevOps concepts. Persuasive communicator with good analytical, logical, and multitasking skills. Adroit at analyzing and understanding organizational requirements.