CI for the world - Agile 2011

0 views
12,570 views

Published on

Published in: Technology, News & Politics
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
0
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
35
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

CI for the world - Agile 2011

  1. 1. Continuous Integration for the worldTuesday 6 September 2011
  2. 2. Agile Code & Agile InfrastructureTuesday 6 September 2011
  3. 3. Caveat:Your brain might hurt after this sessionTuesday 6 September 2011
  4. 4. Patrick Debois • Belgium • @patrickdebois • http://jedi.be/blog & http://cutter.com • Organizer of devopsdaysTuesday 6 September 2011
  5. 5. Julian Simpson • New Zealand/UK • @builddoctor • http://www.build-doctor.com/Tuesday 6 September 2011
  6. 6. Tuesday 6 September 2011
  7. 7. Continuous integration with Jenkins - JavaWorldTuesday 6 September 2011
  8. 8. Infrastructure as codeTuesday 6 September 2011
  9. 9. application ruby,java,... configuration mgt puppet,chef,... operating system linux, windows,.. (virtual)server xen,vmware,... fabric lb,storage,firewallTuesday 6 September 2011
  10. 10. Just Enough Operating SystemTuesday 6 September 2011
  11. 11. Veewee demo http://www.youtube.com/watch?v=gR28-aHX_nU https://github.com/jedi4ever/veeweeTuesday 6 September 2011
  12. 12. **! What just happened?Tuesday 6 September 2011
  13. 13. Build Package Test SOURCE BINARY BINARY Chef/PuppetDefinition.rb RubyPostinstall.sh JEOS Lucid64.box Preseed.cfg Virtual Ubuntu.iso MachineTuesday 6 September 2011
  14. 14. Version ControlTuesday 6 September 2011
  15. 15. Archiving ArtefactsTuesday 6 September 2011
  16. 16. Tuesday 6 September 2011
  17. 17. Vagrant demo http://www.youtube.com/watch?v=O_FiL1yb6_s http://vagrantup.com/Tuesday 6 September 2011
  18. 18. It works on my machine syndromeTuesday 6 September 2011
  19. 19. Configuration Mgmt http://www.opscode.com/ http://www.puppetlabs.com/Tuesday 6 September 2011
  20. 20. No more ‘Bob’ DirectoryTuesday 6 September 2011
  21. 21. IdempotentTuesday 6 September 2011
  22. 22. https://github.com/opscode/cookbooksTuesday 6 September 2011
  23. 23. Recipe (simple APP = 1 web page) 1 include_recipe "apache2" 2 3 template "/var/www/index.html" do 4 owner "www-data" 5 group "www-data" 6 source "index_page.erb" 7 mode 0644 8 endTuesday 6 September 2011
  24. 24. $ cat chefrepo/site-cookbooks/onepage/templates/default/ index_page.erb I am <%= node[:onepage][:name] %>Tuesday 6 September 2011
  25. 25. 51 config.vm.provision :chef_solo do |chef| 52 chef.cookbooks_path = [ "chefrepo/cookbooks", "chefrepo/site-cookbooks"] 53 chef.add_recipe "apache2" 54 chef.add_recipe "onepage" 55 chef.json.merge!( {:onepage => { :name => "masterof my app."} }) 56 endTuesday 6 September 2011
  26. 26. Chef Demo http://www.youtube.com/watch?v=XRvhXLOKerQTuesday 6 September 2011
  27. 27. Code smells Server smellsTuesday 6 September 2011
  28. 28. SSH Login considered harmfulTuesday 6 September 2011
  29. 29. IDE’s https://github.com/cloudsmith/gepetto http://reactor8.com/Tuesday 6 September 2011
  30. 30. Disposable InfrastructureTuesday 6 September 2011
  31. 31. Re-build vs PatchingTuesday 6 September 2011
  32. 32. Cucumber Nagios Demo http://www.youtube.com/watch?v=b5RwnuIEaJI http://auxesis.github.com/cucumber-nagios/Tuesday 6 September 2011
  33. 33. Feature: Demonstration In order to demonstrate cucumber nagios As a presenter at Agile 2011 I want to test some text on a page Scenario: Find some text on a page   When I go to "http://192.168.0.1:4567/" Then I should see "^I am .+"Tuesday 6 September 2011
  34. 34. **! What just happened?Tuesday 6 September 2011
  35. 35. Build Package Test SOURCE BINARY BINARY APP APP CODE Chef/Puppet Lucid64.box Ruby Cookbook JEOS Vagrantfile Virtual MachineTuesday 6 September 2011
  36. 36. A shared language helps in understanding each otherTuesday 6 September 2011
  37. 37. Pairing admins + devsTuesday 6 September 2011
  38. 38. Mccloud demo http://www.youtube.com/watch?v=2ixTk4Uj23c https://github.com/jedi4ever/mccloud/Tuesday 6 September 2011
  39. 39. **! What just happened?Tuesday 6 September 2011
  40. 40. Re-Use Tools/Code Across EnvinronmentsTuesday 6 September 2011
  41. 41. Decrease Setup-Time Cycle-TimeTuesday 6 September 2011
  42. 42. external *.jar repo download testsource compile compiled package library*.java *.class *.jar internal install install repo testsource compile compiled package library*.java *.class *.jar test testsource compile compiled package application deploy application*.java *.class *.war runtime jvm middleware test test source package library configuration mgt pkg,config, ... recipes cookbooksbootstrap install bootstrap config mgmt tool test source pxe installed package images test internal os provision jeospreseed base vm ami,box repo source installed images download *.jar *.rpm (virtual) init.d *.iso external *.ami server *.rpm repo *.ova source cloud orchestration (cloud) formation fabric provision infrastructureTuesday 6 September 2011
  43. 43. rundesk pie Just Enough deployinator Coordination cfengine puppet Just Enough chef Infrastructure Code Just Enough fog Operating System (ruby) amazon Cloud Public boto API’s rackspace Abstraction (python) Cloud mccloud library CLI’s vcloud jclouds ... (java) xen Compute kvm Private Storage libvirt API’s Cloud lxc Network ‘Private’Cloud CLI’s Abstraction library vsphere ... vm player Laptop vagrant fusion Cloud virtualbox ... Just Enough veewee Image BuildingTuesday 6 September 2011
  44. 44. Production begins in DevelopmentTuesday 6 September 2011
  45. 45. Thank you!Tuesday 6 September 2011

×