Cthulhu: New open source chaos engineering tool for Java
Ready to create a little chaos? xMatters newly open sourced their internal chaos engineering tool. Cthulhu helps developers by automating cross-platform software failure testing. It detects failures automatically and self-heals back to a normal state.
Meet the newly opened sourced chaos engineering tool: Cthulhu. It helps automate cross-platform software failure testing by simulating different scenarios. The digital service team xMatters open sourced this tool on May 14, 2019. It is now available on GitHub under the Apache License for DevOps team to implement into their workflow.
Chaos engineering is used by teams to simulate disaster in order to test the reliability or security of a piece of software. This method of testing aims to save time and take a proactive approach to solve issues. Perhaps one of the most well-known examples of this mode of testing is Netflix’s internal tool, Chaos Monkey.
Add some Lovecraftian horror into the mix; let’s take a look at Cthulhu and what it offers.
Open sourcing the license
From the xMatters press release regarding the open sourcing:
As more and more organizations move to a distributed systems model, chaos testing has become a leading-edge methodology for enhancing reliability. A major challenge, however, lies in executing these tests comprehensively across complex IT environments. Cthulhu enables automated cross-platform failure orchestration, using a data-driven approach to simulate complex disaster scenarios. This allows organizations to design more robust systems that better anticipate failure and — more importantly — improve self-healing mechanisms to accelerate automatic recovery.
Developers can now use Cthulhu on any platform and test their applications against potential failure across hybrid and multi-cloud infrastructures. Using this tool, users can begin creating “self-healing” services.
Read more about chaos engineering, resiliency, self-healing systems, and testing on Cthulu’s software engineer Gabrielle Gasse’s informative post.
About Cthulu’s development concept, Gasse states: “We made our own tool mainly so we could coordinate complex failure scenarios, impacting different infrastructure technologies in a data-driven manner.”
Chaos engineering with Cthulhu
Some of the features and benefits of using Cthulhu include:
- Self-heals back to a normal state without interruption of service
- Controllable scenarios: Construct specific scenarios to test. Results are reproducible in order to test across teams.
- Automated communications and notifications for monitoring
- Cross-platform failure orchestration for testing out scenarios on various kinds of environments
- Execute disaster scenario tests and locate potential gaps in security
- Build additional chaos engines and chaos auditors
- Extensible and easy to add on to any platform
- Cthulu is written in Java
Cthulhu can run from Gradle, users can build it from a Docker image, and configure it with Kubernetes. Find the repo on GitHub.
What do you think of this chaos engineering tool?