Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

of

DevOps for PHP Slide 1 DevOps for PHP Slide 2 DevOps for PHP Slide 3 DevOps for PHP Slide 4 DevOps for PHP Slide 5 DevOps for PHP Slide 6 DevOps for PHP Slide 7 DevOps for PHP Slide 8 DevOps for PHP Slide 9 DevOps for PHP Slide 10 DevOps for PHP Slide 11 DevOps for PHP Slide 12 DevOps for PHP Slide 13 DevOps for PHP Slide 14 DevOps for PHP Slide 15 DevOps for PHP Slide 16 DevOps for PHP Slide 17 DevOps for PHP Slide 18 DevOps for PHP Slide 19 DevOps for PHP Slide 20 DevOps for PHP Slide 21 DevOps for PHP Slide 22 DevOps for PHP Slide 23 DevOps for PHP Slide 24 DevOps for PHP Slide 25 DevOps for PHP Slide 26 DevOps for PHP Slide 27 DevOps for PHP Slide 28 DevOps for PHP Slide 29 DevOps for PHP Slide 30 DevOps for PHP Slide 31 DevOps for PHP Slide 32 DevOps for PHP Slide 33 DevOps for PHP Slide 34 DevOps for PHP Slide 35 DevOps for PHP Slide 36 DevOps for PHP Slide 37 DevOps for PHP Slide 38 DevOps for PHP Slide 39 DevOps for PHP Slide 40 DevOps for PHP Slide 41 DevOps for PHP Slide 42 DevOps for PHP Slide 43 DevOps for PHP Slide 44 DevOps for PHP Slide 45 DevOps for PHP Slide 46 DevOps for PHP Slide 47 DevOps for PHP Slide 48 DevOps for PHP Slide 49 DevOps for PHP Slide 50 DevOps for PHP Slide 51 DevOps for PHP Slide 52 DevOps for PHP Slide 53 DevOps for PHP Slide 54 DevOps for PHP Slide 55 DevOps for PHP Slide 56 DevOps for PHP Slide 57 DevOps for PHP Slide 58 DevOps for PHP Slide 59 DevOps for PHP Slide 60 DevOps for PHP Slide 61 DevOps for PHP Slide 62 DevOps for PHP Slide 63 DevOps for PHP Slide 64 DevOps for PHP Slide 65 DevOps for PHP Slide 66 DevOps for PHP Slide 67 DevOps for PHP Slide 68 DevOps for PHP Slide 69 DevOps for PHP Slide 70 DevOps for PHP Slide 71 DevOps for PHP Slide 72 DevOps for PHP Slide 73 DevOps for PHP Slide 74 DevOps for PHP Slide 75 DevOps for PHP Slide 76 DevOps for PHP Slide 77 DevOps for PHP Slide 78 DevOps for PHP Slide 79 DevOps for PHP Slide 80 DevOps for PHP Slide 81 DevOps for PHP Slide 82 DevOps for PHP Slide 83
Upcoming SlideShare
11 tools for your PHP devops stack
Next
Download to read offline and view in fullscreen.

16 Likes

Share

Download to read offline

DevOps for PHP

Download to read offline

PHP

Related Books

Free with a 30 day trial from Scribd

See all

DevOps for PHP

  1. 1. DevOps for PHP Florian Anderiasch I October 28, 2011 © Mayflower GmbH 2010
  2. 2. Developer Ex-Admin DevOp? „I rant a lot“ @anderiasch stay in touch! Mayflower GmbH I 2
  3. 3. Do you know DevOps? Mayflower GmbH I 3
  4. 4. „These are cool tools!“ => „I'm doing DevOps now!“ Mayflower GmbH I 4
  5. 5. It's not about the tools! Mayflower GmbH I 5
  6. 6. It's about the culture! Mayflower GmbH I 6
  7. 7. Mayflower GmbH I 7
  8. 8. Coming from WebOps We often don't have much operations personnel. LAMP stack is our home Mayflower GmbH I 8
  9. 9. Learn from each other! Work together! Mayflower GmbH I 9
  10. 10. From ops to dev: repeatability change management monitoring provisioning Mayflower GmbH I 10
  11. 11. From dev to ops: unit tests version control agile methods Mayflower GmbH I 11
  12. 12. Why DevOps? Mayflower GmbH I 12
  13. 13. How many releases per year? Mayflower GmbH I 13
  14. 14. Some people do up to 60 per day Mayflower GmbH I 14
  15. 15. We're striving for one per day. For now. Mayflower GmbH I 15
  16. 16. We've come a long way Mayflower GmbH I 16
  17. 17. Development in the dark ages Mayflower GmbH I 17
  18. 18. Golden Image VMware/KVM Mayflower GmbH I 18
  19. 19. Copying files over FTP to a shared host Mayflower GmbH I 19
  20. 20. rsync /vcs checkout Mayflower GmbH I 20
  21. 21. Mayflower GmbH I 21
  22. 22. Hardware = Software = Configuration Mayflower GmbH I 22
  23. 23. OK, tools are important. Mayflower GmbH I 23
  24. 24. Bad news: they love ruby Mayflower GmbH I 24
  25. 25. Good news: There are DSLs Mayflower GmbH I 25
  26. 26. But in the end: It works Mayflower GmbH I 26
  27. 27. Going from: do X or Y Towards: I want state Z Mayflower GmbH I 27
  28. 28. Don't reinvent the wheel. Mayflower GmbH I 28
  29. 29. puppet modules apache, nginx, varnish php, ruby, tomcat mysql, pgsql, memcache Mayflower GmbH I 29
  30. 30. Monitoring Mayflower GmbH I 30
  31. 31. http://www.puppetlabs.com/puppet/related-projects/dashboard/ Mayflower GmbH I 31
  32. 32. Mayflower GmbH I 32
  33. 33. Vagrant I know how I want my servers to look like Let's replicate that for development as close as possible Mayflower GmbH I 33
  34. 34. Vagrant Based on VirtualBox automatically create VMs puppet or chef included Mayflower GmbH I 34
  35. 35. Vagrant Fully versioned configs On-Demand creation Developer Self Service Mayflower GmbH I 35
  36. 36. Getting started in 3 easy steps Mayflower GmbH I 36
  37. 37. Manage your setup with Vagrant and VeeWee (needs VirtualBox and Ruby) Mayflower GmbH I 37
  38. 38. $ gem install vagrant $ gem install veewee $ vagrant basebox templates $ vagrant basebox define 'natty' 'ubuntu-11.04-server-amd64' $ vagrant basebox build 'natty' $ vagrant basebox export natty $ vagrant box add 'natty' 'natty.box' Mayflower GmbH I 38
  39. 39. http://vagrantbox.es Mayflower GmbH I 39
  40. 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:~$ Mayflower GmbH I 40
  41. 41. Manage your configuration Mayflower GmbH I 41
  42. 42. Mayflower GmbH I 42
  43. 43. Chef or Puppet Mayflower GmbH I 43
  44. 44. - Configuration as Code - Client-only or Client-Server setup - backed by companies - officially supported by Amazon - tried and tested - good documentation - good, vibrant communities Mayflower GmbH I 44
  45. 45. - Chef is ruby code, puppet has a DSL - puppet has the bigger community - puppet has more documentation - but chef is catching up - puppet: europe, chef: USA - chef is more flexible - if you puppet, you don't know ruby and vice versa Mayflower GmbH I 45
  46. 46. - both know current configuration - you define your nodes (servers) - lots of community cookbooks/modules - easy to extend - templates - providers as platform abstractions (e.g. apt-get/ports/yum) Mayflower GmbH I 46
  47. 47. There's no „better“ tool. But we prefer puppet. Less Ruby ;) Mayflower GmbH I 47
  48. 48. user { 'florian': ensure => present, uid => '507', gid => 'admin', shell => '/bin/bash', home => '/home/florian', managehome => true, } Mayflower GmbH I 48
  49. 49. user „florian“ do username „florian“ password „$1$P$WXmqrQEVj88fVTHevErxq.“ shell „/bin/bash“ system true supports :manage_home => true end Mayflower GmbH I 49
  50. 50. Back to Vagrant Mayflower GmbH I 50
  51. 51. Vagrant::Config.run do |config| config.vm.box = „natty“ end Mayflower GmbH I 51
  52. 52. $ cat Vagrantfile Vagrant::Config.run do |config| config.vm.provision :puppet, :module_path => „modules“ do |puppet| puppet.manifests_path = „manifests“ puppet.manifest_file = „development.pp“ end config.vm.define :web do |web_config| web_config.vm.box = „natty“ web_config.vm.host_name = „webserver01“ web_config.vm.network „33.33.33.10“ web_config.vm.forward_port „http“,80,8080 web_config.vm.port „ssh“,22,2222 web_config.vm.share_folder „v- data“,“/srv/www“,“../silex-demo“ end end Mayflower GmbH I 52
  53. 53. $ cat manifests/development.pp import „classes/*“ node „webserver01“ { include web } node „dbserver01“ { include db } node „ciserver01“ { include ci } Mayflower GmbH I 53
  54. 54. $ cat manifests/classes/web.pp class web inherits basenode { include apache include apache::php apache::vhost { 'silex-demo.local': port => '80', docroot => '/srv/www/docroot', } package { ['mysql-client','php5-cli',...]: ensure => present, } } Mayflower GmbH I 54
  55. 55. $ cat manifests/classes/ci.pp class ci inherits basenode { include apache include apache::php exec { 'pear-autodiscover': command => '/usr/bin/pear config-set auto_discover 1', } package{ ['pear.phpunit.de/PHP_CodeBrowser',...]: ensure => latest, provider => 'pear', require => Exec['pear-autodiscover'], } } Mayflower GmbH I 55
  56. 56. Make the configuration part of your source code Mayflower GmbH I 56
  57. 57. . |-- application |-- data |-- docs |-- library |-- public |-- scripts | |-- jobs | |-- build | -- configuration | |-- Vagrantfile | |-- manifests | -- modules |-- temp -- tests Mayflower GmbH I 57
  58. 58. Why did I do that? Mayflower GmbH I 58
  59. 59. Simple Failsafe Fast Setup Repeatable Consistent Self-Service Mayflower GmbH I 59
  60. 60. No more golden images! Mayflower GmbH I 60
  61. 61. No more USB sticks! Mayflower GmbH I 61
  62. 62. Just one directory in your vcs Mayflower GmbH I 62
  63. 63. Machine Life Cycle Management: Foreman Mayflower GmbH I 63
  64. 64. A frontend for puppet Shows the system inventory Create new machines Provisioning Mayflower GmbH I 64
  65. 65. Mayflower GmbH I 65
  66. 66. Mayflower GmbH I 66
  67. 67. I want more! Like 20+ Mayflower GmbH I 67
  68. 68. McCloud wrapper around Vagrant and Fog transparent local & cloud usage Mayflower GmbH I 68
  69. 69. I want more! Like 500... Mayflower GmbH I 69
  70. 70. mCollective ssh-for-loop on steroids fast management for loads of servers uses puppet/facter, MQ-based Mayflower GmbH I 70
  71. 71. $ 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 Mayflower GmbH I 71
  72. 72. DevOps @Mayflower Mayflower GmbH I 72
  73. 73. 1-2 „admins“ per team Mayflower GmbH I 73
  74. 74. Operations and Development Mayflower GmbH I 74
  75. 75. Working hand in hand with company admins Mayflower GmbH I 75
  76. 76. Got root? Yes. Mayflower GmbH I 76
  77. 77. 1+n puppetmaster 1 central n teams Mayflower GmbH I 77
  78. 78. Example setup: puppetmaster 10 developer VMs Jenkins 4x Staging (eucalyptus) 4x Live (Amazon) Mayflower GmbH I 78
  79. 79. More tools: gitorious eucalyptus cloud proxmox Mayflower GmbH I 79
  80. 80. In the works: Vagrant Scrum => Kanban Puppet + Nagios Mayflower GmbH I 80
  81. 81. Questions? Mayflower GmbH I 81
  82. 82. Thanks for listening! Contact Florian Anderiasch florian.anderiasch@mayflower.de +49 89 242054 1134 @anderiasch Mayflower GmbH Mannhardtstrasse 6 29.10.11 80538 München Mayflower GmbH 82
  83. 83. Images Domo-Kun(5) http://www.hawaiikawaii.net/2011/domo-kun-wallpaper-on-my-desktop/ Domo-Kun(6), Nina Helmer, CC-BY-NC-ND http://www.flickr.com/photos/origami_potato/3242174542/ Clouds (21), John Mueller, CC-BY-NC-ND http://www.flickr.com/photos/johnmueller/52621490/ Domo-Kun (23) http://i572.photobucket.com/albums/ss163/xxLoveorDie54xx/OMG-Its-Domo-kun.jpg puppet-dashboard (31) http://puppetlabs.com/puppet/related-projects/dashboard/ Mayflower GmbH I 83
  • avandrevitor

    Dec. 8, 2016
  • FabioZeri

    Nov. 8, 2016
  • planetoid

    Mar. 20, 2015
  • plttlqh

    Feb. 26, 2015
  • TomaszNowodzinski

    Oct. 29, 2014
  • akhateeb

    Aug. 14, 2014
  • egorpe

    Jul. 27, 2014
  • webstyle

    Jun. 5, 2013
  • jomanlk

    Mar. 24, 2013
  • koryonik

    Feb. 4, 2013
  • MatthiasEtienne

    Jan. 18, 2013
  • vasanthperiyasamy

    Dec. 11, 2012
  • myselfhimself

    Nov. 15, 2012
  • jackwen

    Apr. 27, 2012
  • JohanJanssens

    Feb. 26, 2012
  • mattsches

    Nov. 15, 2011

PHP

Views

Total views

7,421

On Slideshare

0

From embeds

0

Number of embeds

97

Actions

Downloads

92

Shares

0

Comments

0

Likes

16

×