SlideShare ist ein Scribd-Unternehmen logo
1 von 70
Downloaden Sie, um offline zu lesen
DevOps für PHP
            International PHP Conference
            Spring Edition 2011




                                           © 2010 Mayflower GmbH

Montag, 30. Mai 2011
Kontinuierliche Entiwcklung - und dann? I   Mayflower GmbH I 28. Oktober 2010 I 2

Montag, 30. Mai 2011
Kontinuierliche Entiwcklung - und dann? I   Mayflower GmbH I 28. Oktober 2010 I 3

Montag, 30. Mai 2011
2007

                         Kontinuierliche Entiwcklung - und dann? I   Mayflower GmbH I 28. Oktober 2010 I 4

Montag, 30. Mai 2011
http://www.flickr.com/photos/johnmueller/52621490/
                                                     Kontinuierliche Entiwcklung - und dann? I   Mayflower GmbH I 28. Oktober 2010 I 5

Montag, 30. Mai 2011
Kontinuierliche Entiwcklung - und dann? I   Mayflower GmbH I 28. Oktober 2010 I 6

Montag, 30. Mai 2011
http://www.flickr.com/photos/johnmueller/52621490/
                                                     Kontinuierliche Entiwcklung - und dann? I   Mayflower GmbH I 28. Oktober 2010 I 7

Montag, 30. Mai 2011
Kontinuierliche Entiwcklung - und dann? I   Mayflower GmbH I 28. Oktober 2010 I 8

Montag, 30. Mai 2011
Kontinuierliche Entiwcklung - und dann? I   Mayflower GmbH I 28. Oktober 2010 I 9

Montag, 30. Mai 2011
Kontinuierliche Entiwcklung - und dann? I   Mayflower GmbH I 28. Oktober 2010 I 10

Montag, 30. Mai 2011
Kontinuierliche Entiwcklung - und dann? I   Mayflower GmbH I 28. Oktober 2010 I 11

Montag, 30. Mai 2011
Nicht schnell.




                                Kontinuierliche Entiwcklung - und dann? I   Mayflower GmbH I 28. Oktober 2010 I 12

Montag, 30. Mai 2011
Nicht schnell.




                               Kontinuierliche Entiwcklung - und dann? I   Mayflower GmbH I 28. Oktober 2010 I 13

Montag, 30. Mai 2011
auch schnell.




                               Kontinuierliche Entiwcklung - und dann? I   Mayflower GmbH I 28. Oktober 2010 I 14

Montag, 30. Mai 2011
Kontinuierliche Entiwcklung - und dann? I   Mayflower GmbH I 28. Oktober 2010 I 15

Montag, 30. Mai 2011
Kontinuierliche Entiwcklung - und dann? I   Mayflower GmbH I 28. Oktober 2010 I 16

Montag, 30. Mai 2011
Das bin ich.


    Johann-Peter Hartmann
    @johannhartmann
    hartmann@mayflower.de
    IRC: Freenode, EFNet
    johann__




                             Unternehmensportrait I   Mayflower GmbH I January 29, 2010 I

Montag, 30. Mai 2011
Und das auch.


    Johann-Peter Hartmann
    PHP Developer
    CTO of 65 developers
    Likes PHP, Agility, System
    Administration and
    Security




                                 Unternehmensportrait I   Mayflower GmbH I January 29, 2010 I

Montag, 30. Mai 2011
Wer seid Ihr?




                              Developer?
                              Sysadmin?




                                           Unternehmensportrait I   Mayflower GmbH I January 29, 2010 I

Montag, 30. Mai 2011
(Zeit schinden durch Publikumsfragen)




                                     Agile?
                                     Scrum?



                                                      Unternehmensportrait I   Mayflower GmbH I January 29, 2010 I

Montag, 30. Mai 2011
(noch mehr Zeit schinden)




                                     Releases / Jahr?




                                                Unternehmensportrait I   Mayflower GmbH I January 29, 2010 I

Montag, 30. Mai 2011
(... ich muss mich beeilen)




                                       Cloud?




                                                Unternehmensportrait I   Mayflower GmbH I January 29, 2010 I

Montag, 30. Mai 2011
==
                   Hardware = Software
                             Kontinuierliche Entiwcklung - und dann? I   Mayflower GmbH I 28. Oktober 2010 I 23

Montag, 30. Mai 2011
API


                         Kontinuierliche Entiwcklung - und dann? I   Mayflower GmbH I 28. Oktober 2010 I 24

