Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Virtualization Digital Assignment 2: Monitoring Tools - Chef and Puppet

Download as pdf or txt
Download as pdf or txt
You are on page 1of 13

VIRTUALIZATION DIGITAL ASSIGNMENT 2

MONITORING TOOLS - CHEF AND PUPPET

submitted by

V.Priyanka 17BCE1001

Jyoti Tiwari 17BCE1135

B.Shruti 17BCE1299

in partial fulfillment for the course

VIRTUALIZATION

CSE4011
In

COMPUTER SCIENCE AND ENGINEERING

Faculty : Prof. Shyamala L

FEBRUARY, 2020

1
TABLE OF CONTENTS

CHAPTER TITLE PAGE

1 Introduction 3

2 Chef 3
2.1 What is Chef
2.2 Chef Key Metrics
2.3 Configuration Management

3 Puppet 6
3.1 What is Puppet
3.2 Puppet Key Metrics
3.3 Configuration Management

4 How do puppet and chef stack on each other 8

5 Similarities between puppet and chef 8

6 Comparison between puppet and chef 10

7 Pros and cons of each tool 11

2
1.INTRODUCTION

Configuration management is an essential process for DevOps teams. It allows


engineers to manage dozens, hundreds, or even thousands of machines in a
consistent and automated way. While there are many configuration
management tools available, three of the most popular are Chef, Puppet, and
Ansible.

2.CHEF
Chef is a tool used for Configuration Management and is closely competing with
Puppet.

2.1 What is Chef


Chef is an automation tool that provides a way to define infrastructure as code.
Infrastructure as code (IAC) simply means managing infrastructure by writing code
(Automating infrastructure) rather than using manual processes. It can also be
termed as programmable infrastructure. Chef uses a pure-Ruby, domain-specific
language (DSL) for writing system configurations.

Below are the types of automation done by Chef, irrespective of the size of
infrastructure:
1. Infrastructure configuration
2. Application deployment
3. Configurations are managed across your network
Like Puppet which has a Master-Slave architecture, Chef has a Client-Server
architecture. Chef has an extra component called Workstation.

3
In Chef, Nodes are dynamically updated with the configurations in the Server. This
is called Pull Configuration which means that we don’t need to execute even a single
command on the Chef server to push the configuration on the nodes, nodes will
automatically update themselves with the configurations present in the Server.

2.2 Chef Key Metrics


1. Chef supports multiple platforms like AIX, RHEL/CentOS, FreeBSD, OS X,
Solaris, Microsoft Windows and Ubuntu. Additional client platforms include
Arch Linux, Debian and Fedora.
2. Chef can be integrated with cloud-based platforms such as Internap, Amazon
EC2, Google Cloud Platform, OpenStack, SoftLayer, Microsoft Azure and
Rackspace to automatically provision and configure new machines.
3. Chef has an active, smart and fast growing community support.
4. Due to Chef’s maturity and flexibility, it is being used by giants like Mozilla,
Expedia, Facebook, HP Public Cloud, Prezi, Xero, Ancestry.com, Rackspace,
Get Satisfaction, IGN, Marshall University, Socrata, University of Minnesota,
Wharton School of the University of Pennsylvania, Bonobos, Splunk, Citi,
DueDil, Disney, and Cheezburger.

2.3 Configuration Management


There are broadly two ways to manage your configurations namely Push and Pull
configurations.

4
1. Pull Configuration : In this type of Configuration Management, the nodes poll
a centralized server periodically for updates. These nodes are dynamically
configured so basically they are pulling configurations from the centralized
server. Pull configuration is used by tools like Chef, Puppet etc.
2. Push Configuration : In this type of Configuration Management, the
centralized Server pushes the configurations to the nodes. Unlike Pull
Configuration, there are certain commands that have to be executed in the
centralized server in order to configure the nodes. Push Configuration is used
by tools like Ansible.

5
3.PUPPET
Puppet is a Configuration Management tool that is used for deploying, configuring
and managing servers.

3.1 What is Puppet


