When I was stuck trying to understand simple concepts about Chef, I bought two books: Learning Chef (read the review) and Customizing Chef by Jon Cowie.
Learning Chef gave me the basic concepts, but Customizing Chef gave me the deep understanding I needed to evaluate the tool for my large, complicated organization.
In the closed-source Microsoft world, you figure out what the thing can do and just accept it. The book opened my eyes that Chef allows me to use a skill (reading code) that I’ve built up for over ten years. This leads to a much deeper understanding of how it works than just trust us this feature does X.
That’s not the best thing about the book though. The thing I appreciated the most was the ability to learn from the author who implemented a world-class deployment solution for Etsy using Chef. The examples he provided were real world. This wasn’t a textbook exposition on Chef. You could tell that this was the real deal. Learning from him in this way reinforced the idea that Chef was something I could implement in my complicated organization and that with every problem that arises I have options because of Chef’s extensibility.
The author did a wonderful job at explaining that extensibility with examples at every level. I learned how to customize Chef’s notification customizations, cookbooks, and even knife itself. Every explanation of a customization didn’t merely explain it; it started with the code and took the reader through a series of examples to build up understanding of the customization.
Customizing Chef isn’t for someone who is just starting Chef. For that I would recommend the tutorials or the book Learning Chef. For someone who is tasked with implementing it in a complicated organization or someone who has been using it for months and has come across some scaling challenges, this book is a life-saver.