Open source Chaos Monkey brings order to cloud
Netflix releases cloud app testing tool under Apache License
flickr/Abode of Chaos
The open source zoo of animals just got another occupant with the source code release of Netflix' Chaos Monkey.
"Chaos Monkey" is a name that very aptly describes what this application does. You set this bad boy loose inside your cloud infrastructure and it will start terminating instances within the cloud. On first glance, this kind of application sounds, well, insane. But there is method to Netflix' madness.
Netflix is a cloud service that cannot afford to go down for any length of time. It's business, after all, is the cloud. But failures do happen, and any application that runs within the Netflix ecosystem needs to be ready to operate when inevitable cloud failure occurs.
"If your application can't tolerate an instance failure would you rather find out by being paged at 3am or when you're in the office and have had your morning coffee?," Netflix engineer Cory Bennett and executive Ariel Tseitlin wrote on the Netflix Tech Blog. Testing applications in these kinds of extreme conditions is what Chaos Monkey is all about.
Right now, Chaos Monkey is a service which runs in Amazon Web Services (AWS). It seeks out Auto Scaling Groups (ASGs) and terminates VM instances. But now that it has been open source, it could be modified to work with other cloud providers or instance groupings, the developers explained.
The code, released on GitHub, is licensed under the Apache Software License, and it part of Netflix' suite of cloud testing and management tools known as the Simian Army. Other monkeys within the Simian Army include the Conformity Monkey, which finds instances that don't adhere to best practices and shuts them down. Then there's the Latency Monkey, a tool that induces artificial delays in Netflix' RESTful client-server communication layer to simulate service degradation and measures if upstream services respond appropriately. My personal favorite is Chaos Gorilla, which pretty much behaves like Chaos Monkey, but will simulate an outage of an entire Amazon availability zone. Which seems to happen every month these days.
Accord to Bennett and Tseitlin, this is the first of the Simian Army to be open sourced. "The next likely candidate will be Janitor Monkey which helps keep your environment tidy and your costs down," they wrote.
It will be interesting to see how the community at large receives this donation of code. Linux users are no big fans of Netflix in general, since Netflix is not officially supported for Linux, thanks to Netflix' use of Microsoft Silverlight.
But open source is a community that's grown way past the borders of the Linux community, and the pervasiveness of cloud computing in particular should see these tools become popular in their use, regardless of any bad blood Linux users might have.
This move to open source is not likely to warm Netflix to the Linux desktop, either. More likely, Valve's recent move to support Linux has a better show to changing Netflix's mind. But a little more communication in open source cloud development definitely won't hurt to close to the chasm between Netflix and Linux.
Read more of Brian Proffitt's Open for Discussion blog and follow the latest IT news at ITworld. Drop Brian a line or follow Brian on Twitter at @TheTechScribe. For the latest IT news, analysis and how-tos, follow ITworld on Twitter and Facebook.