

“Infrastructure as code” is one of the primary mantras of the DevOps movement. Virtualization and the elastic provisioning of resources via cloud computing are two important ingredients of a fully programmable infrastructure. Automation tools are the other key component. These are the tools that actually execute your code. There’s a growing selection of automation tools available and in a session yesterday at DevOps Days Austin, six provisioning tools were introduced. After the introductions, moderator John Willis helpfully went back over each tool, asking both the audience and the presenters what the key differentiators are for each one.
Here’s a quick overview based on this session:
Matt Ray of Opscode, the company behind Chef, presented on Chef. In his presentation, Ray emphasized Chef’s search driven model of infrastructure. As you add more infrastructure to your environment, Chef becomes the central resource that can tell load balancers where Web servers are, tell Web servers where database servers are, etc. Willis emphasized this as Chef’s core differentiator, and Ray also stressed that instead of a domain specific language, Chef uses Ruby as its scripting language.
Robert Booth from Zenoss presented on Crowbar, the open source deployment tool developed by Dell. Crowbar enables you to provision a server from the BIOS up to, via Chef, higher level server states. Crowbar can be extended via plugins called “barclamps.” So far there are barclamps available for provisioning Cloud Foundry, Zenoss, Hadoop and more. If you want to know more, you can check out Booth’s blog post about Crowbar. The ability to start with bare metal is Crowbar’s main differentiator.
The other issue Booth talked about, though he notes that this is true of all the tools discussed, is that the deployment/configuration scripts are in and of themselves a form of documentation that makes it far easier for someone to figure out what is going on in an environment.
Dan Bode of Puppet Labs talked about Puppet, a configuration automation tool. Unlike Chef, Puppet has its own DSL – some prefer this over using Ruby, while others prefer using Ruby.
Other than the DSL, Boole emphasized Puppet’s ability to remediate the differences between the desire state of a machine and the current state of a machine, and the “no-op” or dry run mode that can determine and report the differences between two states without actually making any changes.
Antoni Batchelli talked about Pallet an automation tool designed for the cloud, but that also works with traditional on-premise servers. While Puppet is built with system administrators in mind, Pallet is built with developers in mind. Pallet is a library, rather than a server, which means it can be embedded into other applications. In a DevOps world, it means that infrastructure as code starts with the development team and trickles down to operations. Pallet is was built with Clojure, a JVM implementation of the classic LISP programming language.
JuJu is a orchestration tool developed by Canonical (better known as the sponsor company of Ubuntu), open sourced under a AGPL license. “I love the tools that are out there, it’s hard to choose between them, but what’s missing is orchestration,” said Mark (no last name given) of Canonical. Instead of competing with any of the other tools mentioned above, it could be integrated with any of the others.
Finally, Tom Hite of MomentumSI talked about Amazon Web Services CloudFormation, which helps Amazon Web Services customers do cloud orchestration. Hite says you could theoretically do everything the other tools mentioned here with CloudFormation, but in his opinion it’s not as good and will be more time consuming. But he says that those tools aren’t that great at getting the machines spun up in the first place, and that’s where CloudFormation comes from. By the way, Amazon provides documentation for integrating Puppet and Chef with CloudFormation.
There are a few other tools not discussed here, including Fabric, a Python tool for deployment and other automation tasks. What do you use, and why?
Image by Mikael Hvidtfeldt Christensen
THANK YOU