Montag, 30. Mai 2011
Immer noch Hardware
                          (nur woanders)
                                 Kontinuierliche Entiwcklung - und dann? I   Mayflower GmbH I 28. Oktober 2010 I 25

Montag, 30. Mai 2011
2009

                         Kontinuierliche Entiwcklung - und dann? I   Mayflower GmbH I 28. Oktober 2010 I 26

Montag, 30. Mai 2011
Hardware = Software = Configuration




                                      Kontinuierliche Entiwcklung - und dann? I   Mayflower GmbH I 28. Oktober 2010 I 27

Montag, 30. Mai 2011
Kontinuierliche Entiwcklung - und dann? I   Mayflower GmbH I 28. Oktober 2010 I 28

Montag, 30. Mai 2011
Dokumentationsgetrieben
                       DomainSpecificLanguage



                               Kontinuierliche Entiwcklung - und dann? I   Mayflower GmbH I 28. Oktober 2010 I 29

Montag, 30. Mai 2011
PuppetMaster

                          PuppetD


                              Kontinuierliche Entiwcklung - und dann? I   Mayflower GmbH I 28. Oktober 2010 I 30

Montag, 30. Mai 2011
Mach ma hin

                         So Isset.


                               Kontinuierliche Entiwcklung - und dann? I   Mayflower GmbH I 28. Oktober 2010 I 31

Montag, 30. Mai 2011
Facter




                            Kontinuierliche Entiwcklung - und dann? I   Mayflower GmbH I 28. Oktober 2010 I 32

Montag, 30. Mai 2011
class web {
          package {“httpd“:
            ensure => present
          }

            file {“/etc/httpd/conf/httpd.conf“:
              owner => root,
              group => root,
              mode => 664,
              source => puppet:///modules/apache/httpd.conf,
              require => Package[“httpd“],
              notify => Service[“httpd“]
            }

            service {“httpd“:
              ensure => running,
              enable => true,
              require => File[“/etc/httpd/conf/httpd.conf“]
            }
        }

        node “web01.mydomain.test“ {
          include web
        }


                                             Kontinuierliche Entiwcklung - und dann? I   Mayflower GmbH I 28. Oktober 2010 I 33

Montag, 30. Mai 2011
Puppet-Modules
              • apache, nginx, varnish
              • php, ruby, tomcat
              • mysql, postgresql, memcache, ejabberd
              • heartbeat, dns
                (gibt eigentlich für fast alles etwas)




                                        Kontinuierliche Entiwcklung - und dann? I   Mayflower GmbH I 28. Oktober 2010 I 34

Montag, 30. Mai 2011
Monitoring




                           Kontinuierliche Entiwcklung - und dann? I   Mayflower GmbH I 28. Oktober 2010 I 35

Montag, 30. Mai 2011
Quelle: http://www.puppetlabs.com/puppet/related-projects/dashboard/
                                                      Kontinuierliche Entiwcklung - und dann? I   Mayflower GmbH I 28. Oktober 2010 I 36

Montag, 30. Mai 2011
Kontinuierliche Entiwcklung - und dann? I   Mayflower GmbH I 28. Oktober 2010 I 37

Montag, 30. Mai 2011
Vagrant


      Ich weiss, wie meine Server aussehen.
       Das Development soll
       maximal ähnlich sein.

                            Kontinuierliche Entiwcklung - und dann? I   Mayflower GmbH I 28. Oktober 2010 I 38

Montag, 30. Mai 2011
Vagrant


                       VirtualBox-basierte
                       automatische Erzeugung
                       von VMs mit Puppet/
                       Chef
                               Kontinuierliche Entiwcklung - und dann? I   Mayflower GmbH I 28. Oktober 2010 I 39

Montag, 30. Mai 2011
Vagrant


                       Voll versioniert!
                       On-Demand Erzeugung
                       Developer-Self-Service


                               Kontinuierliche Entiwcklung - und dann? I   Mayflower GmbH I 28. Oktober 2010 I 40

Montag, 30. Mai 2011
$ gem install vagrant
        $ vagrant box add maverick64 http://mathie-vagrant-
        boxes.s3.amazonaws.com/maverick64.box
        $ mkdir maverick_demo
        $ cd maverick_demo
        $ vagrant init maverick64
        $ vagrant up
        $ vagrant ssh
        vagrant@maverick64:~$




                                           Kontinuierliche Entiwcklung - und dann? I   Mayflower GmbH I 28. Oktober 2010 I 41

