© 2010 Mayflower GmbH
DevOps für PHPInternational PHP Conference Spring Edition 2011
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
Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 4
2007
Montag, 30. Mai 2011
Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 5
http://www.flickr.com/photos/johnmueller/52621490/
Montag, 30. Mai 2011
Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 6
Montag, 30. Mai 2011
Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 7
http://www.flickr.com/photos/johnmueller/52621490/
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
Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 12
Nicht schnell.
Montag, 30. Mai 2011
Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 13
Nicht schnell.
Montag, 30. Mai 2011
Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 14
auch schnell.
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
Unternehmensportrait I Mayflower GmbH I January 29, 2010 I
Das bin ich.
Johann-Peter Hartmann
@[email protected]: Freenode, EFNetjohann__
Montag, 30. Mai 2011
Unternehmensportrait I Mayflower GmbH I January 29, 2010 I
Und das auch.
Johann-Peter HartmannPHP Developer CTO of 65 developersLikes PHP, Agility, System Administration and Security
Montag, 30. Mai 2011
Unternehmensportrait I Mayflower GmbH I January 29, 2010 I
Wer seid Ihr?
Developer?Sysadmin?
Montag, 30. Mai 2011
Unternehmensportrait I Mayflower GmbH I January 29, 2010 I
(Zeit schinden durch Publikumsfragen)
Agile?Scrum?
Montag, 30. Mai 2011
Unternehmensportrait I Mayflower GmbH I January 29, 2010 I
(noch mehr Zeit schinden)
Releases / Jahr?
Montag, 30. Mai 2011
Unternehmensportrait I Mayflower GmbH I January 29, 2010 I
(... ich muss mich beeilen)
Cloud?
Montag, 30. Mai 2011
Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 23
==
Hardware = Software
Montag, 30. Mai 2011
Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 24
API
Montag, 30. Mai 2011
Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 25
Immer noch Hardware(nur woanders)
Montag, 30. Mai 2011
Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 26
2009
Montag, 30. Mai 2011
Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 27
Hardware = Software = Configuration
Montag, 30. Mai 2011
Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 28
Montag, 30. Mai 2011
Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 29
Dokumentationsgetrieben
DomainSpecificLanguage
Montag, 30. Mai 2011
Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 30
PuppetMaster
PuppetD
Montag, 30. Mai 2011
Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 31
Mach ma hin
So Isset.
Montag, 30. Mai 2011
Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 32
Facter
Montag, 30. Mai 2011
Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 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}
Montag, 30. Mai 2011
Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I
Puppet-Modules
34
• apache, nginx, varnish• php, ruby, tomcat• mysql, postgresql, memcache, ejabberd• heartbeat, dns
(gibt eigentlich für fast alles etwas)
Montag, 30. Mai 2011
Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 35
Monitoring
Montag, 30. Mai 2011
Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 36
Quelle: http://www.puppetlabs.com/puppet/related-projects/dashboard/
Montag, 30. Mai 2011
Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 37
Montag, 30. Mai 2011
Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I
Vagrant
38
Ich weiss, wie meine Server aussehen.
Das Development soll maximal ähnlich sein.
Montag, 30. Mai 2011
Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I
Vagrant
39
VirtualBox-basierte automatische Erzeugung von VMs mit Puppet/Chef
Montag, 30. Mai 2011
Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I
Vagrant
40
Voll versioniert!On-Demand ErzeugungDeveloper-Self-Service
Montag, 30. Mai 2011
Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I
$ 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 sshvagrant@maverick64:~$
41
Montag, 30. Mai 2011
Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I
Vagrant-Cluster mit 20 Maschinen lokal?
42
Montag, 30. Mai 2011
Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I
McCloud
43
Wrapper around Vagrant and Fog
Transparent local & cloud usage
https://github.com/jedi4ever/mccloud
Montag, 30. Mai 2011
Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I
Und wenn ich 500 Maschinen will?
44
Montag, 30. Mai 2011
Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I
mCollective
45
ssh-for-loop on steroids
fast management for loads of servers
uses puppet/facter, MQ-based
Montag, 30. Mai 2011
Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 46
$ mc-package -W "architecture=x86" status apache * [ ============================================================> ] 10 / 10 host01.example.com version = apache-2.2.9-7host02.example.com version = apache-2.2.9-7host03.example.com version = apache-2.2.9-7host04.example.com version = apache-2.2.9-7host05.example.com version = apache-2.2.9-7host06.example.com version = apache-2.2.9-7host07.example.com version = apache-2.2.9-7host08.example.com version = apache-2.2.9-7host09.example.com version = apache-2.2.9-7host10.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
Montag, 30. Mai 2011
Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 47
The most dangerous vegetable on earth!
Montag, 30. Mai 2011
Unternehmensportrait I Mayflower GmbH I January 29, 2010 I
• eigentlich ein BDD-Tool • trotzdem Bestandteil in DevOps• und Bestandteil in Lean Startup• cucumber-nagios• cucumber-puppet
Montag, 30. Mai 2011
Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 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"
49
Montag, 30. Mai 2011
Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I
Given /^I go to "([^"]*)"$/ do |url| visit urlend
When /^I fill in "([^"]*)" with "([^"]*)"$/ do |field, value| fill_in field, :with => valueend
When /^I click "([^"]*)"$/ do |button| click_button(button)end
Then /^I should see "([^"]*)"$/ do |text| response_body.should include(text)end
50
Montag, 30. Mai 2011
Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I
johann$ cucumberFeature: 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
51
Montag, 30. Mai 2011
Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I
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]“
52
Montag, 30. Mai 2011
Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 53
Montag, 30. Mai 2011
Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 54
Das verstehe sogar ich! Und ich bin seit 20 Jahren im Marketing!
Montag, 30. Mai 2011
Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 55
Unit TestsAcceptance TestsMetricsCoding Style
... you get the idea.
Montag, 30. Mai 2011
Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 56
... and even more ...
Packaging ReleasingDeployment
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
Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I
WetwareRefactoring
59
Montag, 30. Mai 2011
Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 60
Work together
Montag, 30. Mai 2011
Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I
Own together
61
Montag, 30. Mai 2011
Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 62
Eat together
http://www.flickr.com/photos/vilavelosa/3815032524/
Montag, 30. Mai 2011
Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I
Plan together
63
Montag, 30. Mai 2011
Kontinuierliche Entiwcklung - und dann? I Mayflower GmbH I 28. Oktober 2010 I 64
Mayflower DevOpsification
Montag, 30. Mai 2011
Unternehmensportrait I Mayflower GmbH I January 29, 2010 I
DevOpsification of Mayflower (Wetware)
1-2 Admins pro Team–Admin & Development-Aufgaben–Vollzeit dem Team zugeordnet
Montag, 30. Mai 2011
Unternehmensportrait I Mayflower GmbH I January 29, 2010 I
DevOpsification of Mayflower (Wetware)
Enge Zusammenarbeit mit zentralem Admin
Volle Root-Rechte auf Developer-Infrastruktur
Montag, 30. Mai 2011
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
Montag, 30. Mai 2011
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
Montag, 30. Mai 2011
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!
Montag, 30. Mai 2011
Unternehmensportrait I Mayflower GmbH I January 29, 2010 I
DevOpsification of Mayflower (Future)
Vagrant für das DevelopmentScrum => KanBan
Puppet Nagios
Montag, 30. Mai 2011
Top Related