Review – Test Driven Infrastructure with Chef – Stephen Nelson-Smith

In search of a good book on Chef itself, I picked up this new title on O’Reilly.  It’s one of their new format books, small in size, only 75 pages.

There was some very good material in this book.  Mr. Nelson-Smith’s writing style is good, readable, and informative.  The discussion of risks of infrastructure as code was instructive.  With the advent of APIs to build out virtual data centers, the idea of automating every aspect of systems administration, and building infrastructure itself as code is a new one.  So an honest discussion of the risks of such an approach is bold and much needed.  I also liked the introduction to Chef itself, and the discussion of installation.

Chef isn’t really the main focus of this book, unfortunately.  The book spends a lot of time introducing us to Agile Development, and specifically test driven development.  While these are lofty goals, and the first time I’ve seen treatment of the topic in relation to provisioning cloud infrastructure, I did feel too much time was spent on that.  It could have been better spent discussing cloud topics generally, and the chef architecture.  For instance a discussion of chef-solo was missing and the reader is plainly led towards the opscode hosted chef-server, rather than explaining the architecture, pros and cons of managing it yourself, and so forth.

By far my biggest beef with this title was that they waited to discuss the meat of provisioning infrastructure, ie bootstrapping an Amazon EC2 instance with Chef, until five pages from the end of the book!  The other complaint I had is that there were some glaring typos, like the itemized list of steps to setup the opscode platform on pages 16 & 17.

Since there aren’t a lot of titles on the market yet covering Chef, you still might want to pickup this one, but I’m more eagerly awaiting Mr. Nelson-Smith’s next title and more general introduction to the topic.

Related links:

Risks & Implications of Infrastructure as Code

Chef Download Page – Opscode

Discussion of Extreme Programming

Stephen Nelson-Smith’s great blog