Montag, 30. Mai 2011
Vagrant-Cluster mit 20
              Maschinen lokal?



                           Kontinuierliche Entiwcklung - und dann? I   Mayflower GmbH I 28. Oktober 2010 I 42

Montag, 30. Mai 2011
McCloud
                       Wrapper around
                       Vagrant and Fog

                       Transparent local &
                       cloud usage

                                          https://github.com/jedi4ever/mccloud
                                Kontinuierliche Entiwcklung - und dann? I   Mayflower GmbH I 28. Oktober 2010 I 43

Montag, 30. Mai 2011
Und wenn ich 500
              Maschinen will?



                          Kontinuierliche Entiwcklung - und dann? I   Mayflower GmbH I 28. Oktober 2010 I 44

Montag, 30. Mai 2011
mCollective
       ssh-for-loop on steroids

       fast management for loads of
       servers

       uses puppet/facter, MQ-based
                            Kontinuierliche Entiwcklung - und dann? I   Mayflower GmbH I 28. Oktober 2010 I 45

Montag, 30. Mai 2011
$       mc-package -W "architecture=x86" status apache

            *
        [ ============================================================>
        ] 10 / 10

        host01.example.com                     version             =     apache-2.2.9-7
        host02.example.com                     version             =     apache-2.2.9-7
        host03.example.com                     version             =     apache-2.2.9-7
        host04.example.com                     version             =     apache-2.2.9-7
        host05.example.com                     version             =     apache-2.2.9-7
        host06.example.com                     version             =     apache-2.2.9-7
        host07.example.com                     version             =     apache-2.2.9-7
        host08.example.com                     version             =     apache-2.2.9-7
        host09.example.com                     version             =     apache-2.2.9-7
        host10.example.com                     version             =     apache-2.2.9-7

        ---- package agent summary ----
                   Nodes: 10 / 10
                Versions: 10 * 0.25.5-1.el5
            Elapsed Time: 1.03 s




                                                Kontinuierliche Entiwcklung - und dann? I   Mayflower GmbH I 28. Oktober 2010 I 46

Montag, 30. Mai 2011
The most dangerous
        vegetable on earth!
                       Kontinuierliche Entiwcklung - und dann? I   Mayflower GmbH I 28. Oktober 2010 I 47

Montag, 30. Mai 2011
• eigentlich ein BDD-Tool
             • trotzdem Bestandteil in DevOps
             • und Bestandteil in Lean Startup
             • cucumber-nagios
             • cucumber-puppet


                                                 Unternehmensportrait I   Mayflower GmbH I January 29, 2010 I

Montag, 30. Mai 2011
Feature: Manualsearch
          In order to find an article
          As an developer
          I want to use the search function
          Scenario: Search for bdd and check resulting page
            Given I go to "http://it-republik.de/php/"
            When I fill in "search_itr" with "bdd"
            And I click "search2"
            Then I should see "Suche"




                                           Kontinuierliche Entiwcklung - und dann? I   Mayflower GmbH I 28. Oktober 2010 I 49

Montag, 30. Mai 2011
Given /^I go to "([^"]*)"$/ do |url|
          visit url
        end

        When /^I fill in "([^"]*)" with "([^"]*)"$/ do |field, value|
          fill_in field, :with => value
        end

        When /^I click "([^"]*)"$/ do |button|
            click_button(button)
        end

        Then /^I should see "([^"]*)"$/ do |text|
          response_body.should include(text)
        end




                                           Kontinuierliche Entiwcklung - und dann? I   Mayflower GmbH I 28. Oktober 2010 I 50

Montag, 30. Mai 2011
johann$ cucumber
        Feature: Manualsearch
          In order to find an article
          As an developer
          I want to use the search function

          Scenario: Search for bdd and check resulting page # features/
        search.feature:5
            Given I go to "http://it-republik.de/php/"      # features/
        step_definitions/search_steps.rb:1
            When I fill in "search_itr" with "bdd"          # features/
        step_definitions/search_steps.rb:5
            And I click "search2"                           # features/
        step_definitions/search_steps.rb:9
            Then I should see "Suche"                       # features/
        step_definitions/search_steps.rb:13

        1 scenario (1 passed)
        4 steps (4 passed)
        0m1.615s




                                              Kontinuierliche Entiwcklung - und dann? I   Mayflower GmbH I 28. Oktober 2010 I 51

