SlideShare a Scribd company logo
Getting to Push Button Deploys




          Moovweb
       January 19, 2012
Things Everyone Wants
Reality




… is it done yet???   … is it done yet??? … is it done yet???
Gotta Have It!


                       PROS


    Increase velocity of change/responsiveness

    Get Operations out of the loop

    Buzzword compliance – aka Shiny!!!
PROS



Increase velocity of change/responsiveness
PROS – Ops Gets Out of Loop





    Less work for Operations

    Developers feel more in control
Gotta Have It!


                       CONS


    Increase velocity of change

    Shared responsibility

    Not always easy
Make It So...
Components
Components
Components
Components
Components - MoovStack
CI


    Jenkins ( maiden name is Hudson )

    Checks out a deploy branch from git

    Runs a few sanity checks

    Packages software

    Uploads to software repo

    Tags build in git
Jenkins




http://jenkins-ci.org/
Jenkins
Jenkins
Rake
Packaging


    But it's sooooo hard




save yourself first.....
Using FPM




https://github.com/jordansissel/fpm
Building a Gem
Right Tool Packages



    Something that does not change often

    Don't need to roll back quickly

    Don't need more than 1 version at a time

    You cache external repos or limit to just yours
Right Tool Gems



    Fast roll back – gem cache

    Easy setup of gem server

    Need more than 1 version at a time

    Bundler for dependencies

    Bundle exec for peace of mind
Configuration Management


    Puppet everything from bare metal/base image

    Seperate data from manifests with an ENC

    Max troubleshooting time is 20 minutes

    Amazon free ”chaos monkey” service
Puppet – Start with a sane base
ENC – Use Groups!




http://docs.puppetlabs.com/guides/installing_dashboard.html
ENC – Node Entries Inherit
ENC – Scripting Additions
ENC - Output
Manifests Contain ENC Variables
Templates Contain ENC Variables
Puppet - Tips


    Execs hurt – try to avoid them

    Recursive directories – use vcsrepo instead

    Write your own types – just restart in between

    Run mongrel or passenger

    Use behind a load balancer for fun

    Use reporting, but take the DB off of your
    master

    Write your own facts and save lots of time
Puppet - Scaling
Mcollective – Do It NOW!!


    Orchestration framework

    Crazy Parallel

    Write more ruby code...

    Clients and Agents
Mcollective – Crazy Parallel



6380 nrpe checks across 370 hosts in 3.8 seconds
Use Facts and Classes to Filter
Mcollective – Custom Agent
Mcollective – Custom Client
Mcollective - Tips


    Remeber you have a machine gun pointed at
    your foot

    Wrap command in IO.popen and log everything

    Log to syslog

    Use ApacheMQ

    For EC2 tune your keep alives (registerinterval)

    Remember you have a machine gun pointed at
    your foot
Mcollective - Scaling
Sinatra


    Web app in 5 minutes

    Much more minimal than rails

    Written in Ruby so I can interface with
    Mcollective easily




             http://www.sinatrarb.com/
Sinatra – Addons


    sinatra-respond_to - useful as API

    Pony – send email from Sinatra

    Twitter Bootstrap – make things pretty
Public Example




https://github.com/maguec/mco_dashboard_example
Public Example
Really Simple
Sinatra - Tips


    Run a few behind Nginx

    Use helpers whenever possible

    Log every push

    Use it to integrate all your data
Actual Push Procedure
Dashboard Functionality

    Push software

    Audit software

    Real-time monitoring check

    Performance data integration

    Log data integration

    Troubleshooting tools for developers

    Utilities for non-technical staff

    Open trouble tickets

    Cost information (in progress)

    Userful links to other data sources
Oppy – an example
Oppy – an example
Oppy – an example
Oppy – an example
Oppy – an example
Oppy – an example
Thanks



    Michael Catlin (organizer)

    Tarun Desikan (giving me free reign/enough rope)

    R.I. Pienaar ( Mcollective author and helpful guy)

    Andrew Farmer ( for helping to get this going )
Links


    http://blog.moovweb.com/

    http://www.devco.net/

    http://www.puppetlabs.com/

    http://blog.mague.com/

    http://www.sinatrarb.com/

    http://jenkins-ci.org/


IRC #puppet,#mcollective,#devops
Author

Chris Mague
christianmague@gmail.com
IRC: bosszaru usually on #gaijin
Twitter: @maguec

More Related Content

ODP
Automating Monitoring with Puppet
PDF
Stop using Nagios (so it can die peacefully)
PDF
De-centralise and Conquer: Masterless Puppet in a Dynamic Environment
PDF
Improving Operations Efficiency with Puppet
PDF
Making Spinnaker Go @ Stitch Fix
PDF
Masterless Puppet Using AWS S3 Buckets and IAM Roles
PDF
Masterless puppet
PDF
Ansible Case Studies
Automating Monitoring with Puppet
Stop using Nagios (so it can die peacefully)
De-centralise and Conquer: Masterless Puppet in a Dynamic Environment
Improving Operations Efficiency with Puppet
Making Spinnaker Go @ Stitch Fix
Masterless Puppet Using AWS S3 Buckets and IAM Roles
Masterless puppet
Ansible Case Studies

What's hot (20)