It performs the following functions :
1. Defining distinct configurations for each and every host, and continuously
checking and confirming whether the required configuration is in place and is
not altered (if altered Puppet will revert back to the required configuration)
on the host.
2. Dynamic scaling-up and scaling-down of machines.
3. Providing control over all your configured machines, so a centralized (master-
server or repo-based) change gets propagated to all, automatically.

Puppet uses a Master Slave architecture in which the Master and Slave communicate
through a secure encrypted channel with the help of SSL.

3.2 Puppet Key Metrics


1. Large installed base: Puppet is used by more than 30,000 companies
worldwide including Google, Red Hat, Siemens, etc. along with several
universities like Stanford and Harvard law school. An average of 22 new
organizations per day use Puppet for the first time.
2. Large developer base: Puppet is so widely used that lots of people develop for
it. Puppet has many contributors to its core source code.
3. Long commercial track record: Puppet has been in commercial use since
2005, and has been continually refined and improved. It has been deployed in
very large infrastructures (5,000+ machines) and the performance and
scalability lessons learned from these projects have contributed in Puppet’s
development.

6
4. Documentation: Puppet has a large user-maintained wiki with hundreds of
pages of documentation and comprehensive references for both the language
and its resource types. In addition, it’s actively discussed on several mailing
lists and has a very popular IRC channel, so whatever your Puppet problem,
it’s easy to find the answer.
5. Platform support: Puppet Server can run on any platform that supports ruby
for ex: CentOS, Microsoft Windows Server, Oracle Enterprise Linux etc. It
not only supports the new operating systems but it can also run on relatively
old and out-of-date OS and Ruby versions as well.

3.3 Configuration Management


System Administrators usually perform repetitive tasks such as installing servers,
configuring those servers, etc. They can automate this task, by writing scripts, but it
is a very hectic job when you are working on a large infrastructure.
To solve this problem, Configuration Management was introduced. Configuration
Management is the practice of handling changes systematically so that a system
maintains its integrity over time. Configuration Management (CM) ensures that the
current design and build state of the system is known, good & trusted; and doesn’t
rely on the tacit knowledge of the development team. It allows access to an accurate
historical record of system state for project management and audit purposes.

Configuration Management overcame the following challenges:


1. Figuring out which components to change when requirements change.
2. Redoing an implementation because the requirements have changed since the
last implementation.
3. Reverting to a previous version of the component if you have replaced with a
new but flawed version.
4. Replacing the wrong component because you couldn’t accurately determine
which component needed replacing.

7
4. How do puppet and chef stack on each other?

Now that we have an idea where each of these tools is coming from, how do they
compare? Are they more similar or different, and which is better for you?

• Availability: In this context, availability is defined as how accessible the


tools are during unscheduled service interruptions. If Chef’s primary server
goes down, a backup server takes up the slack. Puppet incorporates a multi-
master architecture, so if the active master is down, there’s another master
to fill in for it.
• Terms and Concepts: Since the configuration managers abstract the
configuration files, it’s important to familiarize yourself with the terms
unique to each tool. The chef has you working with cookbooks and recipes,
while Puppet works with manifests and modules. Recipes and manifests,
as a rule, describe single concepts, while cookbooks and recipes describe
more general concepts.
• Enterprise Cost: Chef Automate has an annual fee of $137 per node, and
that price gives you everything you need to build and deploy. Puppet prices
range from $112 per node/year if you choose the standard support plan, up
to $199 per node/year bundling in the premium support plan.

5.Similarities between chef and puppet

• The Setup: Chef functions with a master-client architecture, with the server
running on the master machine, while the client runs as an agent on every
client machine. Chef also includes an additional component called
“Workstation,” which handles all of the configurations that are tested by
storing then pushing them to the central server.

8
Puppet uses a master-agent architecture arrangement as well. The Puppet server runs
on the master machine, while Puppet clients run as an agent on each client machine.
Also, there’s an agent-master certificate signing that takes place afterward.
So, in other words, both tools are difficult to install.

