SlideShare a Scribd company logo
1 of 34
Download to read offline
Ninja, choose your
weapon!
Puppet vs. Chef vs. Ansible vs. Salt
About me
Ant(on) Weiss
DevOps Evangelist&Enabler, CI/CD/ALM Expert
ant.weiss@gmail.com - twitter: @antweiss
http://otomato.wordpress.com
DevOps isn’t about
Tools
But they definitely help!
DevOps is all about
Tools
"We shape our tools. And then our tools shape us.”
Marshall McLuhan
Weapons of Mass
Configuration
• Manage configuration of thousands of servers
• Automation and orchestration
• Infrastructure as Code
Tools vs. no Tools
vs.
The Good Tool
• One we are comfortable with
• Flexible
• Extendable
• Scalable
• Community-supported
• Integrate-able
Puppet
Since: 2005
Written in: Ruby
Developed by: Puppetlabs
Configuration: Puppet-specific declarative language
(Ruby-based) or pure Ruby. Model-driven.
Manages: > 10 mln nodes (acc. to Puppetlabs)
Puppet
Puppet master
agent agent agent
XMLRPC over HTTPS
report
report
report
Puppet Concepts
Resources: files, services, packages, users…
Manifests: Puppet programs
Classes: collections of resource definitions
Modules: classes + accompanying data
Puppetforge.com: 3326 community modules
Puppet Features
• Configuration Management
• Automatic Discovery (MCollective)
• Orchestration (MCollective)
• Provisioning (w/Foreman or Razor)
Puppet Code:
class ntp {
case $operatingsystem {
centos, redhat: {
$service_name = 'ntpd'
$conf_file = 'ntp.conf.el'
}
debian, ubuntu: {
$service_name = 'ntp'
$conf_file = 'ntp.conf.debian'
}
}
package { 'ntp':
ensure => installed,
}
file { 'ntp.conf':
path => '/etc/ntp.conf',
ensure => file,
require => Package['ntp'],
source => "/root/examples/answers/${conf_file}"
}
service { 'ntp':
name => $service_name,
ensure => running,
enable => true,
subscribe => File['ntp.conf'],
}
}
Puppet Web UI Options
• Puppet Enterprise (commercial for > 10 nodes)
• Foreman
• PuppetBoard ( reporting only )
Puppet in a Nutshell
• The Most Mature (of the four reviewed)
• ‘Pull’ mode of operation, but push also supported
• Enterprise Features
• Largest Ecosystem (Foreman, PuppetBoard)
• A Language of its Own
• Less flexible
• Easy to start with, gets complicated further along.
Chef
Since: 2009
Written in: Ruby+Erlang
Developed by: Chef ( formerly Opscode )
Configuration: pure Ruby DSL - procedural
Chef
Chef Concepts
Resources: files, services, packages, users…
Recipes: Chef programs
Cookbooks: recipes + accompanying data
Databags: global variables
supermarket.chef.io: 2061 cookbooks
Chef Code
case platform
when "ubuntu","debian"
default[:ntp][:service] = "ntp"
when "redhat","centos","fedora","scientific"
default[:ntp][:service] = "ntpd"
end
package "ntp" do
action [:install]
end
template "/etc/ntp.conf" do
source "ntp.conf.erb"
variables( :ntp_server => "time.nist.gov" )
notifies :restart, "service[ntpd]"
end
service "ntpd" do
action [:enable,:start]
end
Chef Web UI Options
• OpenSource WebUI - deprecated
• Enterprise Chef - commercial, basic
Chef in a Nutshell
• Flexible, powerful
• Enterprise Features (HA, Analytics)
• Pure Ruby DSL
• Steep learning curve
• Push feature still in beta
Ansible
Since: 2012
Written in: Python
Developed by: Ansible Works inc.
Configuration: yaml+jinja
Motto: Simple IT Automation
Ansible
Controlling
machine
node node node
report
report
json over ssh
Agentless!!!
Ansible Concepts
• Inventory: a list of hosts and host groups
• Ad-hoc commands: ansible all -a "/bin/echo hello"
• Playbooks: configuration scenarios
• Modules: control system resources and execute
commands. Can be written in any language!
• Roles: playbook and accompanying data
• ansible-galaxy.com: 3124 roles
Ansible Code
hosts: all
#ntp service name defined in ntp.yml
vars_files: ntp.yml
tasks:
- name: Install ntp package
yum: name=ntp state=latest
sudo: yes
- name: Starting ntp service
service: name={{ ntp_service_name }} state=started
sudo: yes
Ansible Web UI
• Ansible Tower (commercial)
Ansible in a Nutshell
• Simple
• Lightweight
• Agentless (SSH)
• Windows support still immature.
• yaml DSL can be tricky to use
• Not the best performance. (Slow)
Salt
Since: 2011
Written in: Python
Developed by: SaltStack inc.
Configuration: yaml+jinja
Motto: Speed, scalability and flexibility
Salt
master
minion minion minion
report
report
ZeroMq
Can also be masterless!
Salt Concepts
• Commands: salt '*' disk.usage
• Modules: control system resources and execute
commands. Written in Python or Cython.
• States: configuration scenarios
• Grains: facts about the managed nodes
• Pillars: globally accessed data
• Community State Trees & Modules: saltstarters.org
Salt Code
# Include :download:`map file <map.jinja>` of OS-specific package names and
# file paths. Values can be overridden using Pillar.
{% from "ntp/map.jinja" import ntp with context %}
ntp:
pkg.installed:
- name: {{ ntp.client }}
{% set ntp_conf_src = salt['pillar.get']('ntp:ntp_conf') -%}
{% if ntp_conf_src %}
ntp_conf:
file.managed:
- name: {{ ntp.ntp_conf }}
- template: jinja
- source: {{ ntp_conf_src }}
- require:
- pkg: ntp
{% endif %}
Salt Web UI
• Halite: free, in pre-alpha
Salt in a Nutshell
• Fast
• Super-scalable
• Easily Extensible (renderers, returners, etc)
• Python API
• Push mode by default
• In Active Development
• Documentation Needs Improvement
Summary
• Puppet: features, WebUI, maturity, ecosystem
• better for devs
• Chef: flexibility, Ruby
• better for devs
• Ansible: simplicity, agentless, yaml, Python
• better for ops
• Salt: scalability, flexibility, robustness, Python
• better for ops
Stop breaking your teeth!
vs.