PDF
Puppet Camp Paris 2015: Continuous Integration of Puppet Code (Intermediate)
PDF
Puppet Camp Portland: Nagios Management With Puppet (Beginner)
PDF
Continuously-Integrated Puppet in a Dynamic Environment
PDF
Puppet Camp Berlin 2015: Andrea Giardini | Configuration Management @ CERN: G...
PDF
OMD and Check_mk
PDF
Why favour Icinga over Nagios @ FrOSCon 2015
PDF
Puppetconf 2015 - Puppet Reporting with Elasticsearch Logstash and Kibana
PDF
Ansible Introduction
PDF
Getting started with puppet and vagrant (1)
PDF
Puppet Camp LA 2015: Server Management with Puppet on AWS for a fast-growing ...
PPTX
Spinnaker for Azure
PDF
Puppet in the Pipeline
PDF
Ansible introduction - XX Betabeers Galicia
PDF
Win Spinnaker with Winnaker - Open Source North Conf 2017
PDF
Introduction to ansible galaxy
PDF
Toshaan Bharvani – Icinga2 and Ansible, how to manage and migrate
PDF
Matt Bruzek - Monitoring Your Public Cloud With Nagios
PPTX
Go Faster with Ansible (PHP meetup)
PPTX
What Is Ansible? | How Ansible Works? | Ansible Tutorial For Beginners | DevO...
PDF
Oscar: Rapid Iteration with Vagrant and Puppet Enterprise - PuppetConf 2013
Puppet Camp Paris 2015: Continuous Integration of Puppet Code (Intermediate)
Puppet Camp Portland: Nagios Management With Puppet (Beginner)
Continuously-Integrated Puppet in a Dynamic Environment
Puppet Camp Berlin 2015: Andrea Giardini | Configuration Management @ CERN: G...
OMD and Check_mk
Why favour Icinga over Nagios @ FrOSCon 2015
Puppetconf 2015 - Puppet Reporting with Elasticsearch Logstash and Kibana
Ansible Introduction
Getting started with puppet and vagrant (1)
Puppet Camp LA 2015: Server Management with Puppet on AWS for a fast-growing ...
Spinnaker for Azure
Puppet in the Pipeline
Ansible introduction - XX Betabeers Galicia
Win Spinnaker with Winnaker - Open Source North Conf 2017
Introduction to ansible galaxy
Toshaan Bharvani – Icinga2 and Ansible, how to manage and migrate
Matt Bruzek - Monitoring Your Public Cloud With Nagios
Go Faster with Ansible (PHP meetup)
What Is Ansible? | How Ansible Works? | Ansible Tutorial For Beginners | DevO...
Oscar: Rapid Iteration with Vagrant and Puppet Enterprise - PuppetConf 2013
Ad

Similar to Getting to push_button_deploys (20)

PPT
Building An Automated Infrastructure
PPT
Building Automated Infrastructures
PPT
Why Startups Need Automated Infrastructures
PPT
Why Your Start Up Needs An Automated Infrastructure Presentation
PDF
Puppet for SysAdmins
PDF
Power Of Zero
PPT
Enterprise PHP (PHP London Conference 2008)
PDF
Selenium: What Is It Good For
PDF
DevOps: Building by feature with immutable infrastructure at Serv.sg
PDF
Puppet for Sys Admins
PDF
End to end testing Single Page Apps & APIs with Cucumber.js and Puppeteer (Em...
PPTX
Tales from the Dark Side: Ori Bendet Selenium Conference India 2016
PPTX
Dev Ops for systems of record - Talk at Agile Australia 2015
PPTX
Bulletproof design systems using storybook
PDF
PHP Mega Meetup, Sep, 2020, Anti patterns in php
KEY
iPhone App from concept to product
PDF
Release with confidence
PPT
Maven: Managing Software Projects for Repeatable Results
ODP
PPTX
30 days or less: New Features to Production
Building An Automated Infrastructure
Building Automated Infrastructures
Why Startups Need Automated Infrastructures
Why Your Start Up Needs An Automated Infrastructure Presentation
Puppet for SysAdmins
Power Of Zero
Enterprise PHP (PHP London Conference 2008)
Selenium: What Is It Good For
DevOps: Building by feature with immutable infrastructure at Serv.sg
Puppet for Sys Admins
End to end testing Single Page Apps & APIs with Cucumber.js and Puppeteer (Em...
Tales from the Dark Side: Ori Bendet Selenium Conference India 2016
Dev Ops for systems of record - Talk at Agile Australia 2015
Bulletproof design systems using storybook
PHP Mega Meetup, Sep, 2020, Anti patterns in php
iPhone App from concept to product
Release with confidence
Maven: Managing Software Projects for Repeatable Results
30 days or less: New Features to Production
Ad

Recently uploaded (20)

PPTX
A Presentation on Artificial Intelligence
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PPTX
Big Data Technologies - Introduction.pptx
PDF
Machine learning based COVID-19 study performance prediction
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
NewMind AI Monthly Chronicles - July 2025
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
Electronic commerce courselecture one. Pdf
A Presentation on Artificial Intelligence
Chapter 3 Spatial Domain Image Processing.pdf
Diabetes mellitus diagnosis method based random forest with bat algorithm
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Digital-Transformation-Roadmap-for-Companies.pptx
“AI and Expert System Decision Support & Business Intelligence Systems”
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Understanding_Digital_Forensics_Presentation.pptx
Big Data Technologies - Introduction.pptx
Machine learning based COVID-19 study performance prediction
CIFDAQ's Market Insight: SEC Turns Pro Crypto
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
The Rise and Fall of 3GPP – Time for a Sabbatical?
NewMind AI Monthly Chronicles - July 2025
The AUB Centre for AI in Media Proposal.docx
Unlocking AI with Model Context Protocol (MCP)
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Electronic commerce courselecture one. Pdf

Getting to push_button_deploys