Montag, 30. Mai 2011
Feature: Install inetd
          In order to serve the web
          the httpd service
          must be installed

            Scenario: Setup httpd
              Given a node of class “web“
              When I compile the catalog
              Then package “httpd“ should be “installed“
              Then there should be a resource “Service[httpd]“
              And the service should have “enable“ set to “true“
              And State should be “running“
              And the service should require “Package[httpd]“




                                             Kontinuierliche Entiwcklung - und dann? I   Mayflower GmbH I 28. Oktober 2010 I 52

Montag, 30. Mai 2011
Kontinuierliche Entiwcklung - und dann? I   Mayflower GmbH I 28. Oktober 2010 I 53

Montag, 30. Mai 2011
Das verstehe sogar ich!
  Und ich bin seit 20
  Jahren im Marketing!




                            Kontinuierliche Entiwcklung - und dann? I   Mayflower GmbH I 28. Oktober 2010 I 54

Montag, 30. Mai 2011
Unit Tests
                                     Acceptance Tests
                                     Metrics
                                     Coding Style

                                     ... you get the idea.




                       Kontinuierliche Entiwcklung - und dann? I   Mayflower GmbH I 28. Oktober 2010 I 55

Montag, 30. Mai 2011
... and even more ...

                                     Packaging
                                     Releasing
                                     Deployment




                       Kontinuierliche Entiwcklung - und dann? I   Mayflower GmbH I 28. Oktober 2010 I 56

Montag, 30. Mai 2011
Kontinuierliche Entiwcklung - und dann? I   Mayflower GmbH I 28. Oktober 2010 I 57

Montag, 30. Mai 2011
Kontinuierliche Entiwcklung - und dann? I   Mayflower GmbH I 28. Oktober 2010 I 58

Montag, 30. Mai 2011
Wetware
                       Refactoring



                              Kontinuierliche Entiwcklung - und dann? I   Mayflower GmbH I 28. Oktober 2010 I 59

Montag, 30. Mai 2011
Work together




                        Kontinuierliche Entiwcklung - und dann? I   Mayflower GmbH I 28. Oktober 2010 I 60

Montag, 30. Mai 2011
Own together




                       Kontinuierliche Entiwcklung - und dann? I   Mayflower GmbH I 28. Oktober 2010 I 61

Montag, 30. Mai 2011
Eat together




                       http://www.flickr.com/photos/vilavelosa/3815032524/
                                   Kontinuierliche Entiwcklung - und dann? I   Mayflower GmbH I 28. Oktober 2010 I 62

Montag, 30. Mai 2011
Plan together




                        Kontinuierliche Entiwcklung - und dann? I   Mayflower GmbH I 28. Oktober 2010 I 63

Montag, 30. Mai 2011
Mayflower
                       DevOpsification



                                 Kontinuierliche Entiwcklung - und dann? I   Mayflower GmbH I 28. Oktober 2010 I 64

Montag, 30. Mai 2011
DevOpsification of Mayflower (Wetware)




                  1-2 Admins pro Team
                   –Admin & Development-Aufgaben
                   –Vollzeit dem Team zugeordnet



                                                     Unternehmensportrait I   Mayflower GmbH I January 29, 2010 I

Montag, 30. Mai 2011
DevOpsification of Mayflower (Wetware)




            Enge Zusammenarbeit mit zentralem Admin

            Volle Root-Rechte auf Developer-Infrastruktur




                                                     Unternehmensportrait I   Mayflower GmbH I January 29, 2010 I

Montag, 30. Mai 2011
DevOpsification of Mayflower (Software)




                  1+n Puppet-Master
                       – zentraler Firmenmaster
                       – Teammaster pro Team / Projekt
                       – Firmenmaster ist Startpunkt der Teamkonfiguration




                                                           Unternehmensportrait I   Mayflower GmbH I January 29, 2010 I

Montag, 30. Mai 2011
DevOpsification of Mayflower (Software)




                  Beispiel-Setup:
                       – lokale Developer-VM
                       – CI-Deployment-Server in der DMZ
                       – Staging in der private Cloud
                       – Beta in Amazon-Cloud
                       – Production bei Amazon



                                                           Unternehmensportrait I   Mayflower GmbH I January 29, 2010 I

Montag, 30. Mai 2011
DevOpsification of Mayflower (Software)




                  lokaler GIT- / Gitorious-Server

                  Eucalyptus-Cloud in der DMZ
                  - im Self-Service!


                                                      Unternehmensportrait I   Mayflower GmbH I January 29, 2010 I

