Introducing and Extending the Chaos Toolkit
Adopting Chaos Engineering through Open Source
Adrian Cockroft was even kind enough to mention us in his “Cloud Trends” keynote at GOTO Copenhagen, and in my talks I showed that Chaos can be automated using the toolkit and even integrated into Slack using Atomist.
So why do we even need (yet) another toolkit for Chaos Engineering?
The Chaos Toolkit’s Mission
We are huge fans of the many commercial and open source Chaos Engineering projects but we felt there was something still missing. While there is huge power in some of the great emerging tools around Chaos Engineering already on the market, we felt the learning and adoption process for Chaos Engineering could do with a better experience.
We wanted to build a toolkit that made it easy for the maximum number of people to explore, adopt and learn about the benefits of Chaos Engineering, while at the same time making sure it was a toolkit that was entirely open to extension by the community. In a nutshell, this meant we needed Chaos Toolkit to be simple, easy to use immediately, open source and community-driven.
Our Mission? To create a toolkit that makes it easy to try out, adopt and learn about the benefits of Chaos Engineering
We’re working hard to improve the experience all the time and if you want to get started with Chaos Toolkit right now then the best place to start is the documentation and then to progress rapidly to grabbing the toolkit itself and exploring the samples.
Starting with the simple samples that we currently have the eventual aim is for the Chaos Toolkit to provide an on-ramp to other third-party integrations, even to be able to seamlessly take advantage of the real heavyweights in the Chaos Engineering tools space such as Gremlin and Netflix’s ChAP.
This will be no means feat, and so to achieve this aspect of the mission we need to enable as many people as possible in the Chaos Engineering community to customise and extend the toolkit so that they can explore and learn Chaos Engineering while tuning it to their own specific requirements for chaos.
How to Customise and Extend Chaos Toolkit for Your Needs
The Chaos Toolkit currently supports customisation of both probes (for observing system state as part of an experiment) and actions (for actively affecting the system while conducting an experiment).
You can create your own probes and actions in three different ways:
- Write and package a Python function in a module that can be called from the Chaos Toolkit
- Execute an arbitrary executable
- Invoke an HTTP endpoint
We’ve found that, for the time being, these extension points have been good enough for us to implement many powerful experiments with appropriately customised probes and actions. However we’re always looking for feedback so if you have comments or requirements then please either add those as issues on the open source projects themselves or you could even join the Chaos Toolkit Community team on Slack and chat to us directly.
Call for Feedback (and even Contributions!)
We think the Chaos Toolkit’s mission is a simple but powerful one: to build a community that provides the easiest way to start learning and building your own simple, and eventually complex and powerful, chaos experiments.
To do this we’re actively looking for feedback on how we currently express experiments and what sorts of actions and probes the community might want to use or, even, contribute! Due to our mission the Chaos Toolkit will always, in its entirety, be open source as we think that’s the best way to get people learning about the technique, and also the best way to grow a passionate community around actually using the approach.
If you’d like to get involved then here are the places to do just that:
- The Chaos Toolkit Community Slack Team
- The Chaos Toolkit GitHub Organisation — We’d love to hear your ideas for new features, from probes, to actions to even whole sample experiments. And even better if they happen to come by way of a Pull Request ;)
- The Chaos Toolkit Documentation
This blog is a great place to stay up-to-date on the Chaos Toolkit but if you prefer something more on the social side of things you can follow things on the Chaos Toolkit’s Twitter account and Facebook page too.
Finally if you’re coming new to Chaos Engineering in the first place, you can do far worse than starting with the free eBook from O’Reilly Media, “Chaos Engineering”. Download, read, then get into the Chaos Engineering Community.
We look forward to seeing you there!