SlideShare une entreprise Scribd logo
1  sur  3
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.
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.
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.

Contenu connexe

En vedette

Deliver on DevOps with Puppet Application Orchestration Webinar 11/19/15
Deliver on DevOps with Puppet Application Orchestration Webinar 11/19/15Deliver on DevOps with Puppet Application Orchestration Webinar 11/19/15
Deliver on DevOps with Puppet Application Orchestration Webinar 11/19/15Puppet
 
Puppet devops wdec
Puppet devops wdecPuppet devops wdec
Puppet devops wdecWojciech Dec
 
Learn Puppet : Quest Guide for the Learning VM
Learn Puppet : Quest Guide for the Learning VMLearn Puppet : Quest Guide for the Learning VM
Learn Puppet : Quest Guide for the Learning VMKumaran Balachandran
 
Chef vs. Puppet in the Cloud: How Telepictures and MoneySuperMarket Do It
Chef vs. Puppet in the Cloud: How Telepictures and MoneySuperMarket Do ItChef vs. Puppet in the Cloud: How Telepictures and MoneySuperMarket Do It
Chef vs. Puppet in the Cloud: How Telepictures and MoneySuperMarket Do ItRightScale
 
Cfengine vs Puppet vs Chef: A Guide for Stressed Developers
Cfengine vs Puppet vs Chef: A Guide for Stressed DevelopersCfengine vs Puppet vs Chef: A Guide for Stressed Developers
Cfengine vs Puppet vs Chef: A Guide for Stressed DevelopersRon Toland
 
Learning Puppet Chapter 1
Learning Puppet Chapter 1Learning Puppet Chapter 1
Learning Puppet Chapter 1Vishal Biyani
 
Devops : Automate Your Infrastructure with Puppet
Devops : Automate Your Infrastructure with PuppetDevops : Automate Your Infrastructure with Puppet
Devops : Automate Your Infrastructure with PuppetEdureka!
 
GitFlow, SourceTree and GitLab
GitFlow, SourceTree and GitLabGitFlow, SourceTree and GitLab
GitFlow, SourceTree and GitLabShinu Suresh
 
Git and GitHub for Documentation
Git and GitHub for DocumentationGit and GitHub for Documentation
Git and GitHub for DocumentationAnne Gentle
 
Introduction to Git/Github - A beginner's guide
Introduction to Git/Github - A beginner's guideIntroduction to Git/Github - A beginner's guide
Introduction to Git/Github - A beginner's guideRohit Arora
 
Puppet overview
Puppet overviewPuppet overview
Puppet overviewjoshbeard
 
Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners HubSpot
 
Introduction to Puppet Enterprise
Introduction to Puppet EnterpriseIntroduction to Puppet Enterprise
Introduction to Puppet EnterprisePuppet
 
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...Sonatype
 

En vedette (16)

Deliver on DevOps with Puppet Application Orchestration Webinar 11/19/15
Deliver on DevOps with Puppet Application Orchestration Webinar 11/19/15Deliver on DevOps with Puppet Application Orchestration Webinar 11/19/15
Deliver on DevOps with Puppet Application Orchestration Webinar 11/19/15
 
Puppet devops wdec
Puppet devops wdecPuppet devops wdec
Puppet devops wdec
 
Learn Puppet : Quest Guide for the Learning VM
Learn Puppet : Quest Guide for the Learning VMLearn Puppet : Quest Guide for the Learning VM
Learn Puppet : Quest Guide for the Learning VM
 
Chef vs. Puppet in the Cloud: How Telepictures and MoneySuperMarket Do It
Chef vs. Puppet in the Cloud: How Telepictures and MoneySuperMarket Do ItChef vs. Puppet in the Cloud: How Telepictures and MoneySuperMarket Do It
Chef vs. Puppet in the Cloud: How Telepictures and MoneySuperMarket Do It
 
Cfengine vs Puppet vs Chef: A Guide for Stressed Developers
Cfengine vs Puppet vs Chef: A Guide for Stressed DevelopersCfengine vs Puppet vs Chef: A Guide for Stressed Developers
Cfengine vs Puppet vs Chef: A Guide for Stressed Developers
 
