SlideShare uma empresa Scribd logo
1 de 44
Baixar para ler offline
DEV TO DELIVERY WITH 
PUPPET 
SAM BASHTON, BASHTON LTD
HOW DID WE GET HERE? 
Previously: 
Devs built stuff 
Later, Ops came and built production infrastructure 
This caused many IT problems 
The solution?
OPSVELOPMENT
DEVOPS
WHAT IS DEVOPS REALLY? 
Devs doing Ops? 
Ops 'coding' infrastructure? 
Automating things? 
Word that recruiters use without understanding anything 
about it?
WHAT IS DEVOPS? 
BE EXCELLENT TO EACH OTHER
WHAT DOES THAT MEAN IN 
PRACTICE?
WHAT IS OPS? 
Working as part of a team to build a reliable environment
WHAT IS DEV? 
Working as part of a team to build a reliable environment
BEING GOOD AT DEV 
Follow 'The Twelve Factor App' - http://12factor.net/
BEING GOOD AT OPS 
Provide consistency across all environments - including 
local dev 
Provide developers the means to understand what is 
happening 
Provide as much visibility of everything to everybody
PEP20 
'Simple is better than complex' 
'Complex is better than complicated' 
http://legacy.python.org/dev/peps/pep-0020/
PROVIDING VISIBILITY 
All infrastructure work (Puppet, CloudFormation, etc) 
should be checked in to a repository available to the 
whole team (Devs + Ops) 
Make it easy to see and search logs from all environments 
Give as many people as possible access to these logs
DEVELOPMENT
WHAT AND WHY? 
Development environments need to match production as 
closely as possible 
Builds confidence that something working in dev will work 
in production
PUPPET EVERYWHERE 
Puppet should be used everywhere in the dev and 
deployment process 
Production 
Staging 
Integration environments 
Test environments 
Local dev machines
PUPPET CONFIG DOGMA 
The same Puppet manifests and modules should be 
deployable to all environments without any modification
PUPPET CONFIG DOGMA 
if statements in manifests are a 'bad smell' and should be 
avoided as much as possible
PUPPET APPLICATION 
CONFIG DOGMA 
Separate config files per environment are a 'bad smell' too 
Avoid manifests that look like below: 
file { '/etc/nginx/nginx.conf': 
source => "puppet:///localmodules/data/nginx/${hostname}.conf", 
} 
Make it easy to 'miss' replicating things between 
environments, or make mistakes
VAGRANT 
Builds virtual machines from Puppet manifests 
Makes it easy to spin up short-lived dev instances 
Quick to get working 
Avoid ops being a blocker for dev
VAGRANT + DOCKER 
Reduce dev environment spin-up time 
Docker makes it easier to create more realistic 
environments 
Docker images for drop-in use with Vagrant available: 
https://github.com/BashtonLtd/docker-vagrant-images
BETTER MATCH LIVE 
ENVIRONMENTS
ONE SET OF MANIFESTS, 
MANY ENVIRONMENTS 
Different environments need different config 
Resource locations 
Settings
DEALING WITH DIFFERING 
ENVIRONMENTS 
Hiera 
Allows separation of logic from data 
Put anything that differers by environment in a separate 
file 
Combine with custom facts
HIERA.YAML 
:hierarchy: 
- env/%{envname} 
- services/%{service} 
- common
CUSTOM FACTS IN VAGRANT 
config.vm.provision :puppet do |puppet| 
puppet.manifests_path = "puppet/manifests" 
puppet.manifest_file = "site.pp" 
puppet.module_path = ["puppet/localmodules","puppet/modules"] 
puppet.hiera_config_path = "puppet/hiera.yaml" 
puppet.facter = { 
"envname" => "vagrant", 
"service" => "web", 
} 
end
CUSTOM FACTS ON MACHINES 
Drop a file into /etc/facter/facts.d 
service=web 
envname=stage
HIERA IN ACTION 
env/vagrant.yaml: 
web::hostname: vagrantdev.local 
env/stage.yaml: 
web::hostname: stage.example.com
HIERA IN ACTION 
common.yaml: 
postfix::server::relayhost: '[mailtrap.io]:2525' 
env/live.yaml: 
postfix::server::relayhost: 'email-smtp.eu-west-1.amazonaws.com:587'
PRODUCTION
'WORKED IN DEV' 
Devs and ops need the right data to be able to debug 
If only ops have access the the data, how much can devs 
really help?
PROVIDING VISIBILITY 
Metrics and Service Health 
Logging 
Dashboards
METRICS AND SERVICE 
HEALTH 
Sensu 
Health checks 
Collection of statistics and export to Graphite
CENTRALISED LOGGING 
Variety of approaches available 
Logstash 
Graylog2
GRAYLOG2 
Simple to get up and running 
Puppet module available: 
https://forge.puppetlabs.com/graylog2/graylog2
VISIBILITY 
Dashboards show (near) realtime metrics let everyone see 
the current state of the system 
Don't just include system data - business metrics add 
context
Dev to Delivery with Puppet - PuppetConf 2014
Dev to Delivery with Puppet - PuppetConf 2014
Dev to Delivery with Puppet - PuppetConf 2014

