11 tools for your PHP devops stack

Kris Buytaert
Kris BuytaertDevops, Linux and Open Source Expert at Inuits
11 Tools for your
  devops stack
     Kris Buytaert
     @krisbuytaert
Kris Buytaert

•   I used to be a Dev,
•   Then Became an Op
•   Chief Trolling Officer and Open Source
    Consultant @inuits.eu
•   Everything is an effing DNS Problem
What's this devops thing
       anyhow ?
World , 200X-2009
 Patrick Debois, Gildas Le Nadan, Andrew Clay Shafer, Kris Buytaert, Jezz
Humble, Lindsay Holmwood, John Willis, Chris Read, Julian Simpson, Luke
                 Kanies, John Allspaw and lots of others ..

                     Gent , October 2009
                      Mountain View , June 2010

                       Hamburg , October 2010

                          Boston, March 2011

                      Mountain View, June 2011

                        Bangalore, Melbourne,

                        Goteborg , October 2011

                                  ....
            8 Events being planned for 2013.
●   Devops is a growing professional and cultural
    movement
●   We don't have all the answers yet
●   We are reaching out to different communities
●   We will point out problems we see..
●   Only the name is new




         While we are still working out the solutions
devops, a definition:
●   Adopt the new philosophy. We are in a new economic age. Western management
    must awaken to the challenge, must learn their responsibilities, and take on
    leadership for change.
●   Cease dependence on inspection to achieve quality. Eliminate the need for massive
    inspection by building quality into the product in the first place.
●   Improve constantly and forever the system of production and service, to improve
    quality and productivity, and thus constantly decrease costs.
●   Institute training on the job.
●   Institute leadership The aim of supervision should be to help people and machines
    and gadgets do a better job.
●   Drive out fear, so that everyone may work effectively for the company.
●   Break down barriers between departments. People in research, design, sales, and
    production must work as a team, in order to foresee problems of production and
    usage that may be encountered with the product or service.
●   Eliminate slogans, exhortations, and targets for the work force asking for zero defects
    and new levels of productivity. Such exhortations only create adversarial
    relationships, as the bulk of the causes of low quality and low productivity belong to
    the system and thus lie beyond the power of the work force.

              ●   Eliminate management by objective. Eliminate management by numbers
                  and numerical goals. Instead substitute with leadership.

              ●   Remove barriers that rob the hourly worker of his right to pride of
                  workmanship. The responsibility of supervisors must be changed from
                  sheer numbers to quality.

              ●  Remove barriers that rob people in management and in engineering of
                 their right to pride of workmanship.
●   Institute a vigorous program of education and self-improvement.
●   Put everybody in the company to work to accomplish the transformation. The
    transformation is everybody's job.
William Edwards
         Deming
1986, Out of the Crisis.



  http://en.wikipedia.org/wiki/W._Edwards_Deming
C(L)AMS
●   Culture
●   (Lean)
●   Automation
●   Measurement
●   Sharing
              Damon Edwards and John Willis
                                  Gene Kim
Culture,
   automation,


  Measturement,


     sharing
Devs vs Ops
11 tools for your PHP devops stack
Breaking the Silos




Devs    Ops   Getting Along
What tool?
11 tools for your PHP devops stack
Culture,




Automation,
    Measurement,


      Sharing
“Solved problems”
●   Deployment automation :
         ●   Fai , kickstart, preseed, cobbler,
●   Configuration Management
         ●   Puppet, chef, cfengine,
         ●   ....
“challenges”


•   Build & Release Management
•   Package & Repository management
•   Orchestration
Jenkins
●   Open Source Continuous Integration Server
●   A zillion plugins (400)
    •   http://jenkins-php.org/
    •   ...
●   Have developers build stable and deployable
    code
●   Test Infra code
Jenkins
Why ops like to package
●   Packages give you features
•Consistency, security, dependencies
●   Uniquely identify where files come from
•Package or cfg-mgmt
●   Source repo not always available
•Firewall / Cloud etc ..
●   Weird deployment locations , no easy access
●   Little overhead when you automate
●   CONFIG does not belong in a package
fpm
    #packagingsucks

             ●   Missing upstream

             ●   Ancient upstream

             ●   Unneeded dependencies

             ●   Broken upstream

             ●   Distro Policies

●    “Maximum RPM” ?

●    Packaging is needed

             ●   Dependencies, tooling, repositories

●    Anger driven development
fpm
fpm
fpm -t rpm -s dir -n hornetq -v 2.2.5 hornetq
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.nNkVwh
+ umask 022
+ cd /usr/local/build-rpm-hornetq-2.2.5.x86_64.rpm/BUILD
+ exit 0
Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.yUd4MV
+ umask 022
+ cd /usr/local/build-rpm-hornetq-2.2.5.x86_64.rpm/BUILD
+ cd /usr/local/build-rpm-hornetq-2.2.5.x86_64.rpm/BUILD
+ tar -zxf /usr/local/build-rpm-hornetq-2.2.5.x86_64.rpm/data.tar.gz
+ exit 0
Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.jkpqeA
+ umask 022
+ cd /usr/local/build-rpm-hornetq-2.2.5.x86_64.rpm/BUILD
+ /usr/lib/rpm/brp-compress
+ /usr/lib/rpm/brp-strip
+ /usr/lib/rpm/brp-strip-static-archive
+ /usr/lib/rpm/brp-strip-comment-note
Processing files: hornetq-2.2.5-1.x86_64
Checking for unpackaged file(s): /usr/lib/rpm/check-files /usr/local/build-rpm-hornetq-2.2.5.x86_64.rpm/BUILD
Wrote: /usr/local/build-rpm-hornetq-2.2.5.x86_64.rpm/SRPMS/hornetq-2.2.5-1.src.rpm
Wrote: /usr/local/build-rpm-hornetq-2.2.5.x86_64.rpm/RPMS/x86_64/hornetq-2.2.5-1.x86_64.rpm
Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.z2UL3B
+ umask 022
+ cd /usr/local/build-rpm-hornetq-2.2.5.x86_64.rpm/BUILD
+ rm -rf /usr/local/build-rpm-hornetq-2.2.5.x86_64.rpm/BUILD
+ exit 0
Created /usr/local/hornetq-2.2.5.x86_64.rpm
fpm in action
●   https://github.com/Inuits/build-gems
●   Fork, pull
●   Jenkins pulls , builds , pushes to repo
●   (variants for Nagios Plugins / Jenkins Plugins
    available)
The Marionette Collective
●   Distributed ssh ++
●   What version of ssh do I have installed on my
    servers ?
●   On what servers is XYZ running ?
●   Clean al my ssl certs ?
●   Restart apache on all servers with fact X
mc-service
mc-service httpd status -W /uat/

  *