Learning Puppet Chapter 1
Learning Puppet Chapter 1Learning Puppet Chapter 1
Learning Puppet Chapter 1
 
Devops : Automate Your Infrastructure with Puppet
Devops : Automate Your Infrastructure with PuppetDevops : Automate Your Infrastructure with Puppet
Devops : Automate Your Infrastructure with Puppet
 
GitFlow, SourceTree and GitLab
GitFlow, SourceTree and GitLabGitFlow, SourceTree and GitLab
GitFlow, SourceTree and GitLab
 
Git and GitHub for Documentation
Git and GitHub for DocumentationGit and GitHub for Documentation
Git and GitHub for Documentation
 
Puppet 3 em 2017
Puppet 3 em 2017Puppet 3 em 2017
Puppet 3 em 2017
 
Git best practices workshop
Git best practices workshopGit best practices workshop
Git best practices workshop
 
Introduction to Git/Github - A beginner's guide
Introduction to Git/Github - A beginner's guideIntroduction to Git/Github - A beginner's guide
Introduction to Git/Github - A beginner's guide
 
Puppet overview
Puppet overviewPuppet overview
Puppet overview
 
Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners
 
Introduction to Puppet Enterprise
Introduction to Puppet EnterpriseIntroduction to Puppet Enterprise
Introduction to Puppet Enterprise
 
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
 

Similaire à Puppet vs. Chef - The Battle Wages On

Consistent Development Environment using Vagrant and Chef
Consistent Development Environment using Vagrant and ChefConsistent Development Environment using Vagrant and Chef
Consistent Development Environment using Vagrant and ChefGerald Villorente
 
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...Edureka!
 
Building a PaaS using Chef
Building a PaaS using ChefBuilding a PaaS using Chef
Building a PaaS using ChefShaun Domingo
 
Care and feeding notes
Care and feeding notesCare and feeding notes
Care and feeding notesPerrin Harkins
 
Hackathon - Building vaadin add on components
Hackathon - Building vaadin add on componentsHackathon - Building vaadin add on components
Hackathon - Building vaadin add on componentsJoonas Lehtinen
 
A Hands-On Set of Programming Problems Using Python and OpenCV
A Hands-On Set of Programming Problems Using Python and OpenCVA Hands-On Set of Programming Problems Using Python and OpenCV
A Hands-On Set of Programming Problems Using Python and OpenCVNader Karimi
 