Mais conteúdo relacionado

Mais procurados

Introduction to Docker session (at Nairuby meetup)
Introduction to Docker session (at Nairuby meetup)Introduction to Docker session (at Nairuby meetup)
Introduction to Docker session (at Nairuby meetup)Stanley Ndagi
 
Windows Azure Web Sites - Things they don’t teach kids in school - BuildStuffLT
Windows Azure Web Sites - Things they don’t teach kids in school - BuildStuffLTWindows Azure Web Sites - Things they don’t teach kids in school - BuildStuffLT
Windows Azure Web Sites - Things they don’t teach kids in school - BuildStuffLTMaarten Balliauw
 
Overcoming Command Line Allergies
Overcoming Command Line AllergiesOvercoming Command Line Allergies
Overcoming Command Line AllergiesElaine Nelson
 
Serverless and CI/CD
Serverless and CI/CDServerless and CI/CD
Serverless and CI/CDDean Bryen
 
Vagrant+Puppet = #WIN
Vagrant+Puppet = #WINVagrant+Puppet = #WIN
Vagrant+Puppet = #WINMohit Thatte
 
Local Development Made Easy: Multiple Methods for Local Development with Word...
Local Development Made Easy: Multiple Methods for Local Development with Word...Local Development Made Easy: Multiple Methods for Local Development with Word...
Local Development Made Easy: Multiple Methods for Local Development with Word...Mitch Canter
 
10 Reasons Why Cloud Foundry Rocks!
10 Reasons Why Cloud Foundry Rocks!10 Reasons Why Cloud Foundry Rocks!
10 Reasons Why Cloud Foundry Rocks!Andy Piper
 
Docker, developers take power
Docker, developers take powerDocker, developers take power
Docker, developers take powerEnalean
 

Mais procurados (9)

Introduction to Docker session (at Nairuby meetup)
Introduction to Docker session (at Nairuby meetup)Introduction to Docker session (at Nairuby meetup)
Introduction to Docker session (at Nairuby meetup)
 
Windows Azure Web Sites - Things they don’t teach kids in school - BuildStuffLT
Windows Azure Web Sites - Things they don’t teach kids in school - BuildStuffLTWindows Azure Web Sites - Things they don’t teach kids in school - BuildStuffLT
Windows Azure Web Sites - Things they don’t teach kids in school - BuildStuffLT
 
Overcoming Command Line Allergies
Overcoming Command Line AllergiesOvercoming Command Line Allergies
Overcoming Command Line Allergies
 
Serverless and CI/CD
Serverless and CI/CDServerless and CI/CD
Serverless and CI/CD
 
Vagrant+Puppet = #WIN
Vagrant+Puppet = #WINVagrant+Puppet = #WIN
Vagrant+Puppet = #WIN
 
Local Development Made Easy: Multiple Methods for Local Development with Word...
Local Development Made Easy: Multiple Methods for Local Development with Word...Local Development Made Easy: Multiple Methods for Local Development with Word...
Local Development Made Easy: Multiple Methods for Local Development with Word...
 
10 Reasons Why Cloud Foundry Rocks!
10 Reasons Why Cloud Foundry Rocks!10 Reasons Why Cloud Foundry Rocks!
10 Reasons Why Cloud Foundry Rocks!
 
Docker, developers take power
Docker, developers take powerDocker, developers take power
Docker, developers take power
 
Hudson and Drupal
Hudson and DrupalHudson and Drupal
Hudson and Drupal
 

Destaque

De-centralise and Conquer: Masterless Puppet in a Dynamic Environment
De-centralise and Conquer: Masterless Puppet in a Dynamic EnvironmentDe-centralise and Conquer: Masterless Puppet in a Dynamic Environment
De-centralise and Conquer: Masterless Puppet in a Dynamic EnvironmentPuppet
 
How to Open Source Your Puppet Configuration - PuppetConf 2014
How to Open Source Your Puppet Configuration - PuppetConf 2014How to Open Source Your Puppet Configuration - PuppetConf 2014
How to Open Source Your Puppet Configuration - PuppetConf 2014Puppet
 