More Related Content

What's hot

Kubernetes Java Operator
Kubernetes Java OperatorKubernetes Java Operator
Kubernetes Java OperatorAnthony Dahanne
 
Musings on Mesos: Docker, Kubernetes, and Beyond.
Musings on Mesos: Docker, Kubernetes, and Beyond.Musings on Mesos: Docker, Kubernetes, and Beyond.
Musings on Mesos: Docker, Kubernetes, and Beyond.Timothy St. Clair
 
System Hardening Using Ansible
System Hardening Using AnsibleSystem Hardening Using Ansible
System Hardening Using AnsibleSonatype
 
제4회 한국IBM과 함께하는 난공불락 오픈소스 인프라 세미나-Ranchers
제4회 한국IBM과 함께하는 난공불락 오픈소스 인프라 세미나-Ranchers제4회 한국IBM과 함께하는 난공불락 오픈소스 인프라 세미나-Ranchers
제4회 한국IBM과 함께하는 난공불락 오픈소스 인프라 세미나-RanchersTommy Lee
 
BigTop vm and docker provisioner
BigTop vm and docker provisionerBigTop vm and docker provisioner
BigTop vm and docker provisionerEvans Ye
 
Using Kubernetes for Continuous Integration and Continuous Delivery. Java2days
Using Kubernetes for Continuous Integration and Continuous Delivery. Java2daysUsing Kubernetes for Continuous Integration and Continuous Delivery. Java2days
Using Kubernetes for Continuous Integration and Continuous Delivery. Java2daysCarlos Sanchez
 
OpenStack in Enterprise
OpenStack in EnterpriseOpenStack in Enterprise
OpenStack in EnterpriseNalee Jang
 
Kubernetes Architecture - beyond a black box - Part 2
Kubernetes Architecture - beyond a black box - Part 2Kubernetes Architecture - beyond a black box - Part 2
Kubernetes Architecture - beyond a black box - Part 2Hao H. Zhang
 
The Butler is still young – applying modern Jenkins features to the Embedded ...
The Butler is still young – applying modern Jenkins features to the Embedded ...The Butler is still young – applying modern Jenkins features to the Embedded ...
The Butler is still young – applying modern Jenkins features to the Embedded ...Oleg Nenashev
 
Docker and Puppet for Continuous Integration
Docker and Puppet for Continuous IntegrationDocker and Puppet for Continuous Integration
Docker and Puppet for Continuous IntegrationGiacomo Vacca
 
Tectonic Summit 2016: Kubernetes 1.5 and Beyond
Tectonic Summit 2016: Kubernetes 1.5 and BeyondTectonic Summit 2016: Kubernetes 1.5 and Beyond
Tectonic Summit 2016: Kubernetes 1.5 and BeyondCoreOS
 
