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.

Karthik Satchitanand
Karthik has been into Design and Development of tools for infrastructure as code, software testing performance & benchmarking & chaos engineering. Currently, he is one of the maintainers of the OpenEBS & Litmus opensource projects. In his free time, he learns about Indian classical music, philosophy & literature.
Kiran Mova
Kiran Mova is a Passionate Technologist with 17 years of extensive experience working for product companies like Cisco, Lucent, Novell. Kiran has led efforts in performance engineering, simplifying the products in terms of usability, operation and deployment complexities, introducing multi-tenancy and enabling SAAS services in domains like IP/Optical Networks, Storage and Access Management. At MayaData, Kiran leads overall architecture and is responsible for architecting, solution design and customer adoption of OpenEBS and related software. Kiran evangelizes open culture and open source execution models and is a lead maintainer and contributor to the OpenEBS project Passionate about Storage Orchestration. Contributor and Maintainer OpenEBS projects. Chief Architect MayaData Inc. Open Source Dreamer
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!