Puppet Camp Boston 2014: Orchestrating Infrastructure Change Using Puppet Rak...
Puppet Camp Boston 2014: Orchestrating Infrastructure Change Using Puppet Rak...Puppet Camp Boston 2014: Orchestrating Infrastructure Change Using Puppet Rak...
Puppet Camp Boston 2014: Orchestrating Infrastructure Change Using Puppet Rak...Puppet
 
Keynote: Animating the Puppet: Creating a Culture of Puppet Adoption - Dan Sp...
Keynote: Animating the Puppet: Creating a Culture of Puppet Adoption - Dan Sp...Keynote: Animating the Puppet: Creating a Culture of Puppet Adoption - Dan Sp...
Keynote: Animating the Puppet: Creating a Culture of Puppet Adoption - Dan Sp...Puppet
 
The Puppet Debugging Kit: Building Blocks for Exploration and Problem Solving...
The Puppet Debugging Kit: Building Blocks for Exploration and Problem Solving...The Puppet Debugging Kit: Building Blocks for Exploration and Problem Solving...
The Puppet Debugging Kit: Building Blocks for Exploration and Problem Solving...Puppet
 
Absolute Beginners Guide to Puppet Through Types - PuppetConf 2014
Absolute Beginners Guide to Puppet Through Types - PuppetConf 2014Absolute Beginners Guide to Puppet Through Types - PuppetConf 2014
Absolute Beginners Guide to Puppet Through Types - PuppetConf 2014Puppet
 
Server Locality Using Razor and LLDP - PuppetConf 2014
Server Locality Using Razor and LLDP - PuppetConf 2014Server Locality Using Razor and LLDP - PuppetConf 2014
Server Locality Using Razor and LLDP - PuppetConf 2014Puppet
 
Manageable Puppet Infrastructure - PuppetConf 2014
Manageable Puppet Infrastructure - PuppetConf 2014Manageable Puppet Infrastructure - PuppetConf 2014
Manageable Puppet Infrastructure - PuppetConf 2014Puppet
 
Puppet Camp Boston 2014: Keynote
Puppet Camp Boston 2014: Keynote Puppet Camp Boston 2014: Keynote
Puppet Camp Boston 2014: Keynote Puppet
 