Continuous Delivery in Enterprise Environments using Docker, Ansible and Jenkins
Continuous Delivery in Enterprise Environments using Docker, Ansible and JenkinsContinuous Delivery in Enterprise Environments using Docker, Ansible and Jenkins
Continuous Delivery in Enterprise Environments using Docker, Ansible and JenkinsMarcel Birkner
 
Chef 11 Preview/Chef for OpenStack
Chef 11 Preview/Chef for OpenStackChef 11 Preview/Chef for OpenStack
Chef 11 Preview/Chef for OpenStackMatt Ray
 
Docker and kubernetes
Docker and kubernetesDocker and kubernetes
Docker and kubernetesDongwon Kim
 
Mesos on coreOS
Mesos on coreOSMesos on coreOS
Mesos on coreOS충섭 김
 
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWSAutomated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWSBamdad Dashtban
 
A brief study on Kubernetes and its components
A brief study on Kubernetes and its componentsA brief study on Kubernetes and its components
A brief study on Kubernetes and its componentsRamit Surana
 
[OpenInfra Days Korea 2018] Day 2 - E4 - 딥다이브: immutable Kubernetes architecture
[OpenInfra Days Korea 2018] Day 2 - E4 - 딥다이브: immutable Kubernetes architecture[OpenInfra Days Korea 2018] Day 2 - E4 - 딥다이브: immutable Kubernetes architecture
[OpenInfra Days Korea 2018] Day 2 - E4 - 딥다이브: immutable Kubernetes architectureOpenStack Korea Community
 
Apache Bigtop: a crash course in deploying a Hadoop bigdata management platform
Apache Bigtop: a crash course in deploying a Hadoop bigdata management platformApache Bigtop: a crash course in deploying a Hadoop bigdata management platform
Apache Bigtop: a crash course in deploying a Hadoop bigdata management platformrhatr
 

What's hot (20)

Kubernetes Java Operator
Kubernetes Java OperatorKubernetes Java Operator
Kubernetes Java Operator
 
Musings on Mesos: Docker, Kubernetes, and Beyond.
Musings on Mesos: Docker, Kubernetes, and Beyond.Musings on Mesos: Docker, Kubernetes, and Beyond.
Musings on Mesos: Docker, Kubernetes, and Beyond.
 
System Hardening Using Ansible
System Hardening Using AnsibleSystem Hardening Using Ansible
System Hardening Using Ansible
 
제4회 한국IBM과 함께하는 난공불락 오픈소스 인프라 세미나-Ranchers
제4회 한국IBM과 함께하는 난공불락 오픈소스 인프라 세미나-Ranchers제4회 한국IBM과 함께하는 난공불락 오픈소스 인프라 세미나-Ranchers
제4회 한국IBM과 함께하는 난공불락 오픈소스 인프라 세미나-Ranchers
 
BigTop vm and docker provisioner
BigTop vm and docker provisionerBigTop vm and docker provisioner
BigTop vm and docker provisioner
 
Using Kubernetes for Continuous Integration and Continuous Delivery. Java2days
Using Kubernetes for Continuous Integration and Continuous Delivery. Java2daysUsing Kubernetes for Continuous Integration and Continuous Delivery. Java2days
Using Kubernetes for Continuous Integration and Continuous Delivery. Java2days
 
OpenStack in Enterprise
OpenStack in EnterpriseOpenStack in Enterprise
OpenStack in Enterprise
 
Kubernetes Architecture - beyond a black box - Part 2
Kubernetes Architecture - beyond a black box - Part 2Kubernetes Architecture - beyond a black box - Part 2
Kubernetes Architecture - beyond a black box - Part 2
 
The Butler is still young – applying modern Jenkins features to the Embedded ...
The Butler is still young – applying modern Jenkins features to the Embedded ...The Butler is still young – applying modern Jenkins features to the Embedded ...
The Butler is still young – applying modern Jenkins features to the Embedded ...
 
Docker and Puppet for Continuous Integration
Docker and Puppet for Continuous IntegrationDocker and Puppet for Continuous Integration
Docker and Puppet for Continuous Integration
 
Tectonic Summit 2016: Kubernetes 1.5 and Beyond
Tectonic Summit 2016: Kubernetes 1.5 and BeyondTectonic Summit 2016: Kubernetes 1.5 and Beyond
Tectonic Summit 2016: Kubernetes 1.5 and Beyond
 
Continuous Delivery in Enterprise Environments using Docker, Ansible and Jenkins
Continuous Delivery in Enterprise Environments using Docker, Ansible and JenkinsContinuous Delivery in Enterprise Environments using Docker, Ansible and Jenkins
Continuous Delivery in Enterprise Environments using Docker, Ansible and Jenkins
 