• Managing the Tools: If you’re using Chef, then be ready to access your
programming skills because you will need them to manage configurations
successfully. Chef’s client pulls configurations from the server, and those
configurations are in Ruby DSL.

Puppet isn’t any less involved, unfortunately. It uses its own language called
PuppetDSL (Domain Specific Language). The process is oriented towards system
administrators and features non-immediate remote execution.
The bottom line, both tools use the pull configurations. That means that the slave
nodes automatically pull configurations from the central server without the need for
any commands. This is as opposed to the push configuration, where all the
configurations present in the central server are pushed to the nodes.

• Scalability: Both Chef and Puppet are very easily scalable. They can both
handle large infrastructure, provided the user provides the IP address and
hostname of the nodes that need to be configured. The tools will handle the
rest.
• Configuration Language: Chef uses Ruby DSL (Domain Specific
Language), a developer-oriented language that’s challenging to learn.
Puppet employs the above-mentioned PuppetDSL, another difficult to
learn the language.
• Interoperability: Both the Chef server and the Ruby server work only on a
Linux/Unix machine. Chef Client and Workstation can run on Windows,
and Puppet Agent is compatible with Windows.

9
6.Comparison between chef and puppet

Puppet Chef

Puppet is an open source Chef is also a configuration


configuration management tool, but it is written in Ruby
Definition
tool which is written in Ruby. and Erlang. It is a product of
It is a product of Puppet Labs. Opscode.

Supported It is officially supported on a It is officially supported on a


Platforms broader range of OS. less broader range of OS.

Comparatively smaller user


Community Larger user base
base

It has a free open source It also has a free open source


version. Puppet Enterprise is version. Private Chef ranges
Pricing free for the first 10 nodes and from $120 per month for 20
then $99 per node (per year) servers to $600 per month for
after that. 100 servers.

It seems to have no extended


API Integration Chef has an extended API
API

It is also a user application but


Type of
It is a user application also can become a part of the
application
application

Configuring the
Configuration Comparatively difficult Comparatively easy
Server

10
Both on puppet master and
Code Execution On the node/client
puppet client

Ordered
Some support Better support
Execution

Company Puppet Labs Opscode

Notable
Twitter and Nokia Facebook and Splunk
Customers

Friendliness More sysadmin friendly More programmer friendly

Mainly Puppet’s custom


JSON-like language, although
Language A subset of Ruby
a Ruby option is available
beginning in version 2.6

7.Pros and cons of each tool

• Puppet Pros:

1. The complete User Interface

2. Powerful reporting capabilities

3. Grants access to a well-established support community

• Puppet Cons:

1. Support for pre-Ruby versions is in the process of being scaled back

2. Its model-driven approach equals less control when compared to code-driven


approaches

11
3. Advanced tasks require CLI, and since it is based on Ruby, you’ll need to be
familiar with the latter

• Chef Pros:

1. Its code-driven approach means greater flexibility and control of configurations

2. The “Knife” tool lessens installation headaches

3. Provides you with an extensive collection of configuration and module recipes

• Chef Cons:

1. Does not support push functionality

2. If you don’t already know Ruby and procedural coding, get ready for a steep
learning curve

3. It’s a complex tool

In the final analysis, the ideal DevOps tool depends on the needs and goals of your
organization. Chef has been in existence for a long time when compared with most
other DevOps tools and demonstrates an excellent capability for handling extremely
complex tasks. If your organization has development-focused teams and
environments, then Chef is the ideal choice.

Puppet has also been around for quite a while and has been deployed and well-vetted
in a selection of large, demanding environments. Based on this, Puppet is a good
choice for larger enterprises that favor well-tested and long-standing tools.

The final choice comes down to realizing what’s important for your business.

12
REFERENCES

1. https://www.edureka.co/blog/what-is-chef/
2. https://www.edureka.co/blog/chef-tutorial/
3. https://www.edureka.co/blog/puppet-tutorial/
4. https://www.edureka.co/blog/what-is-puppet/

13

You might also like