SlideShare ist ein Scribd-Unternehmen logo
DevOps für PHP
International PHP Conference
Spring Edition 2011




                               © 2010 Mayflower GmbH
Kontinuierliche Entiwcklung - und dann?   I   Mayflower GmbH   I   28. Oktober 2010   I 2
Kontinuierliche Entiwcklung - und dann?   I   Mayflower GmbH   I   28. Oktober 2010   I 3
2007

 Kontinuierliche Entiwcklung - und dann?   I   Mayflower GmbH   I   28. Oktober 2010   I 4
http://www.flickr.com/photos/johnmueller/52621490/
                               Kontinuierliche Entiwcklung - und dann?   I   Mayflower GmbH   I   28. Oktober 2010   I 5
Kontinuierliche Entiwcklung - und dann?   I   Mayflower GmbH   I   28. Oktober 2010   I 6
http://www.flickr.com/photos/johnmueller/52621490/
                               Kontinuierliche Entiwcklung - und dann?   I   Mayflower GmbH   I   28. Oktober 2010   I 7
Kontinuierliche Entiwcklung - und dann?   I   Mayflower GmbH   I   28. Oktober 2010   I 8
Kontinuierliche Entiwcklung - und dann?   I   Mayflower GmbH   I   28. Oktober 2010   I 9
Kontinuierliche Entiwcklung - und dann?   I   Mayflower GmbH   I   28. Oktober 2010   I 10
Kontinuierliche Entiwcklung - und dann?   I   Mayflower GmbH   I   28. Oktober 2010   I 11
Nicht schnell.




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




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




   Kontinuierliche Entiwcklung - und dann?   I   Mayflower GmbH   I   28. Oktober 2010   I 14
Kontinuierliche Entiwcklung - und dann?   I   Mayflower GmbH   I   28. Oktober 2010   I 15
Kontinuierliche Entiwcklung - und dann?   I   Mayflower GmbH   I   28. Oktober 2010   I 16
Das bin ich.


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




                        Unternehmensportrait   I   Mayflower GmbH   I   January 29, 2010   I
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
Wer seid Ihr?




                Developer?
                Sysadmin?




                         Unternehmensportrait   I   Mayflower GmbH   I   January 29, 2010   I
(Zeit schinden durch Publikumsfragen)




                   Agile?
                   Scrum?



                               Unternehmensportrait   I   Mayflower GmbH   I   January 29, 2010   I
(noch mehr Zeit schinden)




                   Releases / Jahr?




                            Unternehmensportrait   I   Mayflower GmbH   I   January 29, 2010   I
(... ich muss mich beeilen)




                    Cloud?




                              Unternehmensportrait   I   Mayflower GmbH   I   January 29, 2010   I
==
Hardware =
Software
      Kontinuierliche Entiwcklung - und dann?   I   Mayflower GmbH   I   28. Oktober 2010   I 23
API


Kontinuierliche Entiwcklung - und dann?   I   Mayflower GmbH   I   28. Oktober 2010   I 24
Immer noch
   Hardware
(nur woanders)
     Kontinuierliche Entiwcklung - und dann?   I   Mayflower GmbH   I   28. Oktober 2010   I 25
2009

 Kontinuierliche Entiwcklung - und dann?   I   Mayflower GmbH   I   28. Oktober 2010   I 26
Hardware = Software =
Configuration



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


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

  PuppetD


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

 So Isset.


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




Kontinuierliche Entiwcklung - und dann?   I   Mayflower GmbH   I   28. Oktober 2010   I 32
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
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
Monitoring




Kontinuierliche Entiwcklung - und dann?   I   Mayflower GmbH   I   28. Oktober 2010   I 35
Quelle: http://www.puppetlabs.com/puppet/related-projects/dashboard/
                                  Kontinuierliche Entiwcklung - und dann?   I   Mayflower GmbH   I   28. Oktober 2010   I 36
Kontinuierliche Entiwcklung - und dann?   I   Mayflower GmbH   I   28. Oktober 2010   I 37
Vagra


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
Vagrant


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


Voll versioniert!
On-Demand
Erzeugung
Developer-Self-
Service
    Kontinuierliche Entiwcklung - und dann?   I   Mayflower GmbH   I   28. Oktober 2010   I 40