Montag, 30. Mai 2011
DevOpsification of Mayflower (Future)




                       Vagrant für das Development
                           Scrum => KanBan
                            Puppet Nagios



                                                    Unternehmensportrait I   Mayflower GmbH I January 29, 2010 I

Montag, 30. Mai 2011

Weitere ähnliche Inhalte

Mehr von smueller_sandsmedia

webinale2011_Kai Radusch_Landingpage-Optimierung für Adwords-Kampagnen
webinale2011_Kai Radusch_Landingpage-Optimierung für Adwords-Kampagnenwebinale2011_Kai Radusch_Landingpage-Optimierung für Adwords-Kampagnen
webinale2011_Kai Radusch_Landingpage-Optimierung für Adwords-Kampagnensmueller_sandsmedia
 
webinale 2011_Gabriel Yoran_Der Schlüssel zum erfolg: Besser aussehen, als ma...
webinale 2011_Gabriel Yoran_Der Schlüssel zum erfolg: Besser aussehen, als ma...webinale 2011_Gabriel Yoran_Der Schlüssel zum erfolg: Besser aussehen, als ma...
webinale 2011_Gabriel Yoran_Der Schlüssel zum erfolg: Besser aussehen, als ma...smueller_sandsmedia
 
international PHP2011_Henning Wolf_ Mit Retrospektivenzu erfolgreichen Projekten
international PHP2011_Henning Wolf_ Mit Retrospektivenzu erfolgreichen Projekteninternational PHP2011_Henning Wolf_ Mit Retrospektivenzu erfolgreichen Projekten
international PHP2011_Henning Wolf_ Mit Retrospektivenzu erfolgreichen Projektensmueller_sandsmedia
 
international PHP2011_Bastian Hofmann_Mashing up java script
international PHP2011_Bastian Hofmann_Mashing up java scriptinternational PHP2011_Bastian Hofmann_Mashing up java script
international PHP2011_Bastian Hofmann_Mashing up java scriptsmueller_sandsmedia
 
international PHP2011_ilia alshanetsky_Hidden Features of PHP
international PHP2011_ilia alshanetsky_Hidden Features of PHPinternational PHP2011_ilia alshanetsky_Hidden Features of PHP
international PHP2011_ilia alshanetsky_Hidden Features of PHPsmueller_sandsmedia
 
international PHP2011_Kore Nordmann_Tobias Schlitt_Modular Application Archit...
international PHP2011_Kore Nordmann_Tobias Schlitt_Modular Application Archit...international PHP2011_Kore Nordmann_Tobias Schlitt_Modular Application Archit...
international PHP2011_Kore Nordmann_Tobias Schlitt_Modular Application Archit...smueller_sandsmedia
 
webinale2011_Chris Mills_Brave new world of HTML5Html5
webinale2011_Chris Mills_Brave new world of HTML5Html5webinale2011_Chris Mills_Brave new world of HTML5Html5
webinale2011_Chris Mills_Brave new world of HTML5Html5smueller_sandsmedia
 
international PHP2011_Kore Nordmann_Designing multilingual applications
international PHP2011_Kore Nordmann_Designing multilingual applications international PHP2011_Kore Nordmann_Designing multilingual applications
international PHP2011_Kore Nordmann_Designing multilingual applications smueller_sandsmedia
 
webinale2011_Daniel Höpfner_Förderprogramme für dummies
webinale2011_Daniel Höpfner_Förderprogramme für dummieswebinale2011_Daniel Höpfner_Förderprogramme für dummies
webinale2011_Daniel Höpfner_Förderprogramme für dummiessmueller_sandsmedia
 

Mehr von smueller_sandsmedia (9)

webinale2011_Kai Radusch_Landingpage-Optimierung für Adwords-Kampagnen
webinale2011_Kai Radusch_Landingpage-Optimierung für Adwords-Kampagnenwebinale2011_Kai Radusch_Landingpage-Optimierung für Adwords-Kampagnen
webinale2011_Kai Radusch_Landingpage-Optimierung für Adwords-Kampagnen
 
webinale 2011_Gabriel Yoran_Der Schlüssel zum erfolg: Besser aussehen, als ma...
webinale 2011_Gabriel Yoran_Der Schlüssel zum erfolg: Besser aussehen, als ma...webinale 2011_Gabriel Yoran_Der Schlüssel zum erfolg: Besser aussehen, als ma...
webinale 2011_Gabriel Yoran_Der Schlüssel zum erfolg: Besser aussehen, als ma...
 