[ =================================================
===========> ] 80 / 80

 bleh.poc.com                status=stopped
 xs03.ta.google.com              status=stopped
 elasticsearch02.uat.com           status=stopped
 dbs01-.poc.com                status=stopped
 dino.uat.com                status=stopped
 dsp01.uat.com                 status=stopped
 webserver01.uat.com               status=running
 dbs01-old.uat.com              status=stopped
 alexdb02-hdp.poc.com              status=stopped
 postfix.uat.com              status=stopped
 ns01.uat.com                status=stopped
 devtools03.uat.com              status=running
mc-package
mc-package -W /dev/ status jdk
 * [ ============================================================> ] 33 / 33

servicesdb01.dev.com             version = -absent
services.dev.google.com          version = jdk-1.6.0_13-fcs
drbdtest02.dev.google.com          version = -absent
services3.dev.google.com          version = jdk-1.6.0_20-fcs
um.dev.google.com               version = jdk-1.5.0_19-fcs
devtools03.uat.com              version = jdk-1.6.0_29-fcs
alexandria02.dev.google.com         version = -absent
weblink01.dev.com               version = -absent
wikitest.dev.google.com          version = jdk-1.6.0_24-fcs
payment.dev.google.com             version = jdk-1.5.0_17-fcs
tiff2pdf01.dev.com             version = -absent
devdoos.dev.com                version = jdk-1.6.0_30-fcs
wiki.dev.google.com             version = jdk-1.6.0_24-fcs
reporting01.dev.com             version = -absent
devtools01-dev.uat.com            version = jdk-1.6.0_23-fcs
devtools02.uat.com              version = jdk-1.6.0_29-fcs
drbdtest01.dev.google.com          version = -absent

---- package agent summary ----
        Nodes: 33/33
            Versions: 1 * 1.5.0_17-fcs, 1 * 1.5.0_19-fcs, 1 * 1.6.0_13-fcs, 1 * 1.6.0_20-fcs, 1 * 1.6.0_23-fcs, 2 * 1.6.0_24-fcs, 2 * 1.6.0
               Elapsed Time: 1.73 s
Culture,


     Automation,




Measurement,
       Sharing
#monitoringsucks
    Monitoring is AWESOME. Metrics are AWESOME. I love it. Here's what I don't love:

●   Having my hands tied with the model of host and service bindings.

●   Having to set up "fake" hosts just to group arbitrary metrics together

●   Having to either collect metrics twice - once for alerting and another for trending

●   Only being able to see my metrics in 5 minute intervals

●   Having to chose between shitty interface but great monitoring or shitty monitoring
    but great interface

●    Dealing with a monitoring system that thinks IT is the system of truth for my
    environment

●   Not actually having any real choices

               John Vincent (@lusis) on his blog http://lusislog.blogspot.com/2011/06/why-
                                                                      monitoring-sucks.html
A sub movement
●   #monitoringsucks trending
●   https://github.com/monitoringsucks/
●   2008 Study :Nagios + Friends
●   2011 Conclusion : Nagios/Icinga are the only
    automatable alternatives
●   Monitoring and trending at scale , new kids
    Graphite, Icinga, flapjack, etc
●   Old Cool Kids, Ganglia
11 tools for your PHP devops stack
Logstash
●   Not your average centralized logging tool
●   Elasticsearch backed




●   Shipper
●   Indexer
●   Web
Logstash

    ●   Collect from anywhere
    ●   Filter
    ●   Send anywhere




    ●   Queuing support
Logstash in Action
Kibana in Action
Puppet and Logstash
●   https://github.com/KrisBuytaert/vagrant-
    puppet-logstash
●   Includes Logstash / Kibana / Grok / ES modules
    as submodules !


●   git clone
●   git submodule init
●   git submodule update
●   vagrant up
Graphite
●   Graphing at Scale
●   Graphing at Ease
●   Any metric is a graph


●   echo "somestring $somevalue $timestamp" |
    nc <%= graphitehost %> 2003
Graphite Composer

   x
Graphite API
Friends of Graphite
●   Collection :
          ●   Statsd,
          ●   Collectd + Carbonplugin
          ●   Jmxtrans
          ●   Logster
●   Dashboards
          ●   Tattle
          ●   Gdash
          ●   ...
Gdash In action
Puppet and Graphite
●   https://github.com/KrisBuytaert/vagrant-
    graphite/
●   Includes Graphite / Gdash / Jmxtrans / Logster /
    Collectd / Statsd / Tattle and more modules as
    submodules !


●   git clone
●   git submodule init
●   git submodule update
●   vagrant up
Culture,


  Automation,


  Measurement,




Sharing
●   Open Source
●   Github
●   Talk about Experiences
●   Open Spaces
Sharing environments

●   Build identical environments
●   Share code
●   Shared ownership of content , code and
    configuration
Vagrant
●   Abstraction layer for VirtualBox
●   Integrates well with Puppet/Chef
●   Project =
         ●   Vagrantfile
         ●   Manifests / Cookbooks
●   Portable, Small , Versionable
●   Use veewee to build your boxen
Vagrantfile
Vagrant::Config.run do |config|
 # All Vagrant configuration is done here. The most common configuration
 # options are documented and commented below. For a complete reference,
 # please see the online documentation at vagrantup.com.

 config.vm.define :mongo1 do |mongo1_config|
    mongo1_config.ssh.max_tries = 100
    mongo1_config.vm.box = "MyCentOS2"
    mongo1_config.vm.network("192.168.99.101")
    mongo1_config.vm.host_name = "mongo1"
    mongo1_config.vm.provision :puppet do |mongo1_puppet|
         mongo1_puppet.pp_path = "/tmp/vagrant-puppet"
     mongo1_puppet.manifests_path = "manifests"
     mongo1_puppet.module_path = "modules"
     mongo1_puppet.manifest_file = "site.pp"
    end
  end
  config.vm.define :mongo2 do |mongo2_config|
   mongo2_config.ssh.max_tries = 100
    mongo2_config.vm.box = "MyCentOS2"
    mongo2_config.vm.network("192.168.99.102")
    mongo2_config.vm.host_name = "mongo2"
    mongo2_config.vm.provision :puppet do |mongo2_puppet|
     mongo2_puppet.pp_path = "/tmp/vagrant-puppet"
     mongo2_puppet.manifests_path = "manifests"
     mongo2_puppet.module_path = "modules"
     mongo2_puppet.manifest_file = "site.pp"
    end
  end
Vagrant Rocks
●   Vagrant init
●   Vagrant up
●   Vagrant provision
●   Vagrant down
●   Vagrant destroy
Sushi
Quiz Time :
Which tool did I forget ?
You
Links
http://puppetlabs.com/mcollective/introduction/
https://github.com/jordansissel/fpm
http://logstash.net/
https://github.com/rashidkpc/Kibana
http://graphite.wikidot.com/
https://github.com/wayfair/Graphite-Tattle
http://vagrantup.com/
https://github.com/KrisBuytaert
Contact
Kris.Buytaert@inuits.eu