Puppet Camp Boston 2014: Continuous Integration for Hyper-V with Puppet (Begi...
Puppet Camp Boston 2014: Continuous Integration for Hyper-V with Puppet (Begi...Puppet Camp Boston 2014: Continuous Integration for Hyper-V with Puppet (Begi...
Puppet Camp Boston 2014: Continuous Integration for Hyper-V with Puppet (Begi...Puppet
 
Building resuable and customizable Vue components
Building resuable and customizable Vue componentsBuilding resuable and customizable Vue components
Building resuable and customizable Vue componentsFilip Rakowski
 
Virtual CD4PE Workshop
Virtual CD4PE WorkshopVirtual CD4PE Workshop
Virtual CD4PE WorkshopPuppet
 
Cloud Automation with Opscode Chef
Cloud Automation with Opscode ChefCloud Automation with Opscode Chef
Cloud Automation with Opscode ChefSri Ram
 
Migraine Drupal - syncing your staging and live sites
Migraine Drupal - syncing your staging and live sitesMigraine Drupal - syncing your staging and live sites
Migraine Drupal - syncing your staging and live sitesdrupalindia
 
Development of resource-intensive applications in Visual C++
Development of resource-intensive applications in Visual C++Development of resource-intensive applications in Visual C++
Development of resource-intensive applications in Visual C++Andrey Karpov
 
Development of resource-intensive applications in Visual C++
Development of resource-intensive applications in Visual C++Development of resource-intensive applications in Visual C++
Development of resource-intensive applications in Visual C++PVS-Studio
 
PVS-Studio confesses its love for Linux
PVS-Studio confesses its love for LinuxPVS-Studio confesses its love for Linux
PVS-Studio confesses its love for LinuxPVS-Studio
 
Micro services may not be the best idea
Micro services may not be the best ideaMicro services may not be the best idea
Micro services may not be the best ideaSamuel ROZE
 
PHP Mega Meetup, Sep, 2020, Anti patterns in php
PHP Mega Meetup, Sep, 2020, Anti patterns in phpPHP Mega Meetup, Sep, 2020, Anti patterns in php
PHP Mega Meetup, Sep, 2020, Anti patterns in phpAhmed Abdou
 
WordCamp Belfast DevOps for Beginners
WordCamp Belfast DevOps for BeginnersWordCamp Belfast DevOps for Beginners
WordCamp Belfast DevOps for BeginnersStewart Ritchie
 

Similaire à Puppet vs. Chef - The Battle Wages On (20)

Consistent Development Environment using Vagrant and Chef
Consistent Development Environment using Vagrant and ChefConsistent Development Environment using Vagrant and Chef
Consistent Development Environment using Vagrant and Chef
 
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
 
Building a PaaS using Chef
Building a PaaS using ChefBuilding a PaaS using Chef
Building a PaaS using Chef
 
Care and feeding notes
Care and feeding notesCare and feeding notes
Care and feeding notes
 
Dean4j@Njug5
Dean4j@Njug5Dean4j@Njug5
Dean4j@Njug5
 
Hackathon - Building vaadin add on components
Hackathon - Building vaadin add on componentsHackathon - Building vaadin add on components
Hackathon - Building vaadin add on components
 
A Hands-On Set of Programming Problems Using Python and OpenCV
A Hands-On Set of Programming Problems Using Python and OpenCVA Hands-On Set of Programming Problems Using Python and OpenCV
A Hands-On Set of Programming Problems Using Python and OpenCV
 
Puppet Camp Boston 2014: Continuous Integration for Hyper-V with Puppet (Begi...
Puppet Camp Boston 2014: Continuous Integration for Hyper-V with Puppet (Begi...Puppet Camp Boston 2014: Continuous Integration for Hyper-V with Puppet (Begi...
Puppet Camp Boston 2014: Continuous Integration for Hyper-V with Puppet (Begi...
 
Building resuable and customizable Vue components
Building resuable and customizable Vue componentsBuilding resuable and customizable Vue components
Building resuable and customizable Vue components
 
Virtual CD4PE Workshop
Virtual CD4PE WorkshopVirtual CD4PE Workshop
Virtual CD4PE Workshop
 
Cloud Automation with Opscode Chef
Cloud Automation with Opscode ChefCloud Automation with Opscode Chef
Cloud Automation with Opscode Chef
 
Migraine Drupal - syncing your staging and live sites
Migraine Drupal - syncing your staging and live sitesMigraine Drupal - syncing your staging and live sites
Migraine Drupal - syncing your staging and live sites
 
The unintended benefits of Chef
The unintended benefits of ChefThe unintended benefits of Chef
The unintended benefits of Chef
 
Cucumber tutorial
Cucumber tutorialCucumber tutorial
Cucumber tutorial
 
Development of resource-intensive applications in Visual C++
Development of resource-intensive applications in Visual C++Development of resource-intensive applications in Visual C++
Development of resource-intensive applications in Visual C++
 
Development of resource-intensive applications in Visual C++
Development of resource-intensive applications in Visual C++Development of resource-intensive applications in Visual C++
Development of resource-intensive applications in Visual C++
 
PVS-Studio confesses its love for Linux
PVS-Studio confesses its love for LinuxPVS-Studio confesses its love for Linux
PVS-Studio confesses its love for Linux
 
Micro services may not be the best idea
Micro services may not be the best ideaMicro services may not be the best idea
Micro services may not be the best idea
 
PHP Mega Meetup, Sep, 2020, Anti patterns in php
PHP Mega Meetup, Sep, 2020, Anti patterns in phpPHP Mega Meetup, Sep, 2020, Anti patterns in php
PHP Mega Meetup, Sep, 2020, Anti patterns in php
 
WordCamp Belfast DevOps for Beginners
WordCamp Belfast DevOps for BeginnersWordCamp Belfast DevOps for Beginners
WordCamp Belfast DevOps for Beginners
 

Plus de CloudCheckr

Android vs. iPhone for Mobile Security
Android vs. iPhone for Mobile SecurityAndroid vs. iPhone for Mobile Security
Android vs. iPhone for Mobile SecurityCloudCheckr
 
Top 10 Windows Vulnerabilities - Infographic
Top 10 Windows Vulnerabilities - InfographicTop 10 Windows Vulnerabilities - Infographic
Top 10 Windows Vulnerabilities - InfographicCloudCheckr
 
Top 10 Windows Ten Vulnerabilities - Infographic
Top 10 Windows Ten Vulnerabilities - InfographicTop 10 Windows Ten Vulnerabilities - Infographic
Top 10 Windows Ten Vulnerabilities - InfographicCloudCheckr
 
Top 10 Java Vulnerabilities & How to Fix Them - Infographic
Top 10 Java Vulnerabilities & How to Fix Them - InfographicTop 10 Java Vulnerabilities & How to Fix Them - Infographic
Top 10 Java Vulnerabilities & How to Fix Them - InfographicCloudCheckr
 
Top 10 critical CVEs that can lead to a data breach - Infographic
Top 10 critical CVEs that can lead to a data breach - InfographicTop 10 critical CVEs that can lead to a data breach - Infographic
Top 10 critical CVEs that can lead to a data breach - InfographicCloudCheckr
 
Top 20 OWASP vulnerabilities & how to fix them - Infographic
Top 20 OWASP vulnerabilities & how to fix them - Infographic Top 20 OWASP vulnerabilities & how to fix them - Infographic
Top 20 OWASP vulnerabilities & how to fix them - Infographic CloudCheckr
 
5 Dysfunctions of a DevOps Team - Velocity Ignite 2014 - ScriptRock
5 Dysfunctions of a DevOps Team - Velocity Ignite 2014 - ScriptRock5 Dysfunctions of a DevOps Team - Velocity Ignite 2014 - ScriptRock
5 Dysfunctions of a DevOps Team - Velocity Ignite 2014 - ScriptRockCloudCheckr
 
Enterprise DevOps and the Cloud
Enterprise DevOps and the CloudEnterprise DevOps and the Cloud
Enterprise DevOps and the CloudCloudCheckr
 
4 Prerequisites for DevOps Success
4 Prerequisites for DevOps Success4 Prerequisites for DevOps Success
4 Prerequisites for DevOps SuccessCloudCheckr
 
DevOps vs The Enterprise
DevOps vs The EnterpriseDevOps vs The Enterprise
DevOps vs The EnterpriseCloudCheckr
 
DevOps Days New York
DevOps Days New YorkDevOps Days New York
DevOps Days New YorkCloudCheckr
 
What if Enterprise IT Built Race Cars?
What if Enterprise IT Built Race Cars?What if Enterprise IT Built Race Cars?
What if Enterprise IT Built Race Cars?CloudCheckr
 
Techno Arms Dealers and High Frequency Traders
Techno Arms Dealers and High Frequency TradersTechno Arms Dealers and High Frequency Traders
Techno Arms Dealers and High Frequency TradersCloudCheckr
 
10 IT Automation Conferences to Attend
10 IT Automation Conferences to Attend10 IT Automation Conferences to Attend
10 IT Automation Conferences to AttendCloudCheckr
 
Welcome Our Robot Overlords
Welcome Our Robot OverlordsWelcome Our Robot Overlords
Welcome Our Robot OverlordsCloudCheckr
 
Top 5 CIO's of 2012
Top 5 CIO's of 2012Top 5 CIO's of 2012
Top 5 CIO's of 2012CloudCheckr
 
ScriptRock Robotics Testing
ScriptRock Robotics TestingScriptRock Robotics Testing
ScriptRock Robotics TestingCloudCheckr
 
ScriptRock Overview
ScriptRock OverviewScriptRock Overview
ScriptRock OverviewCloudCheckr
 

Plus de CloudCheckr (18)

Android vs. iPhone for Mobile Security
Android vs. iPhone for Mobile SecurityAndroid vs. iPhone for Mobile Security
Android vs. iPhone for Mobile Security
 
Top 10 Windows Vulnerabilities - Infographic
Top 10 Windows Vulnerabilities - InfographicTop 10 Windows Vulnerabilities - Infographic
Top 10 Windows Vulnerabilities - Infographic
 
Top 10 Windows Ten Vulnerabilities - Infographic
Top 10 Windows Ten Vulnerabilities - InfographicTop 10 Windows Ten Vulnerabilities - Infographic
Top 10 Windows Ten Vulnerabilities - Infographic
 
Top 10 Java Vulnerabilities & How to Fix Them - Infographic
Top 10 Java Vulnerabilities & How to Fix Them - InfographicTop 10 Java Vulnerabilities & How to Fix Them - Infographic
Top 10 Java Vulnerabilities & How to Fix Them - Infographic
 
Top 10 critical CVEs that can lead to a data breach - Infographic
Top 10 critical CVEs that can lead to a data breach - InfographicTop 10 critical CVEs that can lead to a data breach - Infographic
Top 10 critical CVEs that can lead to a data breach - Infographic
 
Top 20 OWASP vulnerabilities & how to fix them - Infographic
Top 20 OWASP vulnerabilities & how to fix them - Infographic Top 20 OWASP vulnerabilities & how to fix them - Infographic
Top 20 OWASP vulnerabilities & how to fix them - Infographic
 
5 Dysfunctions of a DevOps Team - Velocity Ignite 2014 - ScriptRock
5 Dysfunctions of a DevOps Team - Velocity Ignite 2014 - ScriptRock5 Dysfunctions of a DevOps Team - Velocity Ignite 2014 - ScriptRock
5 Dysfunctions of a DevOps Team - Velocity Ignite 2014 - ScriptRock
 
Enterprise DevOps and the Cloud
Enterprise DevOps and the CloudEnterprise DevOps and the Cloud
Enterprise DevOps and the Cloud
 
4 Prerequisites for DevOps Success
4 Prerequisites for DevOps Success4 Prerequisites for DevOps Success
4 Prerequisites for DevOps Success
 
DevOps vs The Enterprise
DevOps vs The EnterpriseDevOps vs The Enterprise
DevOps vs The Enterprise
 
DevOps Days New York
DevOps Days New YorkDevOps Days New York
DevOps Days New York
 
What if Enterprise IT Built Race Cars?
What if Enterprise IT Built Race Cars?What if Enterprise IT Built Race Cars?
What if Enterprise IT Built Race Cars?
 
Techno Arms Dealers and High Frequency Traders
Techno Arms Dealers and High Frequency TradersTechno Arms Dealers and High Frequency Traders
Techno Arms Dealers and High Frequency Traders
 
10 IT Automation Conferences to Attend
10 IT Automation Conferences to Attend10 IT Automation Conferences to Attend
10 IT Automation Conferences to Attend
 
Welcome Our Robot Overlords
Welcome Our Robot OverlordsWelcome Our Robot Overlords
Welcome Our Robot Overlords
 
Top 5 CIO's of 2012
Top 5 CIO's of 2012Top 5 CIO's of 2012
Top 5 CIO's of 2012
 
ScriptRock Robotics Testing
ScriptRock Robotics TestingScriptRock Robotics Testing
ScriptRock Robotics Testing
 
ScriptRock Overview
ScriptRock OverviewScriptRock Overview
ScriptRock Overview
 

Puppet vs. Chef - The Battle Wages On

  • 1. 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.
  • 2. 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.
  • 3. 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.