international PHP2011_Henning Wolf_ Mit Retrospektivenzu erfolgreichen Projekten
international PHP2011_Henning Wolf_ Mit Retrospektivenzu erfolgreichen Projekteninternational PHP2011_Henning Wolf_ Mit Retrospektivenzu erfolgreichen Projekten
international PHP2011_Henning Wolf_ Mit Retrospektivenzu erfolgreichen Projekten
 
international PHP2011_Bastian Hofmann_Mashing up java script
international PHP2011_Bastian Hofmann_Mashing up java scriptinternational PHP2011_Bastian Hofmann_Mashing up java script
international PHP2011_Bastian Hofmann_Mashing up java script
 
international PHP2011_ilia alshanetsky_Hidden Features of PHP
international PHP2011_ilia alshanetsky_Hidden Features of PHPinternational PHP2011_ilia alshanetsky_Hidden Features of PHP
international PHP2011_ilia alshanetsky_Hidden Features of PHP
 
international PHP2011_Kore Nordmann_Tobias Schlitt_Modular Application Archit...
international PHP2011_Kore Nordmann_Tobias Schlitt_Modular Application Archit...international PHP2011_Kore Nordmann_Tobias Schlitt_Modular Application Archit...
international PHP2011_Kore Nordmann_Tobias Schlitt_Modular Application Archit...
 
webinale2011_Chris Mills_Brave new world of HTML5Html5
webinale2011_Chris Mills_Brave new world of HTML5Html5webinale2011_Chris Mills_Brave new world of HTML5Html5
webinale2011_Chris Mills_Brave new world of HTML5Html5
 
international PHP2011_Kore Nordmann_Designing multilingual applications
international PHP2011_Kore Nordmann_Designing multilingual applications international PHP2011_Kore Nordmann_Designing multilingual applications
international PHP2011_Kore Nordmann_Designing multilingual applications
 
webinale2011_Daniel Höpfner_Förderprogramme für dummies
webinale2011_Daniel Höpfner_Förderprogramme für dummieswebinale2011_Daniel Höpfner_Förderprogramme für dummies
webinale2011_Daniel Höpfner_Förderprogramme für dummies
 

