A couple of months ago I found myself drowning in the learning curve that was chef. I had great support from them, but I’m the type of person who needs to know a technology in order to appropriately evaluate it. I could tell that chef was a nice technology, but I didn’t know how.
I went through the tutorials but they weren’t adequate for me to understand the solution. Then I found the book Learning Chef.
Learning Chef is an excellent first step in understanding the chef universe in order to get started on the right foot with the tool. I absolutely loved the tutorial, incremental approach that the authors take to go from running a recipe on your own machine to running tests on locally available virtual machines.
Which leads me to my other pleasant surprise of this book: it lays out the techniques you can use with chef in order to test what you’re doing so you know that it works. That is what separates chef from many other solutions I’ve seen: they bake testing into the process itself. If you’re going to treat infrastructure as code then you have to test it as a part of your deployment pipeline. Fortunately this introductory book doesn’t skimp on this core aspect of chef.
The third great thing about this book is that it is very approachable to those of us who have built their careers programming in the Windows environment. Every command has a hint at what you would do on a windows box. This really increased my comfort level with learning chef by allowing me to learn it in my own development environment.
The book is not for people who want a quick, few hour understanding of chef to get up and running. For example if I bring a new team on board with Chef, I probably won’t hand them this book; I’ll probably do a couple of day class with them to teach them the basics. If they’re the type of person (like me) who wants to dig deeper though and learns by doing, this book is a fabulous step in becoming proficient at using chef.