$ 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
Vagrant-Cluster mit
20 Maschinen lokal?



        Kontinuierliche Entiwcklung - und dann?   I   Mayflower GmbH   I   28. Oktober 2010   I 42
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
Und wenn ich 500
Maschinen will?



       Kontinuierliche Entiwcklung - und dann?   I   Mayflower GmbH   I   28. Oktober 2010   I 44
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
$    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
The most dangerous
vegetable on earth!
            Kontinuierliche Entiwcklung - und dann?   I   Mayflower GmbH   I   28. Oktober 2010   I 47
• 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
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
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
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
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
Kontinuierliche Entiwcklung - und dann?   I   Mayflower GmbH   I   28. Oktober 2010   I 53
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
Unit Tests
                             Acceptance
                             Tests
                             Metrics
                             Coding Style

                             ... you get the
                             idea.




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

                             Packaging
                             Releasing
                             Deployment




Kontinuierliche Entiwcklung - und dann?   I   Mayflower GmbH   I   28. Oktober 2010   I 56
Kontinuierliche Entiwcklung - und dann?   I   Mayflower GmbH   I   28. Oktober 2010   I 57
Kontinuierliche Entiwcklung - und dann?   I   Mayflower GmbH   I   28. Oktober 2010   I 58
Wetware
Refactoring



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




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




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




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




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




      Kontinuierliche Entiwcklung - und dann?   I   Mayflower GmbH   I   28. Oktober 2010   I 64
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
DevOpsification of Mayflower (Wetware)




Enge Zusammenarbeit mit zentralem
Admin

Volle Root-Rechte auf Developer-
Infrastruktur



                              Unternehmensportrait   I   Mayflower GmbH   I   January 29, 2010   I
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
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
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
DevOpsification of Mayflower (Future)




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


                              Unternehmensportrait   I   Mayflower GmbH   I   January 29, 2010   I

Weitere ähnliche Inhalte

KEY
Dev ops für php talk
KEY
Dev ops für php
PDF
Html5 workshop Peter Voringer
PDF
Maven Intro
PDF
Shell Fu for Developers
PDF
11 tools for your PHP devops stack
PDF
Puppet and Vagrant in development
PDF
DevOps for PHP
Dev ops für php talk
Dev ops für php
Html5 workshop Peter Voringer
Maven Intro
Shell Fu for Developers
11 tools for your PHP devops stack
Puppet and Vagrant in development
DevOps for PHP

Ähnlich wie DevOps für PHP (und andere) (20)

PDF
international PHP2011_J.Hartmann_DevOps für PHP
PDF
CSS3 produktiv
PDF
DevOps: Automatisieren, was wir predigen
ODP
Präsentation plug in development
KEY
Einfürung iPhone Entwicklung
PPTX
German: Softwareprodukte aus einem Source Code mit Javascript
PPTX
Ein ansatz für die untersuchung von linkquellen einer webseite mithilfe von p...
PDF
Grundlagen puppet
PDF
Forms 12c und der Oracle SB
PDF
W-Jax 2015: QS-Maßnahmen bei Continuous Delivery
PDF
PHP Deployment mit Ansible
PDF
Docker for Python Development
PDF
Wie nutzen wir Cloud-Infrastruktur @ VSHN.ch
PDF
Cross-Apps-Entwicklung für iPhone, Android und Co.
PDF
Service oriented alerting
PDF
MOOCs & OER
PDF
MOOC und OER - Warum, weshalb, wieso, wozu?
PDF
Clouds, leicht beherrschbar
PDF
Cloud Native Computing
PPT
XPages - The Basics
international PHP2011_J.Hartmann_DevOps für PHP
CSS3 produktiv
DevOps: Automatisieren, was wir predigen
Präsentation plug in development
Einfürung iPhone Entwicklung
German: Softwareprodukte aus einem Source Code mit Javascript
Ein ansatz für die untersuchung von linkquellen einer webseite mithilfe von p...
Grundlagen puppet
Forms 12c und der Oracle SB
W-Jax 2015: QS-Maßnahmen bei Continuous Delivery
PHP Deployment mit Ansible
Docker for Python Development
Wie nutzen wir Cloud-Infrastruktur @ VSHN.ch
Cross-Apps-Entwicklung für iPhone, Android und Co.
Service oriented alerting
MOOCs & OER
MOOC und OER - Warum, weshalb, wieso, wozu?
Clouds, leicht beherrschbar
Cloud Native Computing
XPages - The Basics
Anzeige

Mehr von Mayflower GmbH (20)