international PHP2011_J.Hartmann_DevOps für PHP

  • 1. DevOps für PHP International PHP Conference Spring Edition 2011 © 2010 Mayflower GmbH Montag, 30. Mai 2011
  • 2. Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 2 Montag, 30. Mai 2011
  • 3. Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 3 Montag, 30. Mai 2011
  • 4. 2007 Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 4 Montag, 30. Mai 2011
  • 5. http://www.flickr.com/photos/johnmueller/52621490/ Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 5 Montag, 30. Mai 2011
  • 6. Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 6 Montag, 30. Mai 2011
  • 7. http://www.flickr.com/photos/johnmueller/52621490/ Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 7 Montag, 30. Mai 2011
  • 8. Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 8 Montag, 30. Mai 2011
  • 9. Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 9 Montag, 30. Mai 2011
  • 10. Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 10 Montag, 30. Mai 2011
  • 11. Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 11 Montag, 30. Mai 2011
  • 12. Nicht schnell. Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 12 Montag, 30. Mai 2011
  • 13. Nicht schnell. Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 13 Montag, 30. Mai 2011
  • 14. auch schnell. Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 14 Montag, 30. Mai 2011
  • 15. Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 15 Montag, 30. Mai 2011
  • 16. Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 16 Montag, 30. Mai 2011
  • 17. Das bin ich. Johann-Peter Hartmann @johannhartmann hartmann@mayflower.de IRC: Freenode, EFNet johann__ Unternehmensportrait I Mayflower GmbH I January 29, 2010 I Montag, 30. Mai 2011
  • 18. Und das auch. Johann-Peter Hartmann PHP Developer CTO of 65 developers Likes PHP, Agility, System Administration and Security Unternehmensportrait I Mayflower GmbH I January 29, 2010 I Montag, 30. Mai 2011
  • 19. Wer seid Ihr? Developer? Sysadmin? Unternehmensportrait I Mayflower GmbH I January 29, 2010 I Montag, 30. Mai 2011
  • 20. (Zeit schinden durch Publikumsfragen) Agile? Scrum? Unternehmensportrait I Mayflower GmbH I January 29, 2010 I Montag, 30. Mai 2011
  • 21. (noch mehr Zeit schinden) Releases / Jahr? Unternehmensportrait I Mayflower GmbH I January 29, 2010 I Montag, 30. Mai 2011
  • 22. (... ich muss mich beeilen) Cloud? Unternehmensportrait I Mayflower GmbH I January 29, 2010 I Montag, 30. Mai 2011
  • 23. == Hardware = Software Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 23 Montag, 30. Mai 2011
  • 24. API Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 24 Montag, 30. Mai 2011
  • 25. Immer noch Hardware (nur woanders) Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 25 Montag, 30. Mai 2011
  • 26. 2009 Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 26 Montag, 30. Mai 2011
  • 27. Hardware = Software = Configuration Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 27 Montag, 30. Mai 2011
  • 28. Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 28 Montag, 30. Mai 2011
  • 29. Dokumentationsgetrieben DomainSpecificLanguage Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 29 Montag, 30. Mai 2011
  • 30. PuppetMaster PuppetD Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 30 Montag, 30. Mai 2011
  • 31. Mach ma hin So Isset. Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 31 Montag, 30. Mai 2011
  • 32. Facter Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 32 Montag, 30. Mai 2011
  • 33. class web { package {“httpd“: ensure => present } file {“/etc/httpd/conf/httpd.conf“: owner => root, group => root, mode => 664, source => puppet:///modules/apache/httpd.conf, require => Package[“httpd“], notify => Service[“httpd“] } service {“httpd“: ensure => running, enable => true, require => File[“/etc/httpd/conf/httpd.conf“] } } node “web01.mydomain.test“ { include web } Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 33 Montag, 30. Mai 2011
  • 34. Puppet-Modules • apache, nginx, varnish • php, ruby, tomcat • mysql, postgresql, memcache, ejabberd • heartbeat, dns (gibt eigentlich für fast alles etwas) Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 34 Montag, 30. Mai 2011
  • 35. Monitoring Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 35 Montag, 30. Mai 2011
  • 36. Quelle: http://www.puppetlabs.com/puppet/related-projects/dashboard/ Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 36 Montag, 30. Mai 2011
  • 37. Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 37 Montag, 30. Mai 2011
  • 38. Vagrant Ich weiss, wie meine Server aussehen. Das Development soll maximal ähnlich sein. Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 38 Montag, 30. Mai 2011
  • 39. Vagrant VirtualBox-basierte automatische Erzeugung von VMs mit Puppet/ Chef Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 39 Montag, 30. Mai 2011
  • 40. Vagrant Voll versioniert! On-Demand Erzeugung Developer-Self-Service Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 40 Montag, 30. Mai 2011
  • 41. $ gem install vagrant $ vagrant box add maverick64 http://mathie-vagrant- boxes.s3.amazonaws.com/maverick64.box $ mkdir maverick_demo $ cd maverick_demo $ vagrant init maverick64 $ vagrant up $ vagrant ssh vagrant@maverick64:~$ Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 41 Montag, 30. Mai 2011
  • 42. Vagrant-Cluster mit 20 Maschinen lokal? Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 42 Montag, 30. Mai 2011
  • 43. McCloud Wrapper around Vagrant and Fog Transparent local & cloud usage https://github.com/jedi4ever/mccloud Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 43 Montag, 30. Mai 2011
  • 44. Und wenn ich 500 Maschinen will? Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 44 Montag, 30. Mai 2011
  • 45. mCollective ssh-for-loop on steroids fast management for loads of servers uses puppet/facter, MQ-based Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 45 Montag, 30. Mai 2011
  • 46. $ mc-package -W "architecture=x86" status apache * [ ============================================================> ] 10 / 10 host01.example.com version = apache-2.2.9-7 host02.example.com version = apache-2.2.9-7 host03.example.com version = apache-2.2.9-7 host04.example.com version = apache-2.2.9-7 host05.example.com version = apache-2.2.9-7 host06.example.com version = apache-2.2.9-7 host07.example.com version = apache-2.2.9-7 host08.example.com version = apache-2.2.9-7 host09.example.com version = apache-2.2.9-7 host10.example.com version = apache-2.2.9-7 ---- package agent summary ---- Nodes: 10 / 10 Versions: 10 * 0.25.5-1.el5 Elapsed Time: 1.03 s Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 46 Montag, 30. Mai 2011
  • 47. The most dangerous vegetable on earth! Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 47 Montag, 30. Mai 2011
  • 48. • eigentlich ein BDD-Tool • trotzdem Bestandteil in DevOps • und Bestandteil in Lean Startup • cucumber-nagios • cucumber-puppet Unternehmensportrait I Mayflower GmbH I January 29, 2010 I Montag, 30. Mai 2011
  • 49. Feature: Manualsearch In order to find an article As an developer I want to use the search function Scenario: Search for bdd and check resulting page Given I go to "http://it-republik.de/php/" When I fill in "search_itr" with "bdd" And I click "search2" Then I should see "Suche" Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 49 Montag, 30. Mai 2011
  • 50. Given /^I go to "([^"]*)"$/ do |url| visit url end When /^I fill in "([^"]*)" with "([^"]*)"$/ do |field, value| fill_in field, :with => value end When /^I click "([^"]*)"$/ do |button| click_button(button) end Then /^I should see "([^"]*)"$/ do |text| response_body.should include(text) end Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 50 Montag, 30. Mai 2011
  • 51. johann$ cucumber Feature: Manualsearch In order to find an article As an developer I want to use the search function Scenario: Search for bdd and check resulting page # features/ search.feature:5 Given I go to "http://it-republik.de/php/" # features/ step_definitions/search_steps.rb:1 When I fill in "search_itr" with "bdd" # features/ step_definitions/search_steps.rb:5 And I click "search2" # features/ step_definitions/search_steps.rb:9 Then I should see "Suche" # features/ step_definitions/search_steps.rb:13 1 scenario (1 passed) 4 steps (4 passed) 0m1.615s Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 51 Montag, 30. Mai 2011
  • 52. Feature: Install inetd In order to serve the web the httpd service must be installed Scenario: Setup httpd Given a node of class “web“ When I compile the catalog Then package “httpd“ should be “installed“ Then there should be a resource “Service[httpd]“ And the service should have “enable“ set to “true“ And State should be “running“ And the service should require “Package[httpd]“ Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 52 Montag, 30. Mai 2011
  • 53. Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 53 Montag, 30. Mai 2011
  • 54. Das verstehe sogar ich! Und ich bin seit 20 Jahren im Marketing! Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 54 Montag, 30. Mai 2011
  • 55. Unit Tests Acceptance Tests Metrics Coding Style ... you get the idea. Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 55 Montag, 30. Mai 2011
  • 56. ... and even more ... Packaging Releasing Deployment Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 56 Montag, 30. Mai 2011
  • 57. Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 57 Montag, 30. Mai 2011
  • 58. Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 58 Montag, 30. Mai 2011
  • 59. Wetware Refactoring Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 59 Montag, 30. Mai 2011
  • 60. Work together Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 60 Montag, 30. Mai 2011
  • 61. Own together Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 61 Montag, 30. Mai 2011
  • 62. Eat together http://www.flickr.com/photos/vilavelosa/3815032524/ Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 62 Montag, 30. Mai 2011
  • 63. Plan together Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 63 Montag, 30. Mai 2011
  • 64. Mayflower DevOpsification Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 64 Montag, 30. Mai 2011
  • 65. DevOpsification of Mayflower (Wetware) 1-2 Admins pro Team –Admin & Development-Aufgaben –Vollzeit dem Team zugeordnet Unternehmensportrait I Mayflower GmbH I January 29, 2010 I Montag, 30. Mai 2011
  • 66. DevOpsification of Mayflower (Wetware) Enge Zusammenarbeit mit zentralem Admin Volle Root-Rechte auf Developer-Infrastruktur Unternehmensportrait I Mayflower GmbH I January 29, 2010 I Montag, 30. Mai 2011
  • 67. DevOpsification of Mayflower (Software) 1+n Puppet-Master – zentraler Firmenmaster – Teammaster pro Team / Projekt – Firmenmaster ist Startpunkt der Teamkonfiguration Unternehmensportrait I Mayflower GmbH I January 29, 2010 I Montag, 30. Mai 2011
  • 68. DevOpsification of Mayflower (Software) Beispiel-Setup: – lokale Developer-VM – CI-Deployment-Server in der DMZ – Staging in der private Cloud – Beta in Amazon-Cloud – Production bei Amazon Unternehmensportrait I Mayflower GmbH I January 29, 2010 I Montag, 30. Mai 2011
  • 69. DevOpsification of Mayflower (Software) lokaler GIT- / Gitorious-Server Eucalyptus-Cloud in der DMZ - im Self-Service! Unternehmensportrait I Mayflower GmbH I January 29, 2010 I Montag, 30. Mai 2011
  • 70. DevOpsification of Mayflower (Future) Vagrant für das Development Scrum => KanBan Puppet Nagios Unternehmensportrait I Mayflower GmbH I January 29, 2010 I Montag, 30. Mai 2011