Comparing Puppet and Chef

Topic
Chef
Puppet
Prerequisite
Familiarity with Git and Ruby
None
Most suited for
Development focussed teams
If if stability and maturity are key factors 
Ideal
As a solutions for heterogenous environment
As a solutions for heterogenous environment
Price
Free open source version
Free open source
Code driven
Better control and flexibility over configurations
Less control due to model driven approach
Git
Enables version control of configurations
No
Installation burden
Use of knife tool
Use of facter tool
Learning curve
Steep – Ruby and procedural code
Steep - Ruby
Simplicity
Not simple tool –can lead to complications
Not simple tool –can lead to complications
Push functionality
Not supported
Not supported
Language
JSON like language and Ruby
Subset of Ruby
Deployment
Private Chef runs on local machine while hosted Chef runs on Opscode cloud.
Puppet enterprise runs on your machine
Code
Follows instructions. So need to make sure instructions are in correct order. 
List of dependencies that Puppet interprets.  Order need not be maintained.
Data store used
Postgres, Solr
PuppetDB, Hiera
Keep track the different files, libraries, executables, configurations, and other details
Keep track the different files, libraries, executables, configurations, and other details
New machine configuration
Yes
Yes
Configuration
Server / Client
Puppet agents / Puppet master
Code snippet
Receipes
manifests
System description
Cookbooks
module – located on puppet master
Run on machines

“puppet agent” command is run on agent nodes

Comments

  1. Thanks for sharing this information. You may also refer for practice of Puppet and Chef http://www.s4techno.com/lab-setup/

    ReplyDelete
  2. thank u - but for practice and code test, regular vms are good enough.

    ReplyDelete
  3. This comment has been removed by the author.

    ReplyDelete
  4. Deployment topics are reversed in your table - good chart!

    ReplyDelete

Post a Comment

Popular posts from this blog

Amazon Scenario Questions

Using ssh keys to login to VMs

Accessing NATted VMs from Host machine using Port Forwarding