Further Reading
@krisbuytaert
http://www.krisbuytaert.be/blog/
http://www.inuits.eu/




                             Inuits

                             Duboistraat 50
                             2060 Antwerpen
                             Belgium
                             891.514.231

                             +32 475 961221
1 of 54

Recommended

Scrum and Kanban Sitting In A Tree... by
Scrum and Kanban Sitting In A Tree... Scrum and Kanban Sitting In A Tree...
Scrum and Kanban Sitting In A Tree... Yuval Yeret
1.1K views41 slides
Scrum, Kanban, and DevOps Sitting in a Tree… - Big Apple Scrum Day 2018 by
Scrum, Kanban, and DevOps Sitting in a Tree… - Big Apple Scrum Day 2018Scrum, Kanban, and DevOps Sitting in a Tree… - Big Apple Scrum Day 2018
Scrum, Kanban, and DevOps Sitting in a Tree… - Big Apple Scrum Day 2018Yuval Yeret
1.4K views32 slides
Scrum.org Professional Scrum with Kanban (PSK I) Certification | Question & A... by
Scrum.org Professional Scrum with Kanban (PSK I) Certification | Question & A...Scrum.org Professional Scrum with Kanban (PSK I) Certification | Question & A...
Scrum.org Professional Scrum with Kanban (PSK I) Certification | Question & A...Meghna Arora
100 views10 slides
Implementing Scrum with Kanban by
Implementing Scrum with KanbanImplementing Scrum with Kanban
Implementing Scrum with KanbanTiffany (Wells) Scott, PSM, PSPO
153 views45 slides
Modern Professional Scrum using Flow and Kanban - Agile and Beyond Detroit 2019 by
Modern Professional Scrum using Flow and Kanban - Agile and Beyond Detroit 2019Modern Professional Scrum using Flow and Kanban - Agile and Beyond Detroit 2019
Modern Professional Scrum using Flow and Kanban - Agile and Beyond Detroit 2019Yuval Yeret
1K views23 slides
PromQL Deep Dive - The Prometheus Query Language by
PromQL Deep Dive - The Prometheus Query Language PromQL Deep Dive - The Prometheus Query Language
PromQL Deep Dive - The Prometheus Query Language Weaveworks
27.6K views43 slides

More Related Content

What's hot

Intro to Kanban by
Intro to KanbanIntro to Kanban
Intro to KanbanColleen Johnson
534 views50 slides
Kanban VS Scrum by
Kanban VS ScrumKanban VS Scrum
Kanban VS ScrumMikalai Alimenkou
20.7K views36 slides
Splunk Search Optimization by
Splunk Search OptimizationSplunk Search Optimization
Splunk Search OptimizationSplunk
7.2K views49 slides
[오픈소스컨설팅]Java Performance Tuning by
[오픈소스컨설팅]Java Performance Tuning[오픈소스컨설팅]Java Performance Tuning
[오픈소스컨설팅]Java Performance TuningJi-Woong Choi
86.7K views237 slides
OpenSCAP Overview(security scanning for docker image and container) by
OpenSCAP Overview(security scanning for docker image and container)OpenSCAP Overview(security scanning for docker image and container)
OpenSCAP Overview(security scanning for docker image and container)Jooho Lee
2.5K views29 slides
How to monitor your micro-service with Prometheus? by
How to monitor your micro-service with Prometheus?How to monitor your micro-service with Prometheus?
How to monitor your micro-service with Prometheus?Wojciech Barczyński
676 views80 slides

What's hot(20)

Splunk Search Optimization by Splunk
Splunk Search OptimizationSplunk Search Optimization
Splunk Search Optimization
Splunk7.2K views
[오픈소스컨설팅]Java Performance Tuning by Ji-Woong Choi
[오픈소스컨설팅]Java Performance Tuning[오픈소스컨설팅]Java Performance Tuning
[오픈소스컨설팅]Java Performance Tuning
Ji-Woong Choi86.7K views
OpenSCAP Overview(security scanning for docker image and container) by Jooho Lee
OpenSCAP Overview(security scanning for docker image and container)OpenSCAP Overview(security scanning for docker image and container)
OpenSCAP Overview(security scanning for docker image and container)
Jooho Lee2.5K views
[215]네이버콘텐츠통계서비스소개 김기영 by NAVER D2
[215]네이버콘텐츠통계서비스소개 김기영[215]네이버콘텐츠통계서비스소개 김기영
[215]네이버콘텐츠통계서비스소개 김기영
NAVER D27.1K views
Agile metrics for predicting the future by Mattia Battiston
Agile metrics for predicting the futureAgile metrics for predicting the future
Agile metrics for predicting the future
Mattia Battiston2.4K views
Kanban 101 - 3 - Kanban Essentials by Michael Sahota
Kanban 101 - 3 - Kanban EssentialsKanban 101 - 3 - Kanban Essentials
Kanban 101 - 3 - Kanban Essentials
Michael Sahota8K views
Basic Scrum Framework by Naresh Jain
Basic Scrum FrameworkBasic Scrum Framework
Basic Scrum Framework
Naresh Jain1.6K views
Prometheus Project Journey by Jinwoong Kim
Prometheus Project JourneyPrometheus Project Journey
Prometheus Project Journey
Jinwoong Kim628 views
High-speed Database Throughput Using Apache Arrow Flight SQL by ScyllaDB
High-speed Database Throughput Using Apache Arrow Flight SQLHigh-speed Database Throughput Using Apache Arrow Flight SQL
High-speed Database Throughput Using Apache Arrow Flight SQL
ScyllaDB1.2K views
Hive spark-s3acommitter-hbase-nfs by Yifeng Jiang
Hive spark-s3acommitter-hbase-nfsHive spark-s3acommitter-hbase-nfs
Hive spark-s3acommitter-hbase-nfs
Yifeng Jiang4.7K views
Kanban/Scrumban - taking scrum outside its comfort zone by Yuval Yeret
Kanban/Scrumban - taking scrum outside its comfort zoneKanban/Scrumban - taking scrum outside its comfort zone
Kanban/Scrumban - taking scrum outside its comfort zone
Yuval Yeret43.6K views
Alfresco node lifecyle, services and zones by Sanket Mehta
Alfresco node lifecyle, services and zonesAlfresco node lifecyle, services and zones
Alfresco node lifecyle, services and zones
Sanket Mehta2.4K views
Kanban introduction by Ahmed Hammad
Kanban introductionKanban introduction
Kanban introduction
Ahmed Hammad1.6K views
Spring boot 를 적용한 전사모니터링 시스템 backend 개발 사례 by Jemin Huh
Spring boot 를 적용한 전사모니터링 시스템 backend 개발 사례Spring boot 를 적용한 전사모니터링 시스템 backend 개발 사례
Spring boot 를 적용한 전사모니터링 시스템 backend 개발 사례
Jemin Huh17.2K views

Viewers also liked