PDF
Mit Maintenance umgehen können- Fixt du noch Bugs oder lieferst du schon neue...
PDF
Why and what is go
PDF
Agile Anti-Patterns
PDF
JavaScript Days 2015: Security
PDF
Vom Entwickler zur Führungskraft
PPTX
Produktive teams
PDF
Salt and pepper — native code in the browser Browser using Google native Client
PDF
Plugging holes — javascript memory leak debugging
PDF
Usability im web
PDF
Rewrites überleben
PDF
JavaScript Security
PDF
50 mal produktiver - oder warum ich gute Teams brauche und nicht gute Entwick...
PDF
Responsive Webdesign
PDF
Native Cross-Platform-Apps mit Titanium Mobile und Alloy
PDF
Pair Programming Mythbusters
PDF
Shoeism - Frau im Glück
PDF
Bessere Software schneller liefern
PDF
Von 0 auf 100 in 2 Sprints
PDF
Piwik anpassen und skalieren
PDF
Agilitaet im E-Commerce - E-Commerce Breakfast
Mit Maintenance umgehen können- Fixt du noch Bugs oder lieferst du schon neue...
Why and what is go
Agile Anti-Patterns
JavaScript Days 2015: Security
Vom Entwickler zur Führungskraft
Produktive teams
Salt and pepper — native code in the browser Browser using Google native Client
Plugging holes — javascript memory leak debugging
Usability im web
Rewrites überleben
JavaScript Security
50 mal produktiver - oder warum ich gute Teams brauche und nicht gute Entwick...
Responsive Webdesign
Native Cross-Platform-Apps mit Titanium Mobile und Alloy
Pair Programming Mythbusters
Shoeism - Frau im Glück
Bessere Software schneller liefern
Von 0 auf 100 in 2 Sprints
Piwik anpassen und skalieren
Agilitaet im E-Commerce - E-Commerce Breakfast
Anzeige

DevOps für PHP (und andere)

  • 1. DevOps für PHP International PHP Conference Spring Edition 2011 © 2010 Mayflower GmbH
  • 2. Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 2
  • 3. Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 3
  • 4. 2007 Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 4
  • 5. http://www.flickr.com/photos/johnmueller/52621490/ Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 5
  • 6. Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 6
  • 7. http://www.flickr.com/photos/johnmueller/52621490/ Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 7
  • 8. Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 8
  • 9. Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 9
  • 10. Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 10
  • 11. Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 11
  • 12. Nicht schnell. Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 12
  • 13. Nicht schnell. Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 13
  • 14. auch schnell. Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 14
  • 15. Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 15
  • 16. Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 16
  • 17. Das bin ich. Johann-Peter Hartmann @johannhartmann hartmann@mayflower.de IRC: Freenode, EFNet johann__ Unternehmensportrait I Mayflower GmbH I January 29, 2010 I
  • 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
  • 19. Wer seid Ihr? Developer? Sysadmin? Unternehmensportrait I Mayflower GmbH I January 29, 2010 I
  • 20. (Zeit schinden durch Publikumsfragen) Agile? Scrum? Unternehmensportrait I Mayflower GmbH I January 29, 2010 I
  • 21. (noch mehr Zeit schinden) Releases / Jahr? Unternehmensportrait I Mayflower GmbH I January 29, 2010 I
  • 22. (... ich muss mich beeilen) Cloud? Unternehmensportrait I Mayflower GmbH I January 29, 2010 I
  • 23. == Hardware = Software Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 23
  • 24. API Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 24
  • 25. Immer noch Hardware (nur woanders) Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 25
  • 26. 2009 Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 26
  • 27. Hardware = Software = Configuration Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 27
  • 28. Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 28
  • 29. Dokumentationsgetrieben DomainSpecificLangu age Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 29
  • 30. PuppetMaster PuppetD Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 30
  • 31. Mach ma hin So Isset. Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 31
  • 32. Facter Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 32
  • 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
  • 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
  • 35. Monitoring Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 35
  • 36. Quelle: http://www.puppetlabs.com/puppet/related-projects/dashboard/ Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 36
  • 37. Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 37
  • 38. Vagra 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
  • 39. Vagrant VirtualBox-basierte automatische Erzeugung von VMs mit Puppet/Chef Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 39
  • 40. Vagrant Voll versioniert! On-Demand Erzeugung Developer-Self- Service Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 40
  • 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
  • 42. Vagrant-Cluster mit 20 Maschinen lokal? Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 42
  • 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
  • 44. Und wenn ich 500 Maschinen will? Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 44
  • 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
  • 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
  • 47. The most dangerous vegetable on earth! Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 47
  • 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
  • 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
  • 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
  • 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
  • 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
  • 53. Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 53
  • 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
  • 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
  • 56. ... and even more ... Packaging Releasing Deployment Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 56
  • 57. Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 57
  • 58. Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 58
  • 59. Wetware Refactoring Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 59
  • 60. Work together Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 60
  • 61. Own together Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 61
  • 62. Eat together http://www.flickr.com/photos/vilavelosa/ 3815032524/ - und dann? I Mayflower GmbH I 28. Oktober 2010 Kontinuierliche Entiwcklung I 62
  • 63. Plan together Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 63
  • 64. Mayflower DevOpsification Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 64
  • 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
  • 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
  • 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
  • 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
  • 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
  • 70. DevOpsification of Mayflower (Future) Vagrant für das Development Scrum => KanBan Puppet Nagios Unternehmensportrait I Mayflower GmbH I January 29, 2010 I

