Test-Driven Infrastructure with Chef demonstrates a radical approach to developing web infrastructure that combines the powerful Chef configuration management framework with Cucumber, the leading Behavior-driven development (BDD) tool. Learn how to deliver real business value by developing infrastructure code test-first. Infrastructure consultant Stephen Nelson-Smith shows you how this unique approach allows you to make significant changes without the fear of unexpected side effects€”a great benefit when you€™re developing code to control your production infrastructures. By using the test-first approach introduced in this book, you gain increased security, code quality, and peace of mind.Learn the core principles behind the infrastructure-as-code approach, including modularity, cooperation, extensibility, and flexibility Take a high-level tour of the Chef framework, tool, and API, as well as the community behind the project Se
Skims quickly over some issues and barely delves into chef. This is a great high level overview that will get you up and running on Hosted Chef but doesn't talk about running your own Chef architecture or using Cucumber-Chef with your own Chef environment.
Did not read this book in details, basically going through the first 4 chapters and briefly glanced through the rest of the chapter. My primary objective is to compare Chef's features with Puppet's. Maybe because i learned Puppet first, i found that Puppet's syntax is easier to memorize, but the cookbook and recipe features of Chef is very useful for a sysadmin beginning his / her career, and mixing with Ruby code is also a welcome feature. Did not really read the TDD and BDD that book is trying to focus with Chef, maybe some other days when got more time can revisit this.
Regarding “Test-Driven Infrastructure with Chef”: Step 1 - Disregard reviews about version 1 of the book. It is completely different. Step 2 – Make sure you are near a computer with internet Step 3 – Start reading
Part of the book is higher level. The principles of good coding. Why infrastructure developers are developers and why best practices for developers still apply. Along with the benefits of test driven. This shouldn't be new to developers, but it was still a good take on the topic and worth reading. And of course, it could easily be new to the system administrator part of the audience. Chapter 2 is the Ruby you need to know to understand the rest of the book. It was a good and fast moving overview.
Then we get to the meat of the book. A series of exercises including directions, a walkthrough of the author's attempt (with lots of output and dead ends), and then a discussion on the topic.
I liked the comments about workarounds for various “annoyances.” And the incremental TDD demo. I liked the quadrant approach to the different types of tests on page 166 (how's that for a teaser.)
There were two things I didn't like. One was the pages of output. That's not my learning style. The other was the insistence that you look up things in the manual before reading. I like to read on the train where there is no internet. I also found a couple of typos, but not significant.
I'm rating this as a 3 because I couldn't try the exercises or the manual with the book. If you plan to read this book at a computer, add another star.
--- Disclosure: I received a copy of this book from the publisher in exchange for writing this review on behalf of CodeRanch.
I bought this book based on the author's excellent blog posts but I really have buyers remorse. I wanted to like it, I needed just what the title offered coming from a Puppet background but needing an introduction to Chef as well as shifting to a structured and automated testing regime from the haphazard "works for me" of now. It is a very expensive book for one that doesn't even have 80 pages of actual content. Perhaps if the content was pure gold you would not feel so short changed but there is practically the same number of pages devoted to step-by-step guides for signing up to Opscode's hosted Chef product and Amazon Web Services as there is of either Chef or Cucumber code. The final nail in the coffin was the terrible editing with blocks of repeated text and small errors in the presented configuration and code.
Unfortunately, the book was not any use at all. It is a very high lever overview of Chef. When I say "very high", I really mean - "very high" overview. It fails to provide at least one example that puts all concepts together. This book is probably another example of O'reilly's "just to cach in" series. I would suggest going to Chef's online documentation and learning more about Chef than spending time reading this book.
It was nice to get the idea of it, but I have to admit that it was easier to look up some things online and play around with kitchen, vagrant and docker. If you never used chef before it is an awesome book because it starts there already and you don't have to know anything about infrastructure automation. If you do, you may get a bit bored like I did.