Puppet Camp Boston 2014: Continuous Integration for Hyper-V with Puppet (Begi...
Puppet Camp Boston 2014: Continuous Integration for Hyper-V with Puppet (Begi...Puppet Camp Boston 2014: Continuous Integration for Hyper-V with Puppet (Begi...
Puppet Camp Boston 2014: Continuous Integration for Hyper-V with Puppet (Begi...Puppet
 
DevOps Means Business - Gene Kim, IT Revolution Press & Nicole Forsgren Velas...
DevOps Means Business - Gene Kim, IT Revolution Press & Nicole Forsgren Velas...DevOps Means Business - Gene Kim, IT Revolution Press & Nicole Forsgren Velas...
DevOps Means Business - Gene Kim, IT Revolution Press & Nicole Forsgren Velas...Puppet
 
Puppet Troubleshooting
Puppet TroubleshootingPuppet Troubleshooting
Puppet TroubleshootingPuppet
 
Performance Tuning Your Puppet Infrastructure - PuppetConf 2014
Performance Tuning Your Puppet Infrastructure - PuppetConf 2014Performance Tuning Your Puppet Infrastructure - PuppetConf 2014
Performance Tuning Your Puppet Infrastructure - PuppetConf 2014Puppet
 
Plugging Chocolatey into Your Puppet Infrastructure - PuppetConf 2014
Plugging Chocolatey into Your Puppet Infrastructure - PuppetConf 2014Plugging Chocolatey into Your Puppet Infrastructure - PuppetConf 2014
Plugging Chocolatey into Your Puppet Infrastructure - PuppetConf 2014Puppet
 
Git and Code Organization for Managing Your Puppet Code - PuppetConf 2014
Git and Code Organization for Managing Your Puppet Code - PuppetConf 2014Git and Code Organization for Managing Your Puppet Code - PuppetConf 2014
Git and Code Organization for Managing Your Puppet Code - PuppetConf 2014Puppet
 
De-centralise and conquer: Masterless Puppet in a dynamic environment
De-centralise and conquer: Masterless Puppet in a dynamic environmentDe-centralise and conquer: Masterless Puppet in a dynamic environment
De-centralise and conquer: Masterless Puppet in a dynamic environmentSam Bashton
 
Automatic Configuration of Your Cloud with Puppet
Automatic Configuration of Your Cloud with PuppetAutomatic Configuration of Your Cloud with Puppet
Automatic Configuration of Your Cloud with PuppetPuppet
 
Puppet Language 4.0 - PuppetConf 2014
Puppet Language 4.0 - PuppetConf 2014Puppet Language 4.0 - PuppetConf 2014
Puppet Language 4.0 - PuppetConf 2014Puppet
 
Dev to Delivery with Puppet, Vagrant and AWS
Dev to Delivery with Puppet, Vagrant and AWSDev to Delivery with Puppet, Vagrant and AWS
Dev to Delivery with Puppet, Vagrant and AWSPuppet
 
Puppet Availability and Performance at 100K Nodes - PuppetConf 2014
Puppet Availability and Performance at 100K Nodes - PuppetConf 2014Puppet Availability and Performance at 100K Nodes - PuppetConf 2014
Puppet Availability and Performance at 100K Nodes - PuppetConf 2014Puppet
 

Destaque (20)

De-centralise and Conquer: Masterless Puppet in a Dynamic Environment
De-centralise and Conquer: Masterless Puppet in a Dynamic EnvironmentDe-centralise and Conquer: Masterless Puppet in a Dynamic Environment
De-centralise and Conquer: Masterless Puppet in a Dynamic Environment
 
How to Open Source Your Puppet Configuration - PuppetConf 2014
How to Open Source Your Puppet Configuration - PuppetConf 2014How to Open Source Your Puppet Configuration - PuppetConf 2014
How to Open Source Your Puppet Configuration - PuppetConf 2014
 
Puppet Camp Boston 2014: Orchestrating Infrastructure Change Using Puppet Rak...
Puppet Camp Boston 2014: Orchestrating Infrastructure Change Using Puppet Rak...Puppet Camp Boston 2014: Orchestrating Infrastructure Change Using Puppet Rak...
Puppet Camp Boston 2014: Orchestrating Infrastructure Change Using Puppet Rak...
 
Keynote: Animating the Puppet: Creating a Culture of Puppet Adoption - Dan Sp...
Keynote: Animating the Puppet: Creating a Culture of Puppet Adoption - Dan Sp...Keynote: Animating the Puppet: Creating a Culture of Puppet Adoption - Dan Sp...
Keynote: Animating the Puppet: Creating a Culture of Puppet Adoption - Dan Sp...
 
The Puppet Debugging Kit: Building Blocks for Exploration and Problem Solving...
The Puppet Debugging Kit: Building Blocks for Exploration and Problem Solving...The Puppet Debugging Kit: Building Blocks for Exploration and Problem Solving...
The Puppet Debugging Kit: Building Blocks for Exploration and Problem Solving...
 
Absolute Beginners Guide to Puppet Through Types - PuppetConf 2014
Absolute Beginners Guide to Puppet Through Types - PuppetConf 2014Absolute Beginners Guide to Puppet Through Types - PuppetConf 2014
Absolute Beginners Guide to Puppet Through Types - PuppetConf 2014
 
Server Locality Using Razor and LLDP - PuppetConf 2014
Server Locality Using Razor and LLDP - PuppetConf 2014Server Locality Using Razor and LLDP - PuppetConf 2014
Server Locality Using Razor and LLDP - PuppetConf 2014
 
Manageable Puppet Infrastructure - PuppetConf 2014
Manageable Puppet Infrastructure - PuppetConf 2014Manageable Puppet Infrastructure - PuppetConf 2014
Manageable Puppet Infrastructure - PuppetConf 2014
 
Puppet Camp Boston 2014: Keynote
Puppet Camp Boston 2014: Keynote Puppet Camp Boston 2014: Keynote
Puppet Camp Boston 2014: Keynote
 
Puppet Camp Boston 2014: Continuous Integration for Hyper-V with Puppet (Begi...
Puppet Camp Boston 2014: Continuous Integration for Hyper-V with Puppet (Begi...Puppet Camp Boston 2014: Continuous Integration for Hyper-V with Puppet (Begi...
Puppet Camp Boston 2014: Continuous Integration for Hyper-V with Puppet (Begi...
 
DevOps Means Business - Gene Kim, IT Revolution Press & Nicole Forsgren Velas...
DevOps Means Business - Gene Kim, IT Revolution Press & Nicole Forsgren Velas...DevOps Means Business - Gene Kim, IT Revolution Press & Nicole Forsgren Velas...
DevOps Means Business - Gene Kim, IT Revolution Press & Nicole Forsgren Velas...
 
Puppet Troubleshooting
Puppet TroubleshootingPuppet Troubleshooting
Puppet Troubleshooting
 
Performance Tuning Your Puppet Infrastructure - PuppetConf 2014
Performance Tuning Your Puppet Infrastructure - PuppetConf 2014Performance Tuning Your Puppet Infrastructure - PuppetConf 2014
Performance Tuning Your Puppet Infrastructure - PuppetConf 2014
 
Plugging Chocolatey into Your Puppet Infrastructure - PuppetConf 2014
Plugging Chocolatey into Your Puppet Infrastructure - PuppetConf 2014Plugging Chocolatey into Your Puppet Infrastructure - PuppetConf 2014
Plugging Chocolatey into Your Puppet Infrastructure - PuppetConf 2014
 
Git and Code Organization for Managing Your Puppet Code - PuppetConf 2014
Git and Code Organization for Managing Your Puppet Code - PuppetConf 2014Git and Code Organization for Managing Your Puppet Code - PuppetConf 2014
Git and Code Organization for Managing Your Puppet Code - PuppetConf 2014
 
De-centralise and conquer: Masterless Puppet in a dynamic environment
De-centralise and conquer: Masterless Puppet in a dynamic environmentDe-centralise and conquer: Masterless Puppet in a dynamic environment
De-centralise and conquer: Masterless Puppet in a dynamic environment
 
Automatic Configuration of Your Cloud with Puppet
Automatic Configuration of Your Cloud with PuppetAutomatic Configuration of Your Cloud with Puppet
Automatic Configuration of Your Cloud with Puppet
 
Puppet Language 4.0 - PuppetConf 2014
Puppet Language 4.0 - PuppetConf 2014Puppet Language 4.0 - PuppetConf 2014
Puppet Language 4.0 - PuppetConf 2014
 
Dev to Delivery with Puppet, Vagrant and AWS
Dev to Delivery with Puppet, Vagrant and AWSDev to Delivery with Puppet, Vagrant and AWS
Dev to Delivery with Puppet, Vagrant and AWS
 
Puppet Availability and Performance at 100K Nodes - PuppetConf 2014
Puppet Availability and Performance at 100K Nodes - PuppetConf 2014Puppet Availability and Performance at 100K Nodes - PuppetConf 2014
Puppet Availability and Performance at 100K Nodes - PuppetConf 2014
 

Semelhante a Dev to Delivery with Puppet - PuppetConf 2014

A Fabric/Puppet Build/Deploy System
A Fabric/Puppet Build/Deploy SystemA Fabric/Puppet Build/Deploy System
A Fabric/Puppet Build/Deploy Systemadrian_nye
 
Continuously-Integrated Puppet in a Dynamic Environment
Continuously-Integrated Puppet in a Dynamic EnvironmentContinuously-Integrated Puppet in a Dynamic Environment
Continuously-Integrated Puppet in a Dynamic EnvironmentPuppet
 
Getting started with puppet and vagrant (1)
Getting started with puppet and vagrant (1)Getting started with puppet and vagrant (1)
Getting started with puppet and vagrant (1)Puppet
 
From Dev to DevOps
From Dev to DevOpsFrom Dev to DevOps
From Dev to DevOpsAgile Spain
 
From Dev to DevOps - ApacheCON NA 2011
From Dev to DevOps - ApacheCON NA 2011From Dev to DevOps - ApacheCON NA 2011
From Dev to DevOps - ApacheCON NA 2011Carlos Sanchez
 
IzPack at LyonJUG'11
IzPack at LyonJUG'11IzPack at LyonJUG'11
IzPack at LyonJUG'11julien.ponge
 
Writing & Sharing Great Modules on the Puppet Forge
Writing & Sharing Great Modules on the Puppet ForgeWriting & Sharing Great Modules on the Puppet Forge
Writing & Sharing Great Modules on the Puppet ForgePuppet
 
Iz Pack
Iz PackIz Pack
Iz PackInria
 
From Dev to DevOps - Codemotion ES 2012
From Dev to DevOps - Codemotion ES 2012From Dev to DevOps - Codemotion ES 2012
From Dev to DevOps - Codemotion ES 2012Carlos Sanchez
 
V mware
V mwareV mware
V mwaredvmug1
 
Puppet Primer, Robbie Jerrom, Solution Architect VMware
Puppet Primer, Robbie Jerrom, Solution Architect VMwarePuppet Primer, Robbie Jerrom, Solution Architect VMware
Puppet Primer, Robbie Jerrom, Solution Architect VMwaresubtitle
 
Using Puppet - Real World Configuration Management
Using Puppet - Real World Configuration ManagementUsing Puppet - Real World Configuration Management
Using Puppet - Real World Configuration ManagementJames Turnbull
 
Writing & Sharing Great Modules - Puppet Camp Boston
Writing & Sharing Great Modules - Puppet Camp BostonWriting & Sharing Great Modules - Puppet Camp Boston
Writing & Sharing Great Modules - Puppet Camp BostonPuppet
 
Introduction to node.js By Ahmed Assaf
Introduction to node.js  By Ahmed AssafIntroduction to node.js  By Ahmed Assaf
Introduction to node.js By Ahmed AssafAhmed Assaf
 
Word press, the automated way
Word press, the automated wayWord press, the automated way
Word press, the automated wayMichaël Perrin
 
Puppet for Sys Admins
Puppet for Sys AdminsPuppet for Sys Admins
Puppet for Sys AdminsPuppet
 
Developing IT infrastructures with Puppet
Developing IT infrastructures with PuppetDeveloping IT infrastructures with Puppet
Developing IT infrastructures with PuppetAlessandro Franceschi
 
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)Fabrice Bernhard
 
Better Operations into the Cloud
Better Operations  into the CloudBetter Operations  into the Cloud
Better Operations into the CloudFabio Ferrari
 

Semelhante a Dev to Delivery with Puppet - PuppetConf 2014 (20)

A Fabric/Puppet Build/Deploy System
A Fabric/Puppet Build/Deploy SystemA Fabric/Puppet Build/Deploy System
A Fabric/Puppet Build/Deploy System
 
Continuously-Integrated Puppet in a Dynamic Environment
Continuously-Integrated Puppet in a Dynamic EnvironmentContinuously-Integrated Puppet in a Dynamic Environment
Continuously-Integrated Puppet in a Dynamic Environment
 
Getting started with puppet and vagrant (1)
Getting started with puppet and vagrant (1)Getting started with puppet and vagrant (1)
Getting started with puppet and vagrant (1)
 
From Dev to DevOps
From Dev to DevOpsFrom Dev to DevOps
From Dev to DevOps
 
From Dev to DevOps - ApacheCON NA 2011
From Dev to DevOps - ApacheCON NA 2011From Dev to DevOps - ApacheCON NA 2011
From Dev to DevOps - ApacheCON NA 2011
 
IzPack at LyonJUG'11
IzPack at LyonJUG'11IzPack at LyonJUG'11
IzPack at LyonJUG'11
 
Drupal Devministration
Drupal DevministrationDrupal Devministration
Drupal Devministration
 
Writing & Sharing Great Modules on the Puppet Forge
Writing & Sharing Great Modules on the Puppet ForgeWriting & Sharing Great Modules on the Puppet Forge
Writing & Sharing Great Modules on the Puppet Forge
 
Iz Pack
Iz PackIz Pack
Iz Pack
 
From Dev to DevOps - Codemotion ES 2012
From Dev to DevOps - Codemotion ES 2012From Dev to DevOps - Codemotion ES 2012
From Dev to DevOps - Codemotion ES 2012
 
V mware
V mwareV mware
V mware
 
Puppet Primer, Robbie Jerrom, Solution Architect VMware
Puppet Primer, Robbie Jerrom, Solution Architect VMwarePuppet Primer, Robbie Jerrom, Solution Architect VMware
Puppet Primer, Robbie Jerrom, Solution Architect VMware
 
Using Puppet - Real World Configuration Management
Using Puppet - Real World Configuration ManagementUsing Puppet - Real World Configuration Management
Using Puppet - Real World Configuration Management
 
Writing & Sharing Great Modules - Puppet Camp Boston
Writing & Sharing Great Modules - Puppet Camp BostonWriting & Sharing Great Modules - Puppet Camp Boston
Writing & Sharing Great Modules - Puppet Camp Boston
 
Introduction to node.js By Ahmed Assaf
Introduction to node.js  By Ahmed AssafIntroduction to node.js  By Ahmed Assaf
Introduction to node.js By Ahmed Assaf
 
Word press, the automated way
Word press, the automated wayWord press, the automated way
Word press, the automated way
 
Puppet for Sys Admins
Puppet for Sys AdminsPuppet for Sys Admins
Puppet for Sys Admins
 
Developing IT infrastructures with Puppet
Developing IT infrastructures with PuppetDeveloping IT infrastructures with Puppet
Developing IT infrastructures with Puppet
 
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
 
Better Operations into the Cloud
Better Operations  into the CloudBetter Operations  into the Cloud
Better Operations into the Cloud
 

Mais de Puppet

Puppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepoPuppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepoPuppet
 
Puppetcamp r10kyaml
Puppetcamp r10kyamlPuppetcamp r10kyaml
Puppetcamp r10kyamlPuppet
 
2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)Puppet
 
Puppet camp vscode
Puppet camp vscodePuppet camp vscode
Puppet camp vscodePuppet
 
Modules of the twenties
Modules of the twentiesModules of the twenties
Modules of the twentiesPuppet
 
Applying Roles and Profiles method to compliance code
Applying Roles and Profiles method to compliance codeApplying Roles and Profiles method to compliance code
Applying Roles and Profiles method to compliance codePuppet
 
KGI compliance as-code approach
KGI compliance as-code approachKGI compliance as-code approach
KGI compliance as-code approachPuppet
 
Enforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automationEnforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automationPuppet
 
Keynote: Puppet camp compliance
Keynote: Puppet camp complianceKeynote: Puppet camp compliance
Keynote: Puppet camp compliancePuppet
 
Automating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNowAutomating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNowPuppet
 
Puppet: The best way to harden Windows
Puppet: The best way to harden WindowsPuppet: The best way to harden Windows
Puppet: The best way to harden WindowsPuppet
 
Simplified Patch Management with Puppet - Oct. 2020
Simplified Patch Management with Puppet - Oct. 2020Simplified Patch Management with Puppet - Oct. 2020
Simplified Patch Management with Puppet - Oct. 2020Puppet
 
Accelerating azure adoption with puppet
Accelerating azure adoption with puppetAccelerating azure adoption with puppet
Accelerating azure adoption with puppetPuppet
 
Puppet catalog Diff; Raphael Pinson
Puppet catalog Diff; Raphael PinsonPuppet catalog Diff; Raphael Pinson
Puppet catalog Diff; Raphael PinsonPuppet
 
ServiceNow and Puppet- better together, Kevin Reeuwijk
ServiceNow and Puppet- better together, Kevin ReeuwijkServiceNow and Puppet- better together, Kevin Reeuwijk
ServiceNow and Puppet- better together, Kevin ReeuwijkPuppet
 
Take control of your dev ops dumping ground
Take control of your  dev ops dumping groundTake control of your  dev ops dumping ground
Take control of your dev ops dumping groundPuppet
 
100% Puppet Cloud Deployment of Legacy Software
100% Puppet Cloud Deployment of Legacy Software100% Puppet Cloud Deployment of Legacy Software
100% Puppet Cloud Deployment of Legacy SoftwarePuppet
 
Puppet User Group
Puppet User GroupPuppet User Group
Puppet User GroupPuppet
 
Continuous Compliance and DevSecOps
Continuous Compliance and DevSecOpsContinuous Compliance and DevSecOps
Continuous Compliance and DevSecOpsPuppet
 
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick MaludyThe Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick MaludyPuppet
 

Mais de Puppet (20)

Puppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepoPuppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepo
 
Puppetcamp r10kyaml
Puppetcamp r10kyamlPuppetcamp r10kyaml
Puppetcamp r10kyaml
 
2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)
 
Puppet camp vscode
Puppet camp vscodePuppet camp vscode
Puppet camp vscode
 
Modules of the twenties
Modules of the twentiesModules of the twenties
Modules of the twenties
 
Applying Roles and Profiles method to compliance code
Applying Roles and Profiles method to compliance codeApplying Roles and Profiles method to compliance code
Applying Roles and Profiles method to compliance code
 
KGI compliance as-code approach
KGI compliance as-code approachKGI compliance as-code approach
KGI compliance as-code approach
 
Enforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automationEnforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automation
 
Keynote: Puppet camp compliance
Keynote: Puppet camp complianceKeynote: Puppet camp compliance
Keynote: Puppet camp compliance
 
Automating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNowAutomating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNow
 
Puppet: The best way to harden Windows
Puppet: The best way to harden WindowsPuppet: The best way to harden Windows
Puppet: The best way to harden Windows
 
Simplified Patch Management with Puppet - Oct. 2020
Simplified Patch Management with Puppet - Oct. 2020Simplified Patch Management with Puppet - Oct. 2020
Simplified Patch Management with Puppet - Oct. 2020
 
Accelerating azure adoption with puppet
Accelerating azure adoption with puppetAccelerating azure adoption with puppet
Accelerating azure adoption with puppet
 
Puppet catalog Diff; Raphael Pinson
Puppet catalog Diff; Raphael PinsonPuppet catalog Diff; Raphael Pinson
Puppet catalog Diff; Raphael Pinson
 
ServiceNow and Puppet- better together, Kevin Reeuwijk
ServiceNow and Puppet- better together, Kevin ReeuwijkServiceNow and Puppet- better together, Kevin Reeuwijk
ServiceNow and Puppet- better together, Kevin Reeuwijk
 
Take control of your dev ops dumping ground
Take control of your  dev ops dumping groundTake control of your  dev ops dumping ground
Take control of your dev ops dumping ground
 
100% Puppet Cloud Deployment of Legacy Software
100% Puppet Cloud Deployment of Legacy Software100% Puppet Cloud Deployment of Legacy Software
100% Puppet Cloud Deployment of Legacy Software
 
Puppet User Group
Puppet User GroupPuppet User Group
Puppet User Group
 
Continuous Compliance and DevSecOps
Continuous Compliance and DevSecOpsContinuous Compliance and DevSecOps
Continuous Compliance and DevSecOps
 
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick MaludyThe Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
 

Último

"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 

Último (20)

E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 

Dev to Delivery with Puppet - PuppetConf 2014

  • 1. DEV TO DELIVERY WITH PUPPET SAM BASHTON, BASHTON LTD
  • 2.
  • 3.
  • 4.
  • 5. HOW DID WE GET HERE? Previously: Devs built stuff Later, Ops came and built production infrastructure This caused many IT problems The solution?
  • 8. WHAT IS DEVOPS REALLY? Devs doing Ops? Ops 'coding' infrastructure? Automating things? Word that recruiters use without understanding anything about it?
  • 9. WHAT IS DEVOPS? BE EXCELLENT TO EACH OTHER
  • 10. WHAT DOES THAT MEAN IN PRACTICE?
  • 11. WHAT IS OPS? Working as part of a team to build a reliable environment
  • 12. WHAT IS DEV? Working as part of a team to build a reliable environment
  • 13. BEING GOOD AT DEV Follow 'The Twelve Factor App' - http://12factor.net/
  • 14. BEING GOOD AT OPS Provide consistency across all environments - including local dev Provide developers the means to understand what is happening Provide as much visibility of everything to everybody
  • 15. PEP20 'Simple is better than complex' 'Complex is better than complicated' http://legacy.python.org/dev/peps/pep-0020/
  • 16. PROVIDING VISIBILITY All infrastructure work (Puppet, CloudFormation, etc) should be checked in to a repository available to the whole team (Devs + Ops) Make it easy to see and search logs from all environments Give as many people as possible access to these logs
  • 18. WHAT AND WHY? Development environments need to match production as closely as possible Builds confidence that something working in dev will work in production
  • 19. PUPPET EVERYWHERE Puppet should be used everywhere in the dev and deployment process Production Staging Integration environments Test environments Local dev machines
  • 20. PUPPET CONFIG DOGMA The same Puppet manifests and modules should be deployable to all environments without any modification
  • 21. PUPPET CONFIG DOGMA if statements in manifests are a 'bad smell' and should be avoided as much as possible
  • 22. PUPPET APPLICATION CONFIG DOGMA Separate config files per environment are a 'bad smell' too Avoid manifests that look like below: file { '/etc/nginx/nginx.conf': source => "puppet:///localmodules/data/nginx/${hostname}.conf", } Make it easy to 'miss' replicating things between environments, or make mistakes
  • 23. VAGRANT Builds virtual machines from Puppet manifests Makes it easy to spin up short-lived dev instances Quick to get working Avoid ops being a blocker for dev
  • 24. VAGRANT + DOCKER Reduce dev environment spin-up time Docker makes it easier to create more realistic environments Docker images for drop-in use with Vagrant available: https://github.com/BashtonLtd/docker-vagrant-images
  • 25. BETTER MATCH LIVE ENVIRONMENTS
  • 26. ONE SET OF MANIFESTS, MANY ENVIRONMENTS Different environments need different config Resource locations Settings
  • 27. DEALING WITH DIFFERING ENVIRONMENTS Hiera Allows separation of logic from data Put anything that differers by environment in a separate file Combine with custom facts
  • 28. HIERA.YAML :hierarchy: - env/%{envname} - services/%{service} - common
  • 29. CUSTOM FACTS IN VAGRANT config.vm.provision :puppet do |puppet| puppet.manifests_path = "puppet/manifests" puppet.manifest_file = "site.pp" puppet.module_path = ["puppet/localmodules","puppet/modules"] puppet.hiera_config_path = "puppet/hiera.yaml" puppet.facter = { "envname" => "vagrant", "service" => "web", } end
  • 30. CUSTOM FACTS ON MACHINES Drop a file into /etc/facter/facts.d service=web envname=stage
  • 31. HIERA IN ACTION env/vagrant.yaml: web::hostname: vagrantdev.local env/stage.yaml: web::hostname: stage.example.com
  • 32. HIERA IN ACTION common.yaml: postfix::server::relayhost: '[mailtrap.io]:2525' env/live.yaml: postfix::server::relayhost: 'email-smtp.eu-west-1.amazonaws.com:587'
  • 34. 'WORKED IN DEV' Devs and ops need the right data to be able to debug If only ops have access the the data, how much can devs really help?
  • 35. PROVIDING VISIBILITY Metrics and Service Health Logging Dashboards
  • 36. METRICS AND SERVICE HEALTH Sensu Health checks Collection of statistics and export to Graphite
  • 37. CENTRALISED LOGGING Variety of approaches available Logstash Graylog2
  • 38. GRAYLOG2 Simple to get up and running Puppet module available: https://forge.puppetlabs.com/graylog2/graylog2
  • 39.
  • 40.
  • 41. VISIBILITY Dashboards show (near) realtime metrics let everyone see the current state of the system Don't just include system data - business metrics add context