Difference between Puppet and Chef
Key Difference: Puppet is a configuration management tool which is written in Ruby. It is a product of Puppet Labs. Chef is also a configuration tool, but it is written in Ruby and Erlang. It is a product of Opscode. Both the tools differ primarily in technology. Puppet’s technology has been designed for simplicity. On the other hand, Chef’s technology is designed for cloud automation.
include("ad4th.php"); ?>Puppet is an IT automation software which can also be considered as a configuration management tool. It assists system administrators to manage infrastructure during its complete lifecycle. This tool is from Puppet Labs and was founded by Luke Kanies in 2005. It comprises a language, client server processes and the Resource Abstraction Layer. It works on two important approaches to IT automation – Declarative Approach and Model Based Approach. It is available in open source as well as commercial software. In Puppet, an end state is defined by a policy, which is the desired end state. Puppet software works to meet all the requirements to reach that state. This system is divided into two parts – a central server and the clients.
Some of the important features of Puppet are:
- It provides the flexibility to carry out routine or normal administrative tasks on any number of systems.
- Free access to the latest version of Puppet
- Powerful, flexible and extensible due to its Open Source Feature
- Repeatable configurations
Chef is a configuration tool which is written in Ruby and Erlang. It is a product form Opscode. It assists in the description of the infrastructure with code. It works for cloud, on site or even a hybrid network. It is available in two flavors –
- Enterprise Chef – It provides a solution to manage and automate large scale infrastructures.
- Open Source Chef – It is a free and open source version of Chef server.
Both flavors provide integration with many cloud providers, multiple environment support, text based search capabilities, etc. However, some additional advanced features are provided in the Enterprise Chef. It is based on a no assumption model, in which Chef provides a way to describe and automate the processes as well as the infrastructure. Then later it becomes a part of the agile process. The usable definitions are known as cookbooks and recipes in Chef. These definitions are written using Ruby.
Both Puppet and Chef offer a free open source version. Both the tools differ primarily in the technology. Puppet’s technology has been designed for simplicity. On the other hand, Chef’s technology is designed for cloud automation. The model driven technology of Puppet is quiet popular with regular users. However, Chef remains to be popular with developers.
Comparison between Puppet and Chef:
|
Puppet |
Chef |
Definition |
Puppet is an open source configuration management tool which is written in Ruby. It is a product of Puppet Labs. |
Chef is also a configuration tool, but it is written in Ruby and Erlang. It is a product of Opscode. |
Supported Platforms |
It is officially supported on a broader range of OS. |
It is officially supported on a less broader range of OS. |
Community |
Larger user base |
Comparatively smaller user base |
Pricing |
It has a free open source version. Puppet Enterprise is free for the first 10 nodes and then $99 per node (per year) after that. |
It also has a free open source version. Private Chef ranges from $120 per month for 20 servers to $600 per month for 100 servers. |
API Integration |
It seems to have no extended API |
Chef has an extended API |
Type of application |
It is a user application |
It is also a user application but also can become a part of the application |
Configuring the Configuration Server |
Comparatively difficult |
Comparatively easy |
Code Execution |
Both on puppermaster and puppet client |
On the node/client |
Ordered Execution |
Some support |
Better support |
Company |
Puppet Labs |
Opscode |
Notable Customers |
Twitter and Nokia |
Facebook and Splunk |
Frindliness |
More sysadmin friendly |
More programmer friendly |
Language | Mainly Puppet's custom JSON-like language, although a Ruby option is available beginning in version 2.6 | A subset of Ruby |
Image Courtesy: blogs.vmware.com, blog.cohesiveft.com
Comments
Very useful..
Varun Malhotra
Fri, 01/09/2015 - 16:31
Add new comment