Hinweis der Redaktion

  • #2: DevOps: \n- Organisationsgeprägt, Wall of Confusion \n- Test, Software und Deployment-geprägt (siehe Sebastian)\n- Kanban / Lean-Startup-Motiviert (habe ich dabei, mach ich aber nicht)\nFazit: Tools mit ein bischen Organisation\n
  • #3: Warnung: Leute mit empfindlichen Magen haben jetzt die Gelegenheit, den Raum zu verlassen.\n
  • #4: Meine Geschichte heute beginnt lange vor unserer Zeit. Eine Zeit, in der vieles grundlegend anders war, vieles überraschend und wenige Dinge so wie heute.\n
  • #5: Konkret geht es etwa um das Jahr 2007. \nJepp, unsere Branche ist da etwas schnelllebiger als die anderen.\nIn unserer Branche haben sich zwei Dinge geändert:\n
  • #6: Zum einen haben Consultants auf einmal damit angefangen, den ganzen Tag von Wolken zu reden.\n
  • #7: Zum anderen mussten einige Dinge auf einmal schnell gehen.\n
  • #8: Die Cloud war erst mal ein typisches IT-Ding. \nWir haben eine Lösung, die ist echt super. \nWir haben bloss kein Problem dafür. \n
  • #9: Das hat auch den Consultants, die so begeistert von der Cloud erzählt haben, ein Problem gebracht.\n
  • #10: \n
  • #11: Nach einer Weile gab es dann auch einen ganzen Haufen Cloudplattformen, die unserer Web-Applikationen unterstützt haben - IaaS per se, manche PaaS explizit und spezialisiert - nur wir wussten nicht, was wir damit machen sollten.\n
  • #12: Kommen wir zum Thema Geschwindigkeit: \nDinge, die auf einmal schnell gehen müssen. Und damit ist nicht Responsivität oder Request per Minute gemeint, sondern wie schnell die Unternehmen ticken.\n
  • #13: Die Jungs sind zum Beispiel nicht so schnell\n
  • #14: Die wiederum sind schnell. Facebook kann Features in wenigen Tagen durchbringen. Es gibt Dinge wie Code von neuen Kollegen, der nach 2 Tagen in Produktion ist. Auf ein paar 100.000 Servern.\n
  • #15: Die sind auch schnell. Und die sind nicht nur schnell in Features wie Facebook, sondern auch schnell in wachsen.\n
  • #16: Scalarium: DevOps-Firma, die genau das für Kunden macht.\n
  • #17: Wie die das machen, erzähl ich hier heute.\n
  • #18: \n
  • #19: \n
  • #20: \n
  • #21: Wer von euch arbeitet agil? \nWer von macht SCRUM? \n\n
  • #22: Wenn Ihr agil seid, wieviele Releases kommen da pro Jahr raus? Wenn es viele sind, wieviele Releases haben Bugs? Welche manuellen Tests werden vor der Produktivnahme gefahren? \n
  • #23: Wie lange braucht Ihr, um von einer Idee in Produktion zu kommen? \n\n
  • #24: Hinter der Cloud steht die Idee - speziell bei IaaS - Hardware wie Software zu behandeln.\n
  • #25: Und zwar ganz konkret. Bei Amazon habe ich genau ein WebFrontend oder eine API. Ob die Server dann auf einem Mainframe emuliere, auf Marsbakterien oder per Hand von sehr schnellen Indern ausrechnen lassen weiss ich nicht.\n
  • #26: In der Praxis wurde es trotzdem weiter wie Hardware behandelt. Eine Virtualisierung, die nicht bei uns im Keller, sondern eben woanders steht. Nach Maschine abgerechnet und individuell per SSH gepflegt.\n
  • #27: In 2009, nach also 2 Jahren nachdenken, kamen ein paar clevere Admins zu dem Schluss, dass das vielleicht nicht die richtige Strategie ist. \n
  • #28: Und da sind sie rausgekommen: Wenn meine Hardware wie Software ist, dann kann ich die auch Automatisieren. Konkret: ich schreibe auf, was ich eigentlich haben will, und dann macht die Automatisierung, dass ich genau das bekomme.\n
  • #29: Neben Puppet gibt es noch Chef. Ist genauso gut, etwas flexibler, ich kann es nur nicht. Die Prinzipien sind aber die gleichen.\n
  • #30: Puppet ist eine DSL für Systembeschreibungen. Das beginnt mit der IP-Adresse bishin zur Konfiguration der Software. \n\n
  • #31: Puppet besteht aus zwei Kernkomponenten - einem Puppetmaster, der als Server irgendwo in der Mitte steht - und einem lokalen PuppetD, der zB alle 30 minuten die Konfiguration anpasst.\n
  • #32: Puppet sagt an. Der Status wird definiert, und der Puppetd macht, dass der Rechner den dann hat. Egal wie es vorher aussah.\n
  • #33: Wie macht er das? Über Facter wird der aktuelle Status - Versionen, laufen Services, sind die benötigten Files da - gegen das Puppet-Manifest geprüft. Wenn irgendetwas nicht stimmt, weiss PuppetD aus dem Manifest, wie er es zu machen hat.\n
  • #34: Und so sieht so eine Beschreibung konkret aus. Wie man sieht: das ist gar nicht so ruby, das tut gar nicht weh.\n\n
  • #35: \n
  • #36: Wenn ich eh schon weiss, wie es aussehen soll, und mit facter prüfe, ob das wirklich so aussieht, kann ich ja auch zentral wissen, ob alles ok ist.\n
  • #37: Das ist das Puppetlabs-Dashboard. Das zeigt mir in diversen Ansichten, wie die kritischen Dienste auf meinen Servern aussehen.\n
  • #38: Über puppet-Nagios kann ich das ganze sogar in mein vorhandenes Monitoring einbinden.\n
  • #39: Wenn ich eh alles in Code habe, und weiss, wie meine Server aussehen sollen. Und wenn mein Development genauso aussehen soll wie die Produktion - mit abstrichen - dann kann ich doch einfach die Konfiguration übernehmen?\n
  • #40: Damit lassen sich VMs automatisch erzeugen. Virtualbox = läuft überall & OpenSource.\nDas ist geil weil ... \n
  • #41: - jeder Developer kann on Demand welche bekommen\n- das setup das er gerade braucht in Multi-VM-Environments\n- Admin braucht nicht aktiv zu werden. Keine 8 Wochen bis der neue Testrechner bestellt ist :-)\n
  • #42: \n
  • #43: \n
  • #44: \n
  • #45: \n
  • #46: \n
  • #47: architecture=x86 ist facter-wissen als filter. das geht auch über klassen, services, speichergröße, cloud-zone etc.\n
  • #48: \n
  • #49: \n
  • #50: \n
  • #51: \n
  • #52: \n
  • #53: \n
  • #54: Danke an Jimdo für das Beispiel.. \n
  • #55: \n
  • #56: Wer setzt Jenkins ein? (sonst erklären)\n
  • #57: \n
  • #58: Sebastian wird hierüber noch mehr erzählen. \n
  • #59: \n
  • #60: \n
  • #61: - gemeinsame Standups\n- gegenseitige Teilnahme an den Sprint Plannings & Retros\n- gleiche Räume, wenn möglich\n
  • #62: Der Code gehört auch den Admins, die Konfiguration und die Verlässlichkeit auch den Developern.\n
  • #63: Wie bekommt man Respekt hin?\n- Soziale Interaktion, Feiern, Teambuilding\nWenn ich jemand persönliche kenne nehme ich auf seine Interessen Rücksicht\n
  • #64: Die langfristige Planung wird gemeinsam gemacht. Es werden gemeinsame Ziele definiert, und die Lösungsstrategien gemeinsam erstellt.\n
  • #65: \n
  • #66: \n
  • #67: \n
  • #68: \n
  • #69: \n
  • #70: \n
  • #71: \n