Entwicklung mit Chef„Oh, unser Server hat sich eben neu installiert“
Ich..Florian HolzhauerTwitter: @fholzhauerSeit Januar Head of Engineering bei Digital Pioneers N.V.PHP-Freelancer, primär ...
Digital Pioneers• „ist eine börsennotierte Beteiligungsgesellschaft“• entwickelt eine Handvoll Startup-Prototypen pro Jahr...
Klassische Entwicklungsumgebung• VMware, VirtualBox, Parallels   Mutiert irgendwie rum• XAMPP & Co   Entwickler-OS reflekt...
Entwicklungsgrundsätze• Automatisiertes Testen• Continuous Testing• Versionierung (github ftw!)• Automatisches Deployment ...
Chef(*) to the rescue!   „Chef is an open-source systems integration framework built   specifically for automating the clo...
Chef Features• Administration als Ruby-Codemodule („Cookbooks“)   nur einfaches Ruby-Subset relevant• Sensitive Credential...
Vagrant• Chef-Setup in Virtualbox ausführen• Konfiguration in einem Textfile• Installiert VM, führt anschliessend Chef-Scr...
„Demo“fh$ vagrant up[default] Importing base box lucid64...[default] Forwarding ports...[default] -- 22 => 2222 (adapter 1...
VagrantfileVagrant::Config.run do |config|  config.vm.box = "lucid64"  config.vm.forward_port 8080, 8080  config.vm.share_...
Cookbook-Repository für alle Projekte                                        11
..und live? Scalarium!                         12
Autoskalierung, Serverfarm                             13
One-Click-Deploy                   14
Work in progress• Jenkins Tests in Vagrantbox• Directory-Sharing bei Vagrant: Wahl zwischen Pest und Cholera   vboxfs ist ...
Sinnvoll?• Einarbeitungszeit minimal• Hemmschwelle „Umgebungsreset“ klein• Gleicher Stand in allen Projekten• Änderungen a...
Demo, Fragen?              http://www.opscode.com/chef/                  http://vagrantup.com/                http://www.s...
Upcoming SlideShare
Loading in …5
×

Entwicklung mit Chef und Vagrant - PHPUG HH

1,957 views
1,856 views

Published on

Published in: Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,957
On SlideShare
0
From Embeds
0
Number of Embeds
292
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Entwicklung mit Chef und Vagrant - PHPUG HH

  1. 1. Entwicklung mit Chef„Oh, unser Server hat sich eben neu installiert“
  2. 2. Ich..Florian HolzhauerTwitter: @fholzhauerSeit Januar Head of Engineering bei Digital Pioneers N.V.PHP-Freelancer, primär BackendSlideshare: 2
  3. 3. Digital Pioneers• „ist eine börsennotierte Beteiligungsgesellschaft“• entwickelt eine Handvoll Startup-Prototypen pro Jahr• Prototyp wird von einem Team von ~5 Personen entwickelt• „irgendwas mit Web“ - PHP, Ruby, Mobile• Mit neuer Technik experimentieren Erfahrungswerte auch für Beteiligungen 3
  4. 4. Klassische Entwicklungsumgebung• VMware, VirtualBox, Parallels Mutiert irgendwie rum• XAMPP & Co Entwickler-OS reflektiert nicht Produktion• Entwickler-Server Unterwegs arbeiten? Updates? Sync? Shared? 4
  5. 5. Entwicklungsgrundsätze• Automatisiertes Testen• Continuous Testing• Versionierung (github ftw!)• Automatisches Deployment ...aber Frickelkram beim Setup? 5
  6. 6. Chef(*) to the rescue! „Chef is an open-source systems integration framework built specifically for automating the cloud. Because it combines the fundamental elements of configuration management and service oriented architectures with the full power of Ruby, Chef makes it easy to create an elegant, fully automated infrastructure.“ http://www.opscode.com/chef/(*) Alternativ: Puppet. 6
  7. 7. Chef Features• Administration als Ruby-Codemodule („Cookbooks“) nur einfaches Ruby-Subset relevant• Sensitive Credentials externalisierbar Cookbooks problemlos öffentlich sichtbar• Automatisiert, Reproduzierbar, Skalierbar, Versionierbar. 7
  8. 8. Vagrant• Chef-Setup in Virtualbox ausführen• Konfiguration in einem Textfile• Installiert VM, führt anschliessend Chef-Scripte aus 8
  9. 9. „Demo“fh$ vagrant up[default] Importing base box lucid64...[default] Forwarding ports...[default] -- 22 => 2222 (adapter 1)[default] -- 80 => 8080 (adapter 1)[default] -- 27017 => 27017 (adapter 1) Hallo nodejs :-)[default] Creating shared folders metadata...[default] Booting VM...[default] VM booted and ready for use![default] Mounting shared folders...[default] Running provisioner: Vagrant::Provisioners::ChefSolo...[default] Generating chef JSON and uploading...[default] Running chef-solo...(...)[Tue, 12 Jun 2012 15:53:46 +0200] INFO: Chef Run complete in 1435.381366 seconds[Tue, 12 Jun 2012 15:53:46 +0200] INFO: Running report handlers[Tue, 12 Jun 2012 15:53:46 +0200] INFO: Report handlers completefh-dp:vagrant fh$ vagrant sshLinux lucid64 2.6.32-33-server #70-Ubuntu SMPUbuntu 10.04.3 LTSWelcome to the Ubuntu Server!vagrant@lucid64:~$ 9
  10. 10. VagrantfileVagrant::Config.run do |config|  config.vm.box = "lucid64"  config.vm.forward_port 8080, 8080  config.vm.share_folder("webdev","/var/www","../webapp", :extra => "uid=33")  config.vm.provision :chef_solo do |chef|     chef.cookbooks_path = "../../cookbooks"     chef.add_recipe "nginx"     chef.add_recipe "php"     chef.add_recipe "php::module_xdebug"     chef.add_recipe "symfony"     chef.add_recipe "website::vagrant"     chef.json.merge!({        :environment => {          :symfony => {            :environment => dev,            :debug => true        }      }    })  endend --verbose: https://gist.github.com/2462747 10
  11. 11. Cookbook-Repository für alle Projekte 11
  12. 12. ..und live? Scalarium! 12
  13. 13. Autoskalierung, Serverfarm 13
  14. 14. One-Click-Deploy 14
  15. 15. Work in progress• Jenkins Tests in Vagrantbox• Directory-Sharing bei Vagrant: Wahl zwischen Pest und Cholera vboxfs ist doof. nfs auch.• xdebug hakelig• Dokumentation teilweise spärlich• Interaktion von aussen mit der Vagrantbox nervig vagrant ssh -c ‘sudo sudo -u www-data ant phpunit‘ 15
  16. 16. Sinnvoll?• Einarbeitungszeit minimal• Hemmschwelle „Umgebungsreset“ klein• Gleicher Stand in allen Projekten• Änderungen am Systemsetup extrem einfach umsetzbar• Live-Infrastruktur-Setup in 15 Minuten runderneuert Auto-Heal! 16
  17. 17. Demo, Fragen? http://www.opscode.com/chef/ http://vagrantup.com/ http://www.scalarium.com/ https://github.com/digitalpioneers/public-cookbooks http://digitalpioneers.de/jobs/ 17

×