541 likes | 1.56k Views
This DevOps Tutorial takes you through what is Configuration Management all about and basic concepts of Infrastructure as code. It also compares the four most widely used Configuration Management tools i.e. Chef, Puppet, Ansible and SaltStack. <br><br>Check our complete DevOps YouTube playlist here: http://goo.gl/O2vo13 <br><br>DevOps Tutorial Blog Series here: https://goo.gl/P0zAfF
E N D
Do You Know? 1 What is DevOps Lifecycle? 2 Which are the tools used in DevOps Lifecycle? 3 Which tools are used for Configuration Management (CM) and Deployment? And Why? 4 Chef | Puppet | Ansible | SaltStack – On What factors to compare? www.edureka.co/devops
DevOps LifeCycle www.edureka.co/devops
DevOps LifeCycle : Tools Jenkins www.edureka.co/devops
DevOps LifeCycle : CM & Deployment Tools Jenkins www.edureka.co/devops
But, Why do we need these tools? www.edureka.co/devops
Scenario 1: Mass Deployment Deploy the application on 5 VMs Deploy the application on 500 VMs It is not possible for a human to deploy application on 500 VMs quickly, We need a tool that can do this job. www.edureka.co/devops
Scenario 2: Migrating from Test to Production Everything was fine in TEST! What happened now??? Due to test/production environment difference, few applications work on test but not on production. There should be a tool to handle the environment differences. www.edureka.co/devops
Scenario 3: Application Failure Why the hell app has stopped working, what did you do??? No Idea, Sir! I haven’t done anything wrong. There is no way to review change logs, complex way to roll back. There should be a tool which should roll back the application automatically to stable version in case of failures. www.edureka.co/devops
Case Study on Scenario 3 Top travel booking website in UK, 1.2 Billion pounds annual revenue, 9+ million visits per month 2 3 1 Huge money loss due to downtime! Reference: www.SoftwareOperability.com www.edureka.co/devops
We need Configuration Management and Deployment Tools for IT Automation www.edureka.co/devops
Let us understand, a very important concept Infrastructure as Code (IaC) www.edureka.co/devops
Infrastructure as Code (IaC) DEV IaC is automation of IT operations (build, deploy, manage) by provisioning of code , rather than manual process TEST Code for the infrastructure PROD Provisioning of Dev, Test and Prod environment by writing code in one centralized location www.edureka.co/devops
Infrastructure as Code (IaC) Shell Script CM Tool Script echo “spock:*:1010:1010:Spock: /home/spock:/bin/sh” \ >> /etc/passwd (the user spock is added to passwd file) user { “spock”: ensure => present, gid => “science”, home => “/home/spock”, shell => “/bin/sh” } ✓ In shell script, you need to write automation script from scratch but in CM (configuration management) tool 80% things are already available CM Tools ✓ In shell script, you need to define the workflows whereas in CM tool the workflows are already available ✓ You have UI (user interface) in CM tools to ease your job for automating the tasks but you don’t have UI in shell scripting www.edureka.co/devops
Puppet vs Chef vs SaltStack vs Ansible We will evaluate the above tools on below parameters: Scalability Ease of Setup Availability Management Interoperability www.edureka.co/devops
Scalability Highly Scalable Highly Scalable Scalability Ease of Setup Availability Management Highly Scalable Highly Scalable Interoperability www.edureka.co/devops
Ease of Setup Master-Agent Master-Agent Puppet server runs on master machine and Puppet clients runs as agent on each client machine Here Server is called as master and clients are called as minions which run as agents in client machine Scalability Ease of Setup Availability Master-Node Master-Agent Management It has only master running on server machine, but no agents running on client machine, uses ssh to login to client systems Chef server runs on master machine and Chef clients runs as agent on each client machine Interoperability Client machine VM requires no special setup, hence it is faster to setup www.edureka.co/devops
Availability Highly Available Highly Available It has multi-master architecture, if the active master goes down, the other master takes the active master place It can have multiple masters configured, if one master is down, agents connect with the other master in the list Scalability Ease of Setup Availability Highly Available Highly Available Management Runs with a single active node, called the Primary instance, if primary goes down, there is Secondary instance to take its place When there is failure in the primary server i.e. chef sever, it has a backup server to take the place of primary server Interoperability www.edureka.co/devops
Management Not very easy to learn to manage the configurations as it uses its own language called Puppet DSL. Client pulls the configurations from the Server Non-Immediate remote execution Easy to learn to manage the configurations Server pushes configurations to all the clients Immediate remote execution Scalability Ease of Setup Availability You need to be a programmer to manage the configurations as it offers configurations in Ruby DSL. Client pulls the configurations from the Server Management Easy to learn to manage the configurations Server pushes configurations to all the nodes Good for real-time application Immediate remote execution Interoperability www.edureka.co/devops
Interoperability Salt Master works only on Linux/Unix but Salt minions can work on windows as well Puppet Master works only on Linux/Unix but Puppet Agent also works on windows Scalability Ease of Setup Availability Management Interoperability Ansible supports windows machines as well but the Ansible server has to be in Linux/Unix machine Chef Server works only in Linux/Unix but Chef Client and Workstation can be on windows as well www.edureka.co/devops
Final Scorecard Overall Score (100%) Scalability (20%) Setup (20%) Availability (20%) Management (20%) Interoperability (20%) Scorecard Puppet 9.0 8.0 9.0 8.0 9.0 8.6 SaltStack 9.0 8.0 9.0 9.0 9.0 8.8 Chef 9.0 8.0 9.0 8.0 9.0 8.6 Ansible 9.0 9.0 9.0 9.0 9.0 9.0 ✓ We have given equal weightage for all the parameters to calculate overall score ✓ You may calculate the overall score by changing the weightage of parameters depending on your requirement www.edureka.co/devops
Some more factors to consider: Configuration Language Github Activity Enterprise Cost Popularity Success Story www.edureka.co/devops
Configuration Language Configuration : YAML (Python) Easy to learn, administrator oriented Python is inbuilt into most Unix and Linux deployments nowadays, so setting the tool up and running is quicker Configuration : DSL (Puppet DSL) Not easy to learn, administrator oriented Conf. Lang. GitHub Activity Enterprise Cost Configuration : YAML (Python) Easy to learn, administrator oriented Python is inbuilt into most Unix and Linux deployments nowadays, so setting the tool up and running is quicker Popularity Configuration : DSL (Ruby) Steep Learning Curve, developer oriented Success Story • • DSL : Domain Specific Language YAML : Yet Another Markup Language www.edureka.co/devops
GitHub Activity Contributors: 1,041 Commits: 49,193 Branches: 11 Releases: 82 Contributors: 355 Commits: 19,595 Branches: 9 Releases: 291 Conf. Lang. GitHub Activity Enterprise Cost Popularity Contributors: 1,003 Commits: 13,527 Branches: 33 Releases: 57 Contributors: 369 Commits: 12,089 Branches: 177 Releases: 231 Success Story Reference: www.slideshare.net/DanielKrook/caps-whats-best-for-deploying-and-managing-openstack-chef-vs-ansible-vs-puppet-vs-salt www.edureka.co/devops
Enterprise Cost for 100 Nodes Per Year Puppet Enterprise : $12,000 SaltStack Enterprise : $15,000 Reference: www.saltstack.com/enterprise/ Reference: www.puppet.com/support-services/customer-support/support-plans Conf. Lang. GitHub Activity Enterprise Cost Popularity Success Story Ansible Enterprise Tower : $10,000 Chef Enterprise : $7,200 Reference: www.chef.io/pricing/ Reference: www.ansible.com/pricing www.edureka.co/devops
Popularity : Google Trend (Past 5 Years) Conf. Lang. GitHub Activity Enterprise Cost Popularity Success Story ✓ Puppet and Chef are old players, puppet has wider adoption ✓ SaltStack and Ansible are new players, and Ansible looks very promising with the growing trend www.edureka.co/devops
Success Story “75% of ICE’s(Intercontinental Exchange) 20,000 servers are managed by Puppet Enterprise. They increased from 300 servers per admin to 700 servers per admin. Provisioning dev environments reduced from 1 or 2 days to just 21 minutes.” “LinkedIn had about 5,000 Salt Minions under management 4 years ago. That number has ballooned to more than 70,000 today to manage their infrastructure.” Conf. Lang. Reference: www.saltstack.com/saltstack-at-web-scale-better-stronger-faster/ GitHub Activity Reference: www.puppet.com/resources/customer-stories/nyse Enterprise Cost Popularity “Chef has increased the effectiveness and the speed of our development cycle. 30% of Gannett's technology organization used Chef but Gannett has aggressive plans for 100% adoption this year 2016.” “Using Ansible, we’ve been able to cut down certain processes from 17 hours to 3 minutes. Ansible is unquantifiable in its benefit.” Success Story Reference: www.ansible.com/success-stories/fatmap Reference: www.chef.io/customers/gannett/ www.edureka.co/devops
Conclusion ✓ By now, you would have selected your tool, remember, there is nothing called best tool for configuration management in DevOps ✓ You should choose the tool as per your organization’s need and environment www.edureka.co/devops
Thank You … Questions/Queries/Feedback www.edureka.co/devops