puppet vs. chef - the battle wages on

4
Puppet vs. Chef – The Battle Wages On Puppet vs. Chef So, Puppet or Chef? A question of configuration management that has started more than one flame war in its time. Whilst perhaps not helpful for those charged with implementing an automation solution for their business the most appropriate answer really is “It depends.” Many have argued that (considering the alternative) using either is fine. Just get started!

Upload: scriptrock

Post on 20-Aug-2015

810 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Puppet vs. Chef - The Battle Wages On

Puppet vs. Chef – The Battle Wages On

Puppet vs. Chef

So, Puppet or Chef? A question of configuration management that has started more than

one flame war in its time. Whilst perhaps not helpful for those charged with implementing

an automation solution for their business the most appropriate answer really is “It

depends.” Many have argued that (considering the alternative) using either is fine. Just

get started!

There are differences though, both with the technologies and the companies behind

them, that an understanding of may make your choice a little easier.

Page 2: Puppet vs. Chef - The Battle Wages On

Complexity & Power

When looking into each tool some themes consistently arise. It is frequently stated that

Puppet is a tool that was built with sysadmins in mind. The learning curve is less

imposing due to Puppet being primarily model driven. Getting your head around json

data structures in Puppet manifests is far less daunting to a sysadmin who has spent

their life at the command line than ruby syntax is. Chef on the other hand is procedural,

you write your recipes in ruby code. If you’re on the Dev side of DevOps, particularly if

you already have ruby experience, this approach feels natural to you. If you’re a

sysadmin it can be more problematic. The steep learning curve of Chef is also viewed as

a risk in larger companies. Skilling a large team up, and then maintaining those skills

over time, is seen as a additional risk.

The flip side to this argued by Chef users is that, once you are over the initially steep

learning curve, you get a lot more power and flexibility out of Chef. Its reliance on code

means you can bend configurations to your will much more easily. They would also

argue that the model driven approach of Puppet, which determines installation based on

defined dependencies, suffers in practice due to the loss of control. When defining

procedurally there are no surprises.

It should also be pointed out that Puppet now allow developers to work with pure ruby to

build manifests (as of version 2.6).

Platforms

Whilst both Chef and Puppet are cross platform Puppet is officially supported on a

broader range of operating systems. For details check these links:

Puppet Supported Platforms

Chef Supported Platforms

Community

As a more mature product Puppet has a larger user base than Chef. Chef has also been

considered more US centric to date. Having said this Chef has been making huge gains

over the past couple of years. It can be argued again here that a sysadmin may get

more from the Puppet community and a developer from the Chef one.

Page 3: Puppet vs. Chef - The Battle Wages On

Documentation

Whilst early on both Puppet and Chef had awful documentation they have both improved

significantly. Their respective online documentation repositories can be found here. I

actually prefer the Puppet docs but I’m still carrying scars from early attempts to make

use of Chef’s offerings so I could be biased:

http://docs.puppetlabs.com/

http://docs.opscode.com/

In terms of reference texts both Puppet and Chef have excellent options available:

Pro Puppet

Puppet 2.7 Cookbook

Test Driven Infrastructure with Chef

Chef – The definitive guide (Coming soon)

Pricing

Both Puppet and Chef offer free open source versions. Puppet Enterprise is free for the

first 10 nodes and then $99 per node (per year) after that. Discounts kick in in tiers after

that until you hit 2500 nodes.

Private (behind the firewall) Chef ranges from $120 per month for 20 servers to $600 per

month for 100 servers. Chef also have a hosted (SaaS) offering which is priced the

same. Be prepared for pain with their UI though. It hasn’t won any user experience

awards 

Conclusion

If you have time to try both then do. It’s a bit of a case of horses for courses and you

may be surprised. If you’re a large shop with a diverse range of skills in operations and

development you may lean towards Puppet. If you’re a Rails shop you’d probably go

straight to Chef. There really is no definitive answer though. As mentioned above, doing

one is light years better than doing neither so if you’re agonizing over the decision just

stop, toss a coin and get going today.