LitmusChaos
Open Source Chaos Engineering Platform
other languages.
Read this inOverview
LitmusChaos is an open source Chaos Engineering platform that enables teams to identify weaknesses & potential outages in infrastructures by inducing chaos tests in a controlled way. Developers & SREs can practice Chaos Engineering with LitmusChaos as it is easy to use, based on modern Chaos Engineering principles & community collaborated. It is 100% open source & a CNCF project.
LitmusChaos takes a cloud-native approach to create, manage and monitor chaos. The platform itself runs as a set of microservices and uses Kubernetes custom resources to define the chaos intent, as well as the steady state hypothesis.
At a high-level, Litmus comprises of:
- Chaos Control Plane: A centralized chaos management tool called chaos-center, which helps construct, schedule and visualize Litmus chaos workflows
- Chaos Execution Plane Services: Made up of a chaos agent and multiple operators that execute & monitor the experiment within a defined target Kubernetes environment.
At the heart of the platform are the following chaos custom resources:
-
ChaosExperiment: A resource to group the configuration parameters of a particular fault. ChaosExperiment CRs are essentially installable templates that describe the library carrying out the fault, indicate permissions needed to run it & the defaults it will operate with. Through the ChaosExperiment, Litmus supports BYOC (bring-your-own-chaos) that helps integrate (optional) any third-party tooling to perform the fault injection.
-
ChaosEngine: A resource to link a Kubernetes application workload/service, node or an infra component to a fault described by the ChaosExperiment. It also provides options to tune the run properties and specify the steady state validation constraints using 'probes'. ChaosEngine is watched by the Chaos-Operator, which reconciles it (triggers experiment execution) via runners.
The ChaosExperiment & ChaosEngine CRs are embedded within a Workflow object that can string together one or more experiments in a desired order.
- ChaosResult: A resource to hold the results of the experiment run. It provides details of the success of each validation constraint, the revert/rollback status of the fault as well as a verdict. The Chaos-exporter reads the results and exposes information as prometheus metrics. ChaosResults are especially useful during automated runs.
ChaosExperiment CRs are hosted on hub.litmuschaos.io. It is a central hub where the application developers or vendors share their chaos experiments so that their users can use them to increase the resilience of the applications in production.
Use cases
- For Developers: To run chaos experiments during application development as an extension of unit testing or integration testing.
- For CI/CD pipeline builders: To run chaos as a pipeline stage to find bugs when the application is subjected to fail paths in a pipeline.
- For SREs: To plan and schedule chaos experiments into the application and/or surrounding infrastructure. This practice identifies the weaknesses in the deployment system and increases resilience.
Getting Started with Litmus
To get started, check out the Litmus Docs and specifically the Installation section of the Getting Started with Litmus page.
Contributing to Chaos Hub
Check out the Contributing Guidelines for the Chaos Hub
Community
Community Resources:
Feel free to reach out if you have any queries,concerns, or feature requests
-
Give us a star
โญ๏ธ - If you are using LitmusChaos or think it is an interesting project, we would love a starโค๏ธ -
Follow LitmusChaos on Twitter @LitmusChaos.
-
Subscribe to the LitmusChaos YouTube channel for regular updates & meeting recordings.
-
To join our Slack Community and meet our community members, put forward your questions & opinions, join the #litmus channel on the Kubernetes Slack.
Community Meetings
The Litmus community meets on the third wednesday of every month at 10:00PM IST/6:30 PM CEST/9:30 AM PST.
Videos
- Cloud Native Live: Litmus Chaos Engine and a microservices demo app
- Chaos Engineering hands-on - An SRE ideating Chaos Experiments and using LitmusChaos | July 2022
- Achieve Digital Product Resiliency with Chaos Engineering
- How to create Chaos Experiments with Litmus | Litmus Chaos tutorial @ Is it Observable
- Cloud Native Chaos Engineering Preview With LitmusChaos
- Get started with Chaos Engineering with Litmus @ Containers from the Couch
- Litmus 2 - Chaos Engineering Meets Argo Workflows @ DevOps Toolkit
- Hands-on with Litmus 2.0 | Rawkode Live @ Rawkode Academy
- Introducing LitmusChaos 2.0 / Dok Talks #74 @ DoK.community
- Introduction to Cloud Native Chaos Engineering @ Kunal Kushwaha
- #EveryoneCanContribute cafe: Litmus - Chaos Engineering for your Kubernetes @ GitLab Unfiltered
- Litmus - Chaos Engineering for Kubernetes (CNCFMinutes 9) @ Saiyam Pathak
- Chaos Engineering with Litmus Chaos by Prithvi Raj || HACKODISHA Workshop @ Webwiz
Blogs
- CNCF: Introduction to LitmusChaos
- Hackernoon: Manage and Monitor Chaos via Litmus Custom Resources
- Observability Considerations in Chaos: The Metrics Story
Community Blogs:
- Daniyal Rayn: Do I need Chaos Engineering on my environment? Trust me you need it!
- LiveWyer: LitmusChaos Showcase: Chaos Experiments in a Helm Chart Test Suite
- Jessica Cherry: Test Kubernetes cluster failures and experiments in your terminal
- Yang Chuansheng(KubeSphere): KubeSphere ้จ็ฝฒ Litmus ่ณ Kubernetes ๅผๅฏๆททๆฒๅฎ้ช
- Saiyam Pathak(Civo): Chaos Experiments on Kubernetes using Litmus to ensure your cluster is production ready
- Andreas Krivas(Container Solutions):Comparing Chaos Engineering Tools for Kubernetes Workloads
- Akram Riahi(WeScale):Chaos Engineering : Litmus sous tous les angles
- Prashanto Priyanshu(LensKart):Lenskartโs approach to Chaos Engineering-Part 2
- DevsDay.ru(Russian):LitmusChaos at Kubecon EU '21
- Ryan Pei(Armory): LitmusChaos in your Spinnaker Pipeline
- David Gildeh(Zebrium): Using Autonomous Monitoring with Litmus Chaos Engine on Kubernetes
Adopters
Check out the Adopters of LitmusChaos
(Send a PR to the above page if you are using Litmus in your chaos engineering practice)
License
Litmus is licensed under the Apache License, Version 2.0. See LICENSE for the full license text. Some of the projects used by the Litmus project may be governed by a different license, please refer to its specific license.
Litmus Chaos is part of the CNCF Projects.
Important Links Litmus Docs
CNCF Landscape