DevOps for PHP by
DevOps for PHPDevOps for PHP
DevOps for PHPMayflower GmbH
5.3K views83 slides
DevOps für PHP (und andere) by
DevOps für PHP (und andere)DevOps für PHP (und andere)
DevOps für PHP (und andere)Mayflower GmbH
1.8K views70 slides
Puppet and Vagrant in development by
Puppet and Vagrant in developmentPuppet and Vagrant in development
Puppet and Vagrant in developmentAdam Culp
6.8K views29 slides
Building Modern and Secure PHP Applications – Codementor Office Hours with Be... by
Building Modern and Secure PHP Applications – Codementor Office Hours with Be...Building Modern and Secure PHP Applications – Codementor Office Hours with Be...
Building Modern and Secure PHP Applications – Codementor Office Hours with Be...Arc & Codementor
11.2K views85 slides
DevOps e PHP by
DevOps e PHPDevOps e PHP
DevOps e PHPElton Minetto
3.1K views43 slides
Ao infinito e além com PHP memcached e Gearman by
Ao infinito e além com PHP memcached e GearmanAo infinito e além com PHP memcached e Gearman
Ao infinito e além com PHP memcached e GearmanElton Minetto
4K views55 slides

Viewers also liked(20)

DevOps für PHP (und andere) by Mayflower GmbH
DevOps für PHP (und andere)DevOps für PHP (und andere)
DevOps für PHP (und andere)
Mayflower GmbH1.8K views
Puppet and Vagrant in development by Adam Culp
Puppet and Vagrant in developmentPuppet and Vagrant in development
Puppet and Vagrant in development
Adam Culp6.8K views
Building Modern and Secure PHP Applications – Codementor Office Hours with Be... by Arc & Codementor
Building Modern and Secure PHP Applications – Codementor Office Hours with Be...Building Modern and Secure PHP Applications – Codementor Office Hours with Be...
Building Modern and Secure PHP Applications – Codementor Office Hours with Be...
Arc & Codementor11.2K views
Ao infinito e além com PHP memcached e Gearman by Elton Minetto
Ao infinito e além com PHP memcached e GearmanAo infinito e além com PHP memcached e Gearman
Ao infinito e além com PHP memcached e Gearman
Elton Minetto4K views
Devops is not about Tooling by Kris Buytaert
Devops is not about ToolingDevops is not about Tooling
Devops is not about Tooling
Kris Buytaert1.2K views
Paris Scala User Group #43 - Spray (Magnet Pattern) + RxScala / ElasticSearch by Mourad DACHRAOUI
Paris Scala User Group #43 - Spray (Magnet Pattern) + RxScala / ElasticSearchParis Scala User Group #43 - Spray (Magnet Pattern) + RxScala / ElasticSearch
Paris Scala User Group #43 - Spray (Magnet Pattern) + RxScala / ElasticSearch
Mourad DACHRAOUI6.2K views
Vagrant와 chef로 개발서버 구축 자동화하기 by Arawn Park
Vagrant와 chef로 개발서버 구축 자동화하기Vagrant와 chef로 개발서버 구축 자동화하기
Vagrant와 chef로 개발서버 구축 자동화하기
Arawn Park26.6K views
From devOps to front end Ops, test first by Caesar Chi
From devOps to front end Ops, test firstFrom devOps to front end Ops, test first
From devOps to front end Ops, test first
Caesar Chi20.3K views
Docker로 서버 개발 편하게 하기 by Dronix
Docker로 서버 개발 편하게 하기Docker로 서버 개발 편하게 하기
Docker로 서버 개발 편하게 하기
Dronix16.3K views
When Web meet Native App by Yu-Wei Chuang
When Web meet Native AppWhen Web meet Native App
When Web meet Native App
Yu-Wei Chuang14.6K views
Ansible 實戰:top down 觀點 by William Yeh
Ansible 實戰:top down 觀點Ansible 實戰:top down 觀點
Ansible 實戰:top down 觀點
William Yeh19.6K views
不只自動化而且更敏捷的Android開發工具 gradle by sam chiu
不只自動化而且更敏捷的Android開發工具 gradle不只自動化而且更敏捷的Android開發工具 gradle
不只自動化而且更敏捷的Android開發工具 gradle
sam chiu12.2K views
Docker (Compose) 활용 - 개발 환경 구성하기 by raccoony
Docker (Compose) 활용 - 개발 환경 구성하기Docker (Compose) 활용 - 개발 환경 구성하기
Docker (Compose) 활용 - 개발 환경 구성하기
raccoony 126.7K views
DevOps叢林裡的小隊游擊戰術 (@ iThome DevOps 2015) by Chen Cheng-Wei
DevOps叢林裡的小隊游擊戰術 (@ iThome DevOps 2015)DevOps叢林裡的小隊游擊戰術 (@ iThome DevOps 2015)
DevOps叢林裡的小隊游擊戰術 (@ iThome DevOps 2015)
Chen Cheng-Wei20.2K views
[H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기 by KTH, 케이티하이텔
[H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기[H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기
[H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기
도커 무작정 따라하기: 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다! by pyrasis
도커 무작정 따라하기: 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!도커 무작정 따라하기: 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!
도커 무작정 따라하기: 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!
pyrasis274.4K views
How to deploy PHP projects with docker by Ruoshi Ling
How to deploy PHP projects with dockerHow to deploy PHP projects with docker
How to deploy PHP projects with docker
Ruoshi Ling50.3K views

Similar to 11 tools for your PHP devops stack

11 Tools for your Open Source devops stack by
11 Tools for your Open Source devops stack 11 Tools for your Open Source devops stack
11 Tools for your Open Source devops stack Kris Buytaert
13.5K views53 slides
7 Tools for your Puppetized Devops stack by
7 Tools for your Puppetized Devops stack7 Tools for your Puppetized Devops stack
7 Tools for your Puppetized Devops stackKris Buytaert
4.6K views54 slides
7 tools for your devops stack by
7 tools for your devops stack7 tools for your devops stack
7 tools for your devops stackKris Buytaert
35.9K views46 slides
Buytaert kris tools by
Buytaert kris toolsBuytaert kris tools
Buytaert kris toolskuchinskaya
526 views46 slides
7 tools for your devops stack by
7 tools for your devops stack7 tools for your devops stack
7 tools for your devops stackKris Buytaert
3.2K views49 slides
OSDC 2012 | Devops and Open Source by Kris Buytaert by
OSDC 2012 | Devops and Open Source by Kris BuytaertOSDC 2012 | Devops and Open Source by Kris Buytaert
OSDC 2012 | Devops and Open Source by Kris BuytaertNETWAYS
23 views49 slides

Similar to 11 tools for your PHP devops stack(20)

11 Tools for your Open Source devops stack by Kris Buytaert
11 Tools for your Open Source devops stack 11 Tools for your Open Source devops stack
11 Tools for your Open Source devops stack
Kris Buytaert13.5K views
7 Tools for your Puppetized Devops stack by Kris Buytaert
7 Tools for your Puppetized Devops stack7 Tools for your Puppetized Devops stack
7 Tools for your Puppetized Devops stack
Kris Buytaert4.6K views
7 tools for your devops stack by Kris Buytaert
7 tools for your devops stack7 tools for your devops stack
7 tools for your devops stack
Kris Buytaert35.9K views
Buytaert kris tools by kuchinskaya
Buytaert kris toolsBuytaert kris tools
Buytaert kris tools
kuchinskaya526 views
7 tools for your devops stack by Kris Buytaert
7 tools for your devops stack7 tools for your devops stack
7 tools for your devops stack
Kris Buytaert3.2K views
OSDC 2012 | Devops and Open Source by Kris Buytaert by NETWAYS
OSDC 2012 | Devops and Open Source by Kris BuytaertOSDC 2012 | Devops and Open Source by Kris Buytaert
OSDC 2012 | Devops and Open Source by Kris Buytaert
NETWAYS23 views
OSDC 2012 | Devops and Open Source by Kris Buyaert by NETWAYS
OSDC 2012 | Devops and Open Source by Kris BuyaertOSDC 2012 | Devops and Open Source by Kris Buyaert
OSDC 2012 | Devops and Open Source by Kris Buyaert
NETWAYS18 views
Devops, the future is here, it's just not evenly distributed yet. by Kris Buytaert
Devops, the future is here, it's just not evenly distributed yet.Devops, the future is here, it's just not evenly distributed yet.
Devops, the future is here, it's just not evenly distributed yet.
Kris Buytaert18.3K views
Deploying software at Scale by Kris Buytaert
Deploying software at ScaleDeploying software at Scale
Deploying software at Scale
Kris Buytaert2.5K views
Devops Devops Devops, at Froscon by Kris Buytaert
Devops Devops Devops, at FrosconDevops Devops Devops, at Froscon
Devops Devops Devops, at Froscon
Kris Buytaert8K views
Devops, Secops, Opsec, DevSec *ops *.* ? by Kris Buytaert
Devops, Secops, Opsec, DevSec *ops *.* ?Devops, Secops, Opsec, DevSec *ops *.* ?
Devops, Secops, Opsec, DevSec *ops *.* ?
Kris Buytaert18.5K views
Devops, the future is here it's not evenly distributed yet by Kris Buytaert
Devops, the future is here it's not evenly distributed yetDevops, the future is here it's not evenly distributed yet
Devops, the future is here it's not evenly distributed yet
Kris Buytaert2.8K views
Devops at Startup Weekend BXL by Kris Buytaert
Devops at Startup Weekend BXLDevops at Startup Weekend BXL
Devops at Startup Weekend BXL
Kris Buytaert1.3K views
Automating MySQL operations with Puppet by Kris Buytaert
Automating MySQL operations with PuppetAutomating MySQL operations with Puppet
Automating MySQL operations with Puppet
Kris Buytaert1.8K views
apidays LIVE New York - Navigating the Sea of Javascript Tools to Discover Sc... by apidays
apidays LIVE New York - Navigating the Sea of Javascript Tools to Discover Sc...apidays LIVE New York - Navigating the Sea of Javascript Tools to Discover Sc...
apidays LIVE New York - Navigating the Sea of Javascript Tools to Discover Sc...
apidays2.3K views
Drupal and Devops , the Survey Results by Kris Buytaert
Drupal and Devops , the Survey ResultsDrupal and Devops , the Survey Results
Drupal and Devops , the Survey Results
Kris Buytaert5.6K views
Hacker vs company, Cloud Cyber Security Automated with Kubernetes - Demi Ben-... by Demi Ben-Ari
Hacker vs company, Cloud Cyber Security Automated with Kubernetes - Demi Ben-...Hacker vs company, Cloud Cyber Security Automated with Kubernetes - Demi Ben-...
Hacker vs company, Cloud Cyber Security Automated with Kubernetes - Demi Ben-...
Demi Ben-Ari229 views

More from Kris Buytaert

Years of (not) learning , from devops to devoops by
Years of (not) learning , from devops to devoopsYears of (not) learning , from devops to devoops
Years of (not) learning , from devops to devoopsKris Buytaert
65 views44 slides
Observability will not fix your Broken Monitoring ,Ignite by
Observability will not fix your Broken Monitoring ,IgniteObservability will not fix your Broken Monitoring ,Ignite
Observability will not fix your Broken Monitoring ,IgniteKris Buytaert
167 views20 slides
Infrastructure as Code Patterns by
Infrastructure as Code PatternsInfrastructure as Code Patterns
Infrastructure as Code PatternsKris Buytaert
117 views53 slides
From devoops to devops 13 years of (not) learning by
From devoops to devops 13 years of (not) learningFrom devoops to devops 13 years of (not) learning
From devoops to devops 13 years of (not) learningKris Buytaert
185 views40 slides
Pipeline all the Dashboards as Code by
Pipeline all the Dashboards as CodePipeline all the Dashboards as Code
Pipeline all the Dashboards as CodeKris Buytaert
644 views20 slides
Help , My Datacenter is on fire by
Help , My Datacenter is on fireHelp , My Datacenter is on fire
Help , My Datacenter is on fireKris Buytaert
542 views38 slides

More from Kris Buytaert(20)

Years of (not) learning , from devops to devoops by Kris Buytaert
Years of (not) learning , from devops to devoopsYears of (not) learning , from devops to devoops
Years of (not) learning , from devops to devoops
Kris Buytaert65 views
Observability will not fix your Broken Monitoring ,Ignite by Kris Buytaert
Observability will not fix your Broken Monitoring ,IgniteObservability will not fix your Broken Monitoring ,Ignite
Observability will not fix your Broken Monitoring ,Ignite
Kris Buytaert167 views
Infrastructure as Code Patterns by Kris Buytaert
Infrastructure as Code PatternsInfrastructure as Code Patterns
Infrastructure as Code Patterns
Kris Buytaert117 views
From devoops to devops 13 years of (not) learning by Kris Buytaert
From devoops to devops 13 years of (not) learningFrom devoops to devops 13 years of (not) learning
From devoops to devops 13 years of (not) learning
Kris Buytaert185 views
Pipeline all the Dashboards as Code by Kris Buytaert
Pipeline all the Dashboards as CodePipeline all the Dashboards as Code
Pipeline all the Dashboards as Code
Kris Buytaert644 views
Help , My Datacenter is on fire by Kris Buytaert
Help , My Datacenter is on fireHelp , My Datacenter is on fire
Help , My Datacenter is on fire
Kris Buytaert542 views
Devops is Dead, Long live Devops by Kris Buytaert
Devops is Dead, Long live DevopsDevops is Dead, Long live Devops
Devops is Dead, Long live Devops
Kris Buytaert289 views
10 years of #devopsdays, but what have we really learned ? by Kris Buytaert
10 years of #devopsdays, but what have we really learned ? 10 years of #devopsdays, but what have we really learned ?
10 years of #devopsdays, but what have we really learned ?
Kris Buytaert594 views
Continuous Infrastructure First by Kris Buytaert
Continuous Infrastructure FirstContinuous Infrastructure First
Continuous Infrastructure First
Kris Buytaert568 views
Is there a Future for devops ? by Kris Buytaert
Is there a Future for devops   ? Is there a Future for devops   ?
Is there a Future for devops ?
Kris Buytaert478 views
10 Years of #devopsdays weirdness by Kris Buytaert
10 Years of #devopsdays weirdness10 Years of #devopsdays weirdness
10 Years of #devopsdays weirdness
Kris Buytaert400 views
ADDO 2019: Looking back at over 10 years of Devops by Kris Buytaert
ADDO 2019:    Looking back at over 10 years of DevopsADDO 2019:    Looking back at over 10 years of Devops
ADDO 2019: Looking back at over 10 years of Devops
Kris Buytaert578 views
Continuous Infrastructure First Ignite Edition by Kris Buytaert
Continuous Infrastructure First  Ignite EditionContinuous Infrastructure First  Ignite Edition
Continuous Infrastructure First Ignite Edition
Kris Buytaert476 views
Continuous Infrastructure First by Kris Buytaert
Continuous Infrastructure FirstContinuous Infrastructure First
Continuous Infrastructure First
Kris Buytaert521 views
Open Source Monitoring in 2019 by Kris Buytaert
Open Source Monitoring in 2019 Open Source Monitoring in 2019
Open Source Monitoring in 2019
Kris Buytaert1.5K views
Devops is a Security Requirement by Kris Buytaert
Devops is a Security RequirementDevops is a Security Requirement
Devops is a Security Requirement
Kris Buytaert699 views

Recently uploaded

Telenity Solutions Brief by
Telenity Solutions BriefTelenity Solutions Brief
Telenity Solutions BriefMustafa Kuğu
14 views10 slides
"Surviving highload with Node.js", Andrii Shumada by
"Surviving highload with Node.js", Andrii Shumada "Surviving highload with Node.js", Andrii Shumada
"Surviving highload with Node.js", Andrii Shumada Fwdays
58 views29 slides
NTGapps NTG LowCode Platform by
NTGapps NTG LowCode Platform NTGapps NTG LowCode Platform
NTGapps NTG LowCode Platform Mustafa Kuğu
437 views30 slides
PCCC23:日本AMD株式会社 テーマ2「AMD EPYC™ プロセッサーを用いたAIソリューション」 by
PCCC23:日本AMD株式会社 テーマ2「AMD EPYC™ プロセッサーを用いたAIソリューション」PCCC23:日本AMD株式会社 テーマ2「AMD EPYC™ プロセッサーを用いたAIソリューション」
PCCC23:日本AMD株式会社 テーマ2「AMD EPYC™ プロセッサーを用いたAIソリューション」PC Cluster Consortium
25 views12 slides
The Role of Patterns in the Era of Large Language Models by
The Role of Patterns in the Era of Large Language ModelsThe Role of Patterns in the Era of Large Language Models
The Role of Patterns in the Era of Large Language ModelsYunyao Li
91 views65 slides
PCCC23:日本AMD株式会社 テーマ1「AMD Instinct™ アクセラレーターの概要」 by
PCCC23:日本AMD株式会社 テーマ1「AMD Instinct™ アクセラレーターの概要」PCCC23:日本AMD株式会社 テーマ1「AMD Instinct™ アクセラレーターの概要」
PCCC23:日本AMD株式会社 テーマ1「AMD Instinct™ アクセラレーターの概要」PC Cluster Consortium
27 views68 slides

Recently uploaded(20)

"Surviving highload with Node.js", Andrii Shumada by Fwdays
"Surviving highload with Node.js", Andrii Shumada "Surviving highload with Node.js", Andrii Shumada
"Surviving highload with Node.js", Andrii Shumada
Fwdays58 views
NTGapps NTG LowCode Platform by Mustafa Kuğu
NTGapps NTG LowCode Platform NTGapps NTG LowCode Platform
NTGapps NTG LowCode Platform
Mustafa Kuğu437 views
PCCC23:日本AMD株式会社 テーマ2「AMD EPYC™ プロセッサーを用いたAIソリューション」 by PC Cluster Consortium
PCCC23:日本AMD株式会社 テーマ2「AMD EPYC™ プロセッサーを用いたAIソリューション」PCCC23:日本AMD株式会社 テーマ2「AMD EPYC™ プロセッサーを用いたAIソリューション」
PCCC23:日本AMD株式会社 テーマ2「AMD EPYC™ プロセッサーを用いたAIソリューション」
The Role of Patterns in the Era of Large Language Models by Yunyao Li
The Role of Patterns in the Era of Large Language ModelsThe Role of Patterns in the Era of Large Language Models
The Role of Patterns in the Era of Large Language Models
Yunyao Li91 views
PCCC23:日本AMD株式会社 テーマ1「AMD Instinct™ アクセラレーターの概要」 by PC Cluster Consortium
PCCC23:日本AMD株式会社 テーマ1「AMD Instinct™ アクセラレーターの概要」PCCC23:日本AMD株式会社 テーマ1「AMD Instinct™ アクセラレーターの概要」
PCCC23:日本AMD株式会社 テーマ1「AMD Instinct™ アクセラレーターの概要」
This talk was not generated with ChatGPT: how AI is changing science by Elena Simperl
This talk was not generated with ChatGPT: how AI is changing scienceThis talk was not generated with ChatGPT: how AI is changing science
This talk was not generated with ChatGPT: how AI is changing science
Elena Simperl32 views
Don’t Make A Human Do A Robot’s Job! : 6 Reasons Why AI Will Save Us & Not De... by Moses Kemibaro
Don’t Make A Human Do A Robot’s Job! : 6 Reasons Why AI Will Save Us & Not De...Don’t Make A Human Do A Robot’s Job! : 6 Reasons Why AI Will Save Us & Not De...
Don’t Make A Human Do A Robot’s Job! : 6 Reasons Why AI Will Save Us & Not De...
Moses Kemibaro35 views
Transcript: Redefining the book supply chain: A glimpse into the future - Tec... by BookNet Canada
Transcript: Redefining the book supply chain: A glimpse into the future - Tec...Transcript: Redefining the book supply chain: A glimpse into the future - Tec...
Transcript: Redefining the book supply chain: A glimpse into the future - Tec...
BookNet Canada41 views
The Power of Heat Decarbonisation Plans in the Built Environment by IES VE
The Power of Heat Decarbonisation Plans in the Built EnvironmentThe Power of Heat Decarbonisation Plans in the Built Environment
The Power of Heat Decarbonisation Plans in the Built Environment
IES VE84 views
AIM102-S_Cognizant_CognizantCognitive by PhilipBasford
AIM102-S_Cognizant_CognizantCognitiveAIM102-S_Cognizant_CognizantCognitive
AIM102-S_Cognizant_CognizantCognitive
PhilipBasford21 views
Optimizing Communication to Optimize Human Behavior - LCBM by Yaman Kumar
Optimizing Communication to Optimize Human Behavior - LCBMOptimizing Communication to Optimize Human Behavior - LCBM
Optimizing Communication to Optimize Human Behavior - LCBM
Yaman Kumar38 views
The Power of Generative AI in Accelerating No Code Adoption.pdf by Saeed Al Dhaheri
The Power of Generative AI in Accelerating No Code Adoption.pdfThe Power of Generative AI in Accelerating No Code Adoption.pdf
The Power of Generative AI in Accelerating No Code Adoption.pdf
Saeed Al Dhaheri39 views
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or... by ShapeBlue
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...
ShapeBlue199 views
Cocktail of Environments. How to Mix Test and Development Environments and St... by Aleksandr Tarasov
Cocktail of Environments. How to Mix Test and Development Environments and St...Cocktail of Environments. How to Mix Test and Development Environments and St...
Cocktail of Environments. How to Mix Test and Development Environments and St...
Mobile Core Solutions & Successful Cases.pdf by IPLOOK Networks
Mobile Core Solutions & Successful Cases.pdfMobile Core Solutions & Successful Cases.pdf
Mobile Core Solutions & Successful Cases.pdf
IPLOOK Networks14 views

11 tools for your PHP devops stack

  • 1. 11 Tools for your devops stack Kris Buytaert @krisbuytaert
  • 2. Kris Buytaert • I used to be a Dev, • Then Became an Op • Chief Trolling Officer and Open Source Consultant @inuits.eu • Everything is an effing DNS Problem
  • 3. What's this devops thing anyhow ?
  • 4. World , 200X-2009 Patrick Debois, Gildas Le Nadan, Andrew Clay Shafer, Kris Buytaert, Jezz Humble, Lindsay Holmwood, John Willis, Chris Read, Julian Simpson, Luke Kanies, John Allspaw and lots of others .. Gent , October 2009 Mountain View , June 2010 Hamburg , October 2010 Boston, March 2011 Mountain View, June 2011 Bangalore, Melbourne, Goteborg , October 2011 .... 8 Events being planned for 2013.
  • 5. Devops is a growing professional and cultural movement ● We don't have all the answers yet ● We are reaching out to different communities ● We will point out problems we see.. ● Only the name is new While we are still working out the solutions
  • 7. Adopt the new philosophy. We are in a new economic age. Western management must awaken to the challenge, must learn their responsibilities, and take on leadership for change. ● Cease dependence on inspection to achieve quality. Eliminate the need for massive inspection by building quality into the product in the first place. ● Improve constantly and forever the system of production and service, to improve quality and productivity, and thus constantly decrease costs. ● Institute training on the job. ● Institute leadership The aim of supervision should be to help people and machines and gadgets do a better job. ● Drive out fear, so that everyone may work effectively for the company. ● Break down barriers between departments. People in research, design, sales, and production must work as a team, in order to foresee problems of production and usage that may be encountered with the product or service. ● Eliminate slogans, exhortations, and targets for the work force asking for zero defects and new levels of productivity. Such exhortations only create adversarial relationships, as the bulk of the causes of low quality and low productivity belong to the system and thus lie beyond the power of the work force. ● Eliminate management by objective. Eliminate management by numbers and numerical goals. Instead substitute with leadership. ● Remove barriers that rob the hourly worker of his right to pride of workmanship. The responsibility of supervisors must be changed from sheer numbers to quality. ● Remove barriers that rob people in management and in engineering of their right to pride of workmanship. ● Institute a vigorous program of education and self-improvement. ● Put everybody in the company to work to accomplish the transformation. The transformation is everybody's job.
  • 8. William Edwards Deming 1986, Out of the Crisis. http://en.wikipedia.org/wiki/W._Edwards_Deming
  • 9. C(L)AMS ● Culture ● (Lean) ● Automation ● Measurement ● Sharing Damon Edwards and John Willis Gene Kim
  • 10. Culture, automation, Measturement, sharing
  • 13. Breaking the Silos Devs Ops Getting Along
  • 16. Culture, Automation, Measurement, Sharing
  • 17. “Solved problems” ● Deployment automation : ● Fai , kickstart, preseed, cobbler, ● Configuration Management ● Puppet, chef, cfengine, ● ....
  • 18. “challenges” • Build & Release Management • Package & Repository management • Orchestration
  • 19. Jenkins ● Open Source Continuous Integration Server ● A zillion plugins (400) • http://jenkins-php.org/ • ... ● Have developers build stable and deployable code ● Test Infra code
  • 21. Why ops like to package ● Packages give you features •Consistency, security, dependencies ● Uniquely identify where files come from •Package or cfg-mgmt ● Source repo not always available •Firewall / Cloud etc .. ● Weird deployment locations , no easy access ● Little overhead when you automate ● CONFIG does not belong in a package
  • 22. fpm #packagingsucks ● Missing upstream ● Ancient upstream ● Unneeded dependencies ● Broken upstream ● Distro Policies ● “Maximum RPM” ? ● Packaging is needed ● Dependencies, tooling, repositories ● Anger driven development
  • 23. fpm
  • 24. fpm fpm -t rpm -s dir -n hornetq -v 2.2.5 hornetq Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.nNkVwh + umask 022 + cd /usr/local/build-rpm-hornetq-2.2.5.x86_64.rpm/BUILD + exit 0 Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.yUd4MV + umask 022 + cd /usr/local/build-rpm-hornetq-2.2.5.x86_64.rpm/BUILD + cd /usr/local/build-rpm-hornetq-2.2.5.x86_64.rpm/BUILD + tar -zxf /usr/local/build-rpm-hornetq-2.2.5.x86_64.rpm/data.tar.gz + exit 0 Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.jkpqeA + umask 022 + cd /usr/local/build-rpm-hornetq-2.2.5.x86_64.rpm/BUILD + /usr/lib/rpm/brp-compress + /usr/lib/rpm/brp-strip + /usr/lib/rpm/brp-strip-static-archive + /usr/lib/rpm/brp-strip-comment-note Processing files: hornetq-2.2.5-1.x86_64 Checking for unpackaged file(s): /usr/lib/rpm/check-files /usr/local/build-rpm-hornetq-2.2.5.x86_64.rpm/BUILD Wrote: /usr/local/build-rpm-hornetq-2.2.5.x86_64.rpm/SRPMS/hornetq-2.2.5-1.src.rpm Wrote: /usr/local/build-rpm-hornetq-2.2.5.x86_64.rpm/RPMS/x86_64/hornetq-2.2.5-1.x86_64.rpm Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.z2UL3B + umask 022 + cd /usr/local/build-rpm-hornetq-2.2.5.x86_64.rpm/BUILD + rm -rf /usr/local/build-rpm-hornetq-2.2.5.x86_64.rpm/BUILD + exit 0 Created /usr/local/hornetq-2.2.5.x86_64.rpm
  • 25. fpm in action ● https://github.com/Inuits/build-gems ● Fork, pull ● Jenkins pulls , builds , pushes to repo ● (variants for Nagios Plugins / Jenkins Plugins available)
  • 26. The Marionette Collective ● Distributed ssh ++ ● What version of ssh do I have installed on my servers ? ● On what servers is XYZ running ? ● Clean al my ssl certs ? ● Restart apache on all servers with fact X
  • 27. mc-service mc-service httpd status -W /uat/ * [ ================================================= ===========> ] 80 / 80 bleh.poc.com status=stopped xs03.ta.google.com status=stopped elasticsearch02.uat.com status=stopped dbs01-.poc.com status=stopped dino.uat.com status=stopped dsp01.uat.com status=stopped webserver01.uat.com status=running dbs01-old.uat.com status=stopped alexdb02-hdp.poc.com status=stopped postfix.uat.com status=stopped ns01.uat.com status=stopped devtools03.uat.com status=running
  • 28. mc-package mc-package -W /dev/ status jdk * [ ============================================================> ] 33 / 33 servicesdb01.dev.com version = -absent services.dev.google.com version = jdk-1.6.0_13-fcs drbdtest02.dev.google.com version = -absent services3.dev.google.com version = jdk-1.6.0_20-fcs um.dev.google.com version = jdk-1.5.0_19-fcs devtools03.uat.com version = jdk-1.6.0_29-fcs alexandria02.dev.google.com version = -absent weblink01.dev.com version = -absent wikitest.dev.google.com version = jdk-1.6.0_24-fcs payment.dev.google.com version = jdk-1.5.0_17-fcs tiff2pdf01.dev.com version = -absent devdoos.dev.com version = jdk-1.6.0_30-fcs wiki.dev.google.com version = jdk-1.6.0_24-fcs reporting01.dev.com version = -absent devtools01-dev.uat.com version = jdk-1.6.0_23-fcs devtools02.uat.com version = jdk-1.6.0_29-fcs drbdtest01.dev.google.com version = -absent ---- package agent summary ---- Nodes: 33/33 Versions: 1 * 1.5.0_17-fcs, 1 * 1.5.0_19-fcs, 1 * 1.6.0_13-fcs, 1 * 1.6.0_20-fcs, 1 * 1.6.0_23-fcs, 2 * 1.6.0_24-fcs, 2 * 1.6.0 Elapsed Time: 1.73 s
  • 29. Culture, Automation, Measurement, Sharing
  • 30. #monitoringsucks Monitoring is AWESOME. Metrics are AWESOME. I love it. Here's what I don't love: ● Having my hands tied with the model of host and service bindings. ● Having to set up "fake" hosts just to group arbitrary metrics together ● Having to either collect metrics twice - once for alerting and another for trending ● Only being able to see my metrics in 5 minute intervals ● Having to chose between shitty interface but great monitoring or shitty monitoring but great interface ● Dealing with a monitoring system that thinks IT is the system of truth for my environment ● Not actually having any real choices John Vincent (@lusis) on his blog http://lusislog.blogspot.com/2011/06/why- monitoring-sucks.html
  • 31. A sub movement ● #monitoringsucks trending ● https://github.com/monitoringsucks/ ● 2008 Study :Nagios + Friends ● 2011 Conclusion : Nagios/Icinga are the only automatable alternatives ● Monitoring and trending at scale , new kids Graphite, Icinga, flapjack, etc ● Old Cool Kids, Ganglia
  • 33. Logstash ● Not your average centralized logging tool ● Elasticsearch backed ● Shipper ● Indexer ● Web
  • 34. Logstash ● Collect from anywhere ● Filter ● Send anywhere ● Queuing support
  • 37. Puppet and Logstash ● https://github.com/KrisBuytaert/vagrant- puppet-logstash ● Includes Logstash / Kibana / Grok / ES modules as submodules ! ● git clone ● git submodule init ● git submodule update ● vagrant up
  • 38. Graphite ● Graphing at Scale ● Graphing at Ease ● Any metric is a graph ● echo "somestring $somevalue $timestamp" | nc <%= graphitehost %> 2003
  • 41. Friends of Graphite ● Collection : ● Statsd, ● Collectd + Carbonplugin ● Jmxtrans ● Logster ● Dashboards ● Tattle ● Gdash ● ...
  • 43. Puppet and Graphite ● https://github.com/KrisBuytaert/vagrant- graphite/ ● Includes Graphite / Gdash / Jmxtrans / Logster / Collectd / Statsd / Tattle and more modules as submodules ! ● git clone ● git submodule init ● git submodule update ● vagrant up
  • 44. Culture, Automation, Measurement, Sharing
  • 45. Open Source ● Github ● Talk about Experiences ● Open Spaces
  • 46. Sharing environments ● Build identical environments ● Share code ● Shared ownership of content , code and configuration
  • 47. Vagrant ● Abstraction layer for VirtualBox ● Integrates well with Puppet/Chef ● Project = ● Vagrantfile ● Manifests / Cookbooks ● Portable, Small , Versionable ● Use veewee to build your boxen
  • 48. Vagrantfile Vagrant::Config.run do |config| # All Vagrant configuration is done here. The most common configuration # options are documented and commented below. For a complete reference, # please see the online documentation at vagrantup.com. config.vm.define :mongo1 do |mongo1_config| mongo1_config.ssh.max_tries = 100 mongo1_config.vm.box = "MyCentOS2" mongo1_config.vm.network("192.168.99.101") mongo1_config.vm.host_name = "mongo1" mongo1_config.vm.provision :puppet do |mongo1_puppet| mongo1_puppet.pp_path = "/tmp/vagrant-puppet" mongo1_puppet.manifests_path = "manifests" mongo1_puppet.module_path = "modules" mongo1_puppet.manifest_file = "site.pp" end end config.vm.define :mongo2 do |mongo2_config| mongo2_config.ssh.max_tries = 100 mongo2_config.vm.box = "MyCentOS2" mongo2_config.vm.network("192.168.99.102") mongo2_config.vm.host_name = "mongo2" mongo2_config.vm.provision :puppet do |mongo2_puppet| mongo2_puppet.pp_path = "/tmp/vagrant-puppet" mongo2_puppet.manifests_path = "manifests" mongo2_puppet.module_path = "modules" mongo2_puppet.manifest_file = "site.pp" end end
  • 49. Vagrant Rocks ● Vagrant init ● Vagrant up ● Vagrant provision ● Vagrant down ● Vagrant destroy
  • 50. Sushi
  • 51. Quiz Time : Which tool did I forget ?
  • 52. You