Chef 11 Preview/Chef for OpenStack
Chef 11 Preview/Chef for OpenStackChef 11 Preview/Chef for OpenStack
Chef 11 Preview/Chef for OpenStack
 
Docker and kubernetes
Docker and kubernetesDocker and kubernetes
Docker and kubernetes
 
Mesos on coreOS
Mesos on coreOSMesos on coreOS
Mesos on coreOS
 
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWSAutomated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
 
A brief study on Kubernetes and its components
A brief study on Kubernetes and its componentsA brief study on Kubernetes and its components
A brief study on Kubernetes and its components
 
Kubernetes 101 and Fun
Kubernetes 101 and FunKubernetes 101 and Fun
Kubernetes 101 and Fun
 
[OpenInfra Days Korea 2018] Day 2 - E4 - 딥다이브: immutable Kubernetes architecture
[OpenInfra Days Korea 2018] Day 2 - E4 - 딥다이브: immutable Kubernetes architecture[OpenInfra Days Korea 2018] Day 2 - E4 - 딥다이브: immutable Kubernetes architecture
[OpenInfra Days Korea 2018] Day 2 - E4 - 딥다이브: immutable Kubernetes architecture
 
Apache Bigtop: a crash course in deploying a Hadoop bigdata management platform
Apache Bigtop: a crash course in deploying a Hadoop bigdata management platformApache Bigtop: a crash course in deploying a Hadoop bigdata management platform
Apache Bigtop: a crash course in deploying a Hadoop bigdata management platform
 

Similar to Ninja, Choose Your Weapon!

OpenNebulaConf 2014 - Lightning talk: OpenNebula Puppet Module - Norman Messt...
OpenNebulaConf 2014 - Lightning talk: OpenNebula Puppet Module - Norman Messt...OpenNebulaConf 2014 - Lightning talk: OpenNebula Puppet Module - Norman Messt...
OpenNebulaConf 2014 - Lightning talk: OpenNebula Puppet Module - Norman Messt...OpenNebula Project
 
OpenNebula Conf 2014 | Lightning talk: OpenNebula Puppet Module - Norman Mess...
OpenNebula Conf 2014 | Lightning talk: OpenNebula Puppet Module - Norman Mess...OpenNebula Conf 2014 | Lightning talk: OpenNebula Puppet Module - Norman Mess...
OpenNebula Conf 2014 | Lightning talk: OpenNebula Puppet Module - Norman Mess...NETWAYS
 
A DevOps guide to Kubernetes
A DevOps guide to KubernetesA DevOps guide to Kubernetes
A DevOps guide to KubernetesPaul Czarkowski
 
Delivering Infrastructure-as-a-Service with Open Source Software
Delivering Infrastructure-as-a-Service with Open Source SoftwareDelivering Infrastructure-as-a-Service with Open Source Software
Delivering Infrastructure-as-a-Service with Open Source SoftwareMark Hinkle
 
What we talk about when we talk about DevOps
What we talk about when we talk about DevOpsWhat we talk about when we talk about DevOps
What we talk about when we talk about DevOpsRicard Clau
 
SCM Puppet: from an intro to the scaling
SCM Puppet: from an intro to the scalingSCM Puppet: from an intro to the scaling
SCM Puppet: from an intro to the scalingStanislav Osipov
 
Large-scaled Deploy Over 100 Servers in 3 Minutes
Large-scaled Deploy Over 100 Servers in 3 MinutesLarge-scaled Deploy Over 100 Servers in 3 Minutes
Large-scaled Deploy Over 100 Servers in 3 MinutesHiroshi SHIBATA
 
Experiences with Microservices at Tuenti
Experiences with Microservices at TuentiExperiences with Microservices at Tuenti
Experiences with Microservices at TuentiAndrés Viedma Peláez
 
Get you Java application ready for Kubernetes !
Get you Java application ready for Kubernetes !Get you Java application ready for Kubernetes !
Get you Java application ready for Kubernetes !Anthony Dahanne
 
Puppet devops wdec
Puppet devops wdecPuppet devops wdec
Puppet devops wdecWojciech Dec
 
Crash Course in Open Source Cloud Computing
Crash Course in Open Source Cloud Computing Crash Course in Open Source Cloud Computing
Crash Course in Open Source Cloud Computing Mark Hinkle
 
Docker SF Meetup January 2016
Docker SF Meetup January 2016Docker SF Meetup January 2016
Docker SF Meetup January 2016Patrick Chanezon
 
