The Chef Win Series is a response to: "How has Chef changed our operations for the better, in the past 2 years since our shop adopted it?"   Example:

Declarative vs Programatic Approach

Imagine that you are a manager. The declarative approach assumes your subordinate is trained, mature, and capable. You say "Go do xyz" and your subordinate knows exactly what to do. It is done.

The programming approach would be - er uh - more detailed. "...and when you get to that part, be sure to look for abc and check it for ..."

Neither approach is right or wrong, except in the appropriate situation.  

Chef, a Programatic Approach

We could get into pages and pages of arcane back and forth on the merits of each approach as it pertains to provisioning servers. I for one would be delighted to take the declarative approach but for the minor sea of exceptions that may ensue. And for these, a slightly more programatic approach would be easier.

Provisioning machines, even programatically, isn't that hard. At least for the most part. So it's a preference only, but I prefer the programatic approach. It seems a bit more honest, and a bit more direct.


As with many things in life, the programatic approach might be slightly messier. And I am fine with that.

Again, provisioning servers isn't so hard that a little mess is a problem. Messy, in this case, is good.