The hard-working nerds at Rackspace have a gift for you: Dreadnot, their homebrewed software deployment solution.
It’s free and open-source; it’s built with Node.js; it purports to make continuous deployment a breeze (relatively speaking); and if all that doesn’t excite you, you’re probably not the kind of hacker that would find this post interesting, in which case we direct you to this video of a robot petting a kitten.
Our good buddy Paul Quera, who was recently hanging out in the VentureBeat video studio to chat about Node.js, writes on the Rackspace blog that Dreadnot was created to deploy large-scale software with a minimum of manual labor and/or Kafkaesque horror-scapes of failure.
“The Rackspace Cloud Monitoring team is fanatical about continuous deployment,” he says. “We love being able to iterate quickly on our product and believe that our customers will get the best experience possible by doing so.”
Originally, the Rackspace cloud monitoring team had been using Etsy’s Deployinator for these tasks.
However, as Querna points out, “The Deployinator was developed for a single region product and took some shortcuts… Each [Rackspace] team was faced with creating many customizations in Deployinator to fit the models we desired.” The team also needed a solution for multiple-region deployments, which Deployinator didn’t support.
Dreadnot gives clever engineers like you a step-by-step control mechanism and window into the deployment process.
If any of its steps fail, Dreadnot will pause its operations and wait for you, the aforementioned clever engineer, to address the issues, all while directing traffic to another region.
“Dreadnot was developed to assist with the most common multiple region deployments,” Querna writes. “However, for the complicated deployments, or those deployments that experience a fatal error, you can proceed manually without interference from Dreadnot.”
When Dreadnot is finished with deployment for that region, it reconfigures the load balancers to direct traffic back to the newly enhanced region. Then, Dreadnot lathers, rinses and repeats for the rest of the regions in the deployment.
Qurena also explains that staging and other environments get isolated Dreadnot instances for security reasons and to keep testing separate from production code.
Dreadnot is open sourced under the Apache License version 2.0. Go get it (or fork it, or whatever) on Github.