Oscon London 2016 - Docker from Development to Production
Oscon London 2016 - Docker from Development to ProductionOscon London 2016 - Docker from Development to Production
Oscon London 2016 - Docker from Development to ProductionPatrick Chanezon
 
Leonid Vasilyev "Building, deploying and running production code at Dropbox"
Leonid Vasilyev  "Building, deploying and running production code at Dropbox"Leonid Vasilyev  "Building, deploying and running production code at Dropbox"
Leonid Vasilyev "Building, deploying and running production code at Dropbox"IT Event
 
What's New in Docker - February 2017
What's New in Docker - February 2017What's New in Docker - February 2017
What's New in Docker - February 2017Patrick Chanezon
 
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!
 
Node Summit 2016: Building your DevOps for Node.js
Node Summit 2016: Building your DevOps for Node.jsNode Summit 2016: Building your DevOps for Node.js
Node Summit 2016: Building your DevOps for Node.jsChetan Desai
 

Similar to Ninja, Choose Your Weapon! (20)

PyData Boston 2013
PyData Boston 2013PyData Boston 2013
PyData Boston 2013
 
OpenNebulaConf 2014 - Lightning talk: OpenNebula Puppet Module - Norman Messt...
OpenNebulaConf 2014 - Lightning talk: OpenNebula Puppet Module - Norman Messt...OpenNebulaConf 2014 - Lightning talk: OpenNebula Puppet Module - Norman Messt...
OpenNebulaConf 2014 - Lightning talk: OpenNebula Puppet Module - Norman Messt...
 
OpenNebula Conf 2014 | Lightning talk: OpenNebula Puppet Module - Norman Mess...
OpenNebula Conf 2014 | Lightning talk: OpenNebula Puppet Module - Norman Mess...OpenNebula Conf 2014 | Lightning talk: OpenNebula Puppet Module - Norman Mess...
OpenNebula Conf 2014 | Lightning talk: OpenNebula Puppet Module - Norman Mess...
 
A DevOps guide to Kubernetes
A DevOps guide to KubernetesA DevOps guide to Kubernetes
A DevOps guide to Kubernetes
 
Delivering Infrastructure-as-a-Service with Open Source Software
Delivering Infrastructure-as-a-Service with Open Source SoftwareDelivering Infrastructure-as-a-Service with Open Source Software
Delivering Infrastructure-as-a-Service with Open Source Software
 
What we talk about when we talk about DevOps
What we talk about when we talk about DevOpsWhat we talk about when we talk about DevOps
What we talk about when we talk about DevOps
 
SCM Puppet: from an intro to the scaling
SCM Puppet: from an intro to the scalingSCM Puppet: from an intro to the scaling
SCM Puppet: from an intro to the scaling
 
Large-scaled Deploy Over 100 Servers in 3 Minutes
Large-scaled Deploy Over 100 Servers in 3 MinutesLarge-scaled Deploy Over 100 Servers in 3 Minutes
Large-scaled Deploy Over 100 Servers in 3 Minutes
 
Experiences with Microservices at Tuenti
Experiences with Microservices at TuentiExperiences with Microservices at Tuenti
Experiences with Microservices at Tuenti
 
Get you Java application ready for Kubernetes !
Get you Java application ready for Kubernetes !Get you Java application ready for Kubernetes !
Get you Java application ready for Kubernetes !
 
Puppet devops wdec
Puppet devops wdecPuppet devops wdec
Puppet devops wdec
 
DevOps demystified
DevOps demystifiedDevOps demystified
DevOps demystified
 
Nodeconf npm 2011
Nodeconf npm 2011Nodeconf npm 2011
Nodeconf npm 2011
 
Crash Course in Open Source Cloud Computing
Crash Course in Open Source Cloud Computing Crash Course in Open Source Cloud Computing
Crash Course in Open Source Cloud Computing
 
Docker SF Meetup January 2016
Docker SF Meetup January 2016Docker SF Meetup January 2016
Docker SF Meetup January 2016
 
Oscon London 2016 - Docker from Development to Production
Oscon London 2016 - Docker from Development to ProductionOscon London 2016 - Docker from Development to Production
Oscon London 2016 - Docker from Development to Production
 
Leonid Vasilyev "Building, deploying and running production code at Dropbox"
Leonid Vasilyev  "Building, deploying and running production code at Dropbox"Leonid Vasilyev  "Building, deploying and running production code at Dropbox"
Leonid Vasilyev "Building, deploying and running production code at Dropbox"
 
What's New in Docker - February 2017
What's New in Docker - February 2017What's New in Docker - February 2017
What's New in Docker - February 2017
 
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...
 
Node Summit 2016: Building your DevOps for Node.js
Node Summit 2016: Building your DevOps for Node.jsNode Summit 2016: Building your DevOps for Node.js
Node Summit 2016: Building your DevOps for Node.js
 

More from Anton Weiss

The New Science of Software Delivery
The New Science of Software DeliveryThe New Science of Software Delivery
The New Science of Software DeliveryAnton Weiss
 
Escaping the Jungle - Migrating to Cloud Native CI/CD
Escaping the Jungle - Migrating to Cloud Native CI/CDEscaping the Jungle - Migrating to Cloud Native CI/CD
Escaping the Jungle - Migrating to Cloud Native CI/CDAnton Weiss
 
Envoy, Wasm and Rust - the Mighty Trio
Envoy, Wasm and Rust -  the Mighty TrioEnvoy, Wasm and Rust -  the Mighty Trio
Envoy, Wasm and Rust - the Mighty TrioAnton Weiss
 
Dumb Services in Smart Nets - istio
Dumb Services in Smart Nets -  istioDumb Services in Smart Nets -  istio
Dumb Services in Smart Nets - istioAnton Weiss
 
WTF Do We Need a Service Mesh?
WTF Do We Need a Service Mesh? WTF Do We Need a Service Mesh?
WTF Do We Need a Service Mesh? Anton Weiss
 
Many Changes Little Fun
Many Changes Little Fun Many Changes Little Fun
Many Changes Little Fun Anton Weiss
 
Optimizing the Delivery Pipeline for Flow
Optimizing the Delivery Pipeline for FlowOptimizing the Delivery Pipeline for Flow
Optimizing the Delivery Pipeline for FlowAnton Weiss
 
A Deeper Look at Cargo
A Deeper Look at CargoA Deeper Look at Cargo
A Deeper Look at CargoAnton Weiss
 
Heralding change - How to Get Engineers On Board the DevOps Ship
Heralding change - How to Get Engineers On Board the DevOps ShipHeralding change - How to Get Engineers On Board the DevOps Ship
Heralding change - How to Get Engineers On Board the DevOps ShipAnton Weiss
 
When Your Pipelines Are a Mess
When Your Pipelines Are a MessWhen Your Pipelines Are a Mess
When Your Pipelines Are a MessAnton Weiss
 
Wiring up microservices with Istio
Wiring up microservices with IstioWiring up microservices with Istio
Wiring up microservices with IstioAnton Weiss
 
ChatOps - the Road to a Collaborative CLI
ChatOps  - the Road to a Collaborative CLI ChatOps  - the Road to a Collaborative CLI
ChatOps - the Road to a Collaborative CLI Anton Weiss
 
The Road to a Hybrid, Transparent Pipeline
The Road to a Hybrid, Transparent PipelineThe Road to a Hybrid, Transparent Pipeline
The Road to a Hybrid, Transparent PipelineAnton Weiss
 
Jenkins and the Future of Software Delivery
Jenkins and the Future of Software DeliveryJenkins and the Future of Software Delivery
Jenkins and the Future of Software DeliveryAnton Weiss
 
How Openstack is Built
How Openstack is BuiltHow Openstack is Built
How Openstack is BuiltAnton Weiss
 
Continuous Delivery is Not a Commodity
Continuous Delivery is Not a CommodityContinuous Delivery is Not a Commodity
Continuous Delivery is Not a CommodityAnton Weiss
 
Grooving with Jenkins
Grooving with JenkinsGrooving with Jenkins
Grooving with JenkinsAnton Weiss
 
DevOps - Transparency & Self Service
DevOps - Transparency & Self ServiceDevOps - Transparency & Self Service
DevOps - Transparency & Self ServiceAnton Weiss
 
Vagrant in 15 minutes
Vagrant in 15 minutesVagrant in 15 minutes
Vagrant in 15 minutesAnton Weiss
 
Continuous Delivery for Mobile R&D
Continuous Delivery for Mobile R&DContinuous Delivery for Mobile R&D
Continuous Delivery for Mobile R&DAnton Weiss
 

More from Anton Weiss (20)

The New Science of Software Delivery
The New Science of Software DeliveryThe New Science of Software Delivery
The New Science of Software Delivery
 
Escaping the Jungle - Migrating to Cloud Native CI/CD
Escaping the Jungle - Migrating to Cloud Native CI/CDEscaping the Jungle - Migrating to Cloud Native CI/CD
Escaping the Jungle - Migrating to Cloud Native CI/CD
 
Envoy, Wasm and Rust - the Mighty Trio
Envoy, Wasm and Rust -  the Mighty TrioEnvoy, Wasm and Rust -  the Mighty Trio
Envoy, Wasm and Rust - the Mighty Trio
 
Dumb Services in Smart Nets - istio
Dumb Services in Smart Nets -  istioDumb Services in Smart Nets -  istio
Dumb Services in Smart Nets - istio
 
WTF Do We Need a Service Mesh?
WTF Do We Need a Service Mesh? WTF Do We Need a Service Mesh?
WTF Do We Need a Service Mesh?
 
Many Changes Little Fun
Many Changes Little Fun Many Changes Little Fun
Many Changes Little Fun
 
Optimizing the Delivery Pipeline for Flow
Optimizing the Delivery Pipeline for FlowOptimizing the Delivery Pipeline for Flow
Optimizing the Delivery Pipeline for Flow
 
A Deeper Look at Cargo
A Deeper Look at CargoA Deeper Look at Cargo
A Deeper Look at Cargo
 
Heralding change - How to Get Engineers On Board the DevOps Ship
Heralding change - How to Get Engineers On Board the DevOps ShipHeralding change - How to Get Engineers On Board the DevOps Ship
Heralding change - How to Get Engineers On Board the DevOps Ship
 
When Your Pipelines Are a Mess
When Your Pipelines Are a MessWhen Your Pipelines Are a Mess
When Your Pipelines Are a Mess
 
Wiring up microservices with Istio
Wiring up microservices with IstioWiring up microservices with Istio
Wiring up microservices with Istio
 
ChatOps - the Road to a Collaborative CLI
ChatOps  - the Road to a Collaborative CLI ChatOps  - the Road to a Collaborative CLI
ChatOps - the Road to a Collaborative CLI
 
The Road to a Hybrid, Transparent Pipeline
The Road to a Hybrid, Transparent PipelineThe Road to a Hybrid, Transparent Pipeline
The Road to a Hybrid, Transparent Pipeline
 
Jenkins and the Future of Software Delivery
Jenkins and the Future of Software DeliveryJenkins and the Future of Software Delivery
Jenkins and the Future of Software Delivery
 
How Openstack is Built
How Openstack is BuiltHow Openstack is Built
How Openstack is Built
 
Continuous Delivery is Not a Commodity
Continuous Delivery is Not a CommodityContinuous Delivery is Not a Commodity
Continuous Delivery is Not a Commodity
 
Grooving with Jenkins
Grooving with JenkinsGrooving with Jenkins
Grooving with Jenkins
 
DevOps - Transparency & Self Service
DevOps - Transparency & Self ServiceDevOps - Transparency & Self Service
DevOps - Transparency & Self Service
 
Vagrant in 15 minutes
Vagrant in 15 minutesVagrant in 15 minutes
Vagrant in 15 minutes
 
Continuous Delivery for Mobile R&D
Continuous Delivery for Mobile R&DContinuous Delivery for Mobile R&D
Continuous Delivery for Mobile R&D
 

Recently uploaded

Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 

Recently uploaded (20)

Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 

Ninja, Choose Your Weapon!

  • 1. Ninja, choose your weapon! Puppet vs. Chef vs. Ansible vs. Salt
  • 2. About me Ant(on) Weiss DevOps Evangelist&Enabler, CI/CD/ALM Expert ant.weiss@gmail.com - twitter: @antweiss http://otomato.wordpress.com
  • 3. DevOps isn’t about Tools But they definitely help!
  • 4. DevOps is all about Tools "We shape our tools. And then our tools shape us.” Marshall McLuhan
  • 5. Weapons of Mass Configuration • Manage configuration of thousands of servers • Automation and orchestration • Infrastructure as Code
  • 6. Tools vs. no Tools vs.
  • 7. The Good Tool • One we are comfortable with • Flexible • Extendable • Scalable • Community-supported • Integrate-able
  • 8. Puppet Since: 2005 Written in: Ruby Developed by: Puppetlabs Configuration: Puppet-specific declarative language (Ruby-based) or pure Ruby. Model-driven. Manages: > 10 mln nodes (acc. to Puppetlabs)
  • 9. Puppet Puppet master agent agent agent XMLRPC over HTTPS report report report
  • 10. Puppet Concepts Resources: files, services, packages, users… Manifests: Puppet programs Classes: collections of resource definitions Modules: classes + accompanying data Puppetforge.com: 3326 community modules
  • 11. Puppet Features • Configuration Management • Automatic Discovery (MCollective) • Orchestration (MCollective) • Provisioning (w/Foreman or Razor)
  • 12. Puppet Code: class ntp { case $operatingsystem { centos, redhat: { $service_name = 'ntpd' $conf_file = 'ntp.conf.el' } debian, ubuntu: { $service_name = 'ntp' $conf_file = 'ntp.conf.debian' } } package { 'ntp': ensure => installed, } file { 'ntp.conf': path => '/etc/ntp.conf', ensure => file, require => Package['ntp'], source => "/root/examples/answers/${conf_file}" } service { 'ntp': name => $service_name, ensure => running, enable => true, subscribe => File['ntp.conf'], } }
  • 13. Puppet Web UI Options • Puppet Enterprise (commercial for > 10 nodes) • Foreman • PuppetBoard ( reporting only )
  • 14. Puppet in a Nutshell • The Most Mature (of the four reviewed) • ‘Pull’ mode of operation, but push also supported • Enterprise Features • Largest Ecosystem (Foreman, PuppetBoard) • A Language of its Own • Less flexible • Easy to start with, gets complicated further along.
  • 15. Chef Since: 2009 Written in: Ruby+Erlang Developed by: Chef ( formerly Opscode ) Configuration: pure Ruby DSL - procedural
  • 16. Chef
  • 17. Chef Concepts Resources: files, services, packages, users… Recipes: Chef programs Cookbooks: recipes + accompanying data Databags: global variables supermarket.chef.io: 2061 cookbooks
  • 18. Chef Code case platform when "ubuntu","debian" default[:ntp][:service] = "ntp" when "redhat","centos","fedora","scientific" default[:ntp][:service] = "ntpd" end package "ntp" do action [:install] end template "/etc/ntp.conf" do source "ntp.conf.erb" variables( :ntp_server => "time.nist.gov" ) notifies :restart, "service[ntpd]" end service "ntpd" do action [:enable,:start] end
  • 19. Chef Web UI Options • OpenSource WebUI - deprecated • Enterprise Chef - commercial, basic
  • 20. Chef in a Nutshell • Flexible, powerful • Enterprise Features (HA, Analytics) • Pure Ruby DSL • Steep learning curve • Push feature still in beta
  • 21. Ansible Since: 2012 Written in: Python Developed by: Ansible Works inc. Configuration: yaml+jinja Motto: Simple IT Automation
  • 23. Ansible Concepts • Inventory: a list of hosts and host groups • Ad-hoc commands: ansible all -a "/bin/echo hello" • Playbooks: configuration scenarios • Modules: control system resources and execute commands. Can be written in any language! • Roles: playbook and accompanying data • ansible-galaxy.com: 3124 roles
  • 24. Ansible Code hosts: all #ntp service name defined in ntp.yml vars_files: ntp.yml tasks: - name: Install ntp package yum: name=ntp state=latest sudo: yes - name: Starting ntp service service: name={{ ntp_service_name }} state=started sudo: yes
  • 25. Ansible Web UI • Ansible Tower (commercial)
  • 26. Ansible in a Nutshell • Simple • Lightweight • Agentless (SSH) • Windows support still immature. • yaml DSL can be tricky to use • Not the best performance. (Slow)
  • 27. Salt Since: 2011 Written in: Python Developed by: SaltStack inc. Configuration: yaml+jinja Motto: Speed, scalability and flexibility
  • 29. Salt Concepts • Commands: salt '*' disk.usage • Modules: control system resources and execute commands. Written in Python or Cython. • States: configuration scenarios • Grains: facts about the managed nodes • Pillars: globally accessed data • Community State Trees & Modules: saltstarters.org
  • 30. Salt Code # Include :download:`map file <map.jinja>` of OS-specific package names and # file paths. Values can be overridden using Pillar. {% from "ntp/map.jinja" import ntp with context %} ntp: pkg.installed: - name: {{ ntp.client }} {% set ntp_conf_src = salt['pillar.get']('ntp:ntp_conf') -%} {% if ntp_conf_src %} ntp_conf: file.managed: - name: {{ ntp.ntp_conf }} - template: jinja - source: {{ ntp_conf_src }} - require: - pkg: ntp {% endif %}
  • 31. Salt Web UI • Halite: free, in pre-alpha
  • 32. Salt in a Nutshell • Fast • Super-scalable • Easily Extensible (renderers, returners, etc) • Python API • Push mode by default • In Active Development • Documentation Needs Improvement
  • 33. Summary • Puppet: features, WebUI, maturity, ecosystem • better for devs • Chef: flexibility, Ruby • better for devs • Ansible: simplicity, agentless, yaml, Python • better for ops • Salt: scalability, flexibility, robustness, Python • better for ops
  • 34. Stop breaking your teeth! vs.