Musings on computers and software as I continue learning and sharing software development knowledge.

Monday, August 19, 2013

Book Review: Test Driven Infrastructure with Chef (2nd Edition)

This is the book review of 'Test Driven Infrastructure with Chef (2nd Edition)' by Stephen Nelson-Smith

This is a book aimed for people interested in chef, which is an automated server configurator. An important thing to note about the book is the amount of easiness and clarity that the author has put in. Even for a person having no knowledge of chef or behavior driven development can feel right at home crafting complex recipes using chef in a development style that instills confidence and clarifies the intention of the generated script.
The book starts with the philosophy of developing infrastructure as a code in a test driven manner, which is an alien concept for most of people; however as infrastructure as a code continues to become more popular and mature, the takers for this book will increase. In the second chapter, the chef is introduced and its installation and getting started with our development environment is explained. However, the book relies heavily on the wiki as chef is undergoing rapid transformations. In the next chapters, ruby language is explained followed by test and behavior driven development is explained. For any rubyist, there almost nothing new and the contents can be skipped. The next chapter introduces BDD to the user. For someone not having prior knowledge in BDD or tools like rspec and cucumber, this chapter is sufficient to give a high level introduction for the same. Given the scope of the book, the chapter performs its task very well and does not feel too short or long.
The test driven infrastructure framework chapter is where the theory and the concepts detailing test driven infrastructure are explained and in the last major chapter, various tools are introduced which are essential for any person wanting to carry out further development in chef using the approach mentioned in the book. Not only is the TDD and other allied concepts present, but issues like continuous integration also exist, that are a must in any agile team. These exercises are detailed and can be done with a sample chef recipe before using it in production.
Although, I did not follow the entire book and did all the exercises, but the book was nevertheless helpful in providing me with the details about TDD with while doing devops with chef.