Rackspace Open Sources Dreadnot for Data Center Software Deployment
New open source tool was developed in support of Rackspace's always-on data center monitoring efforts.
Open Source software is created in a number of different ways, but the most common is simply when a developer has an "itch." Rackspace's Cloud Monitoring Team had such an itch when it came to having the right tools for the continuous deployment of software to their data centers and that's how the new Dreadnot tool was born.
With Dreadnot, Rackspace engineers are able to push code into production faster than ever. Paul Querna, engineer on the Rackspace Cloud Monitoring team explained to InternetNews.com that their product lives over multiple regions and they wanted whole region coordination to be able to turn a whole region off, upgrade it, test and then do the next region five minutes later.
"A lot of tooling that exists is the low level of going to one server and running a command," Querna said. "Dreadnot is about building the higher level orchestration to help you deal with a distributed system like the cloud."
Querna added that Dreadnot is about reducing the process of deployment down to pressing a button on a webpage instead of it being a lot of manual work. He added that his team had originally started using Deployinator to solve their deployment needs but they ended up customizing it a lot so they built their own tool, Dreadnot.
Querna's team works on Rackspace's Cloud Monitoring capabilities and the core of the technology is an API driven monitoring system. The system has a REST API that lets administrators specify conditions when they want to be alerted to a system event. Dreadnot is used by Rackspace to deploy the cloud monitoring system itself.
"The monitoring system can never go down, so our deployments can not cause down time," Querna said. "That's what drove us to solve the problem really well with Dreadnot."
The way that Rackspace is able to achieve the zero downtime is a combination of architecture decisions and redundant systems.
"Monitoring systems come down to an event flow and we process those events in parallel at separate data centers," Querna said. "Each data center on its own decides whether or not we should send an email or a Web hook and, at the last step, we do the de-duplication."
As such, Querna noted that even if an entire data center is shut down all of the event processing happens at the alternate data center. There is a lot of parallel processing in the Rackspace data center model. The other key component that makes the always-on data center deployment model possible is the open source Apache Cassandra NoSQL database. Querna noted that helps with the multi-region, multi-data center support, as well.
The Dreadnot tool is used as a complement with the open source Chef configuration management tool.
"When a developer spins up everything on their local machine they run a Chef client and it installs everything," Querna said. "On the production side, Dreadnot handles the regions and does some monitoring stuff and then it essentially runs a Chef client on all the servers. It's the trigger to tell Chef to upgrade things on a server. "
Rackspace is no stranger to the open source world, being one of the founders of the OpenStack cloud platforms among other efforts. The decision to open source Dreadnot came from an understanding that it has broader applicability than just Rackspace's cloud monitoring service.
The project currently is available on Github under an Apache open source license. Querna doesn't expect the project to ever foster a giant community like OpenStack, but it is a project that has already generated some outside interest.
"We would like to have contributions," Querna said.