As configuration management tools go, Chef and Puppet have a lot in common.
They’re both fairly mature technologies that are widely deployed, have good documentation, active user communities and strong service level agreements. They also both boast brand name clients — Chef is used by GE, Disney, and Facebook, while Puppet counts Salesforce, Sony, and Google among its clients.
The real difference between the two solutions, according to a recent report by VB Insight, may come down to the fact that Chef seems to be made with creative developers in mind, while Puppet caters more to cautious system administrators.
The report’s author, Rich Morrow, writes: “Whereas Chef tries to provide more power to the user, Puppet puts safety rails around them.” Put another way, Chef wants to help you make things. Puppet wants to help you not make mistakes.
It’s really just a matter of two different approaches that stem from the same set of historic challenges and modern-day opportunities.
15 years ago, before mobile was massive and apps were everything, you didn’t need to worry about deploying and managing solutions across a bunch of servers because you could run pretty much anything off one or two boxes locked in a closet somewhere.
Check out VB’s report Configuration Management Tool Showdown $99 on VB Insight
But in today’s cloud environment, configuration management tools are a must, unless you want to trust your business to a plethora of kludgy custom scripts and the inefficiencies that go with them.
At the end of the day, Chef is more beloved by developers because:
- Chef lets Ruby run wild, whereas Puppet worries that Ruby will clutter things up, ultimately adding to development complexity.
- Puppet limits its open-source offering, whereas Chef provides full open-source capabilities out of the box, including gratis reporting and analytics.
- Chef’s free usage tier is more than double Puppet’s (25 free nodes vs. 10 free nodes).
- Chef offers full support for test-driven development tools and an approach to provisioning that allows a lot of flexibility in how resources are deployed.
- Chef is simply cheaper, easier to deploy and scale, and (arguably) the easier tool to get creative with.
Yes, Chef can get pointlessly cutesy with the endless and confusing wordplay to support their brand (the command line is a ‘knife’, community templates are ‘cookbooks’ or ‘recipes’) but, the hubris of marketers aside, when held to scrutiny Chef is empirically a better tool for developers than Puppet.
Now go find something else to argue about.
For Python devotees, Morrow’s full report, Configuration Management Tool Showdown, also includes commentary on two lesser-known options, Ansible and Salt, noting that both are worthy of consideration but prone to criticism because they have much smaller libraries of pre-built templates as a result of being newer to the marketplace.