Test-Driven Infrastructure with Chef: A Book Report
Virtualization has made it incredibly easy for web software developers to quickly and relatively cheaply scale their products, but what happens when a virtual infrastructure becomes too much to manage? Enter virtualization management tools like the popular, open source Chef, which makes deploying services as simple as editing configuration files. And if you want to rest assured that your deployments will work as planned, you’d be well-served to leverage one of the many test-driven development frameworks available for Ruby. In Test-Driven Development with Chef, author Stephen Nelson-Smith shows how to leverage Cucumber to do just this, using the cucumber-chef gem.
Test-Driven Infrastructure with Chef is a short, relatively quick read—the print version checks in at 88 pages. The majority of the book presents the task of test-driven infrastructure deployment via a basic example that mirrors real-world needs—in this case, allowing developers to connect to a server, via SSH, using a private key mechanism. Each step of the example is well-explained and easy to follow. With that said, though, it’s worth noting that it’s probably not well-suited for a general reference for Chef. In fact, the author has a more authoritative book on the topic coming out sometime in the future. If you’re already familiar with Chef, though, and want to learn more about using TDD to make your deployments more rock-solid, this may not be an issue.
Overall, I found Test-Driven Infrastructure with Chef to be a solid overview of the concepts presented. While it may not be the end-to-end reference on using TDD to drive software-based infrastructure projects, it’s a good orientation to the concepts and potential issues involved with using Chef and Cucumber in deploying your next virtual server.
More information about Test-Driven Infrastructure with Chef is available from O’Reilly.