CI for the world - Agile 2011

  • 12,117 views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
12,117
On Slideshare
0
From Embeds
0
Number of Embeds
5

Actions

Shares
Downloads
32
Comments
0
Likes
2

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Continuous Integration for the worldTuesday 6 September 2011
  • 2. Agile Code & Agile InfrastructureTuesday 6 September 2011
  • 3. Caveat:Your brain might hurt after this sessionTuesday 6 September 2011
  • 4. Patrick Debois • Belgium • @patrickdebois • http://jedi.be/blog & http://cutter.com • Organizer of devopsdaysTuesday 6 September 2011
  • 5. Julian Simpson • New Zealand/UK • @builddoctor • http://www.build-doctor.com/Tuesday 6 September 2011
  • 6. Tuesday 6 September 2011
  • 7. Continuous integration with Jenkins - JavaWorldTuesday 6 September 2011
  • 8. Infrastructure as codeTuesday 6 September 2011
  • 9. application ruby,java,... configuration mgt puppet,chef,... operating system linux, windows,.. (virtual)server xen,vmware,... fabric lb,storage,firewallTuesday 6 September 2011
  • 10. Just Enough Operating SystemTuesday 6 September 2011
  • 11. Veewee demo http://www.youtube.com/watch?v=gR28-aHX_nU https://github.com/jedi4ever/veeweeTuesday 6 September 2011
  • 12. **! What just happened?Tuesday 6 September 2011
  • 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. Version ControlTuesday 6 September 2011
  • 15. Archiving ArtefactsTuesday 6 September 2011
  • 16. Tuesday 6 September 2011
  • 17. Vagrant demo http://www.youtube.com/watch?v=O_FiL1yb6_s http://vagrantup.com/Tuesday 6 September 2011
  • 18. It works on my machine syndromeTuesday 6 September 2011
  • 19. Configuration Mgmt http://www.opscode.com/ http://www.puppetlabs.com/Tuesday 6 September 2011
  • 20. No more ‘Bob’ DirectoryTuesday 6 September 2011
  • 21. IdempotentTuesday 6 September 2011
  • 22. https://github.com/opscode/cookbooksTuesday 6 September 2011
  • 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. $ cat chefrepo/site-cookbooks/onepage/templates/default/ index_page.erb I am <%= node[:onepage][:name] %>Tuesday 6 September 2011
  • 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. Chef Demo http://www.youtube.com/watch?v=XRvhXLOKerQTuesday 6 September 2011
  • 27. Code smells Server smellsTuesday 6 September 2011
  • 28. SSH Login considered harmfulTuesday 6 September 2011
  • 29. IDE’s https://github.com/cloudsmith/gepetto http://reactor8.com/Tuesday 6 September 2011
  • 30. Disposable InfrastructureTuesday 6 September 2011
  • 31. Re-build vs PatchingTuesday 6 September 2011
  • 32. Cucumber Nagios Demo http://www.youtube.com/watch?v=b5RwnuIEaJI http://auxesis.github.com/cucumber-nagios/Tuesday 6 September 2011
  • 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. **! What just happened?Tuesday 6 September 2011
  • 35. Build Package Test SOURCE BINARY BINARY APP APP CODE Chef/Puppet Lucid64.box Ruby Cookbook JEOS Vagrantfile Virtual MachineTuesday 6 September 2011
  • 36. A shared language helps in understanding each otherTuesday 6 September 2011
  • 37. Pairing admins + devsTuesday 6 September 2011
  • 38. Mccloud demo http://www.youtube.com/watch?v=2ixTk4Uj23c https://github.com/jedi4ever/mccloud/Tuesday 6 September 2011
  • 39. **! What just happened?Tuesday 6 September 2011
  • 40. Re-Use Tools/Code Across EnvinronmentsTuesday 6 September 2011
  • 41. Decrease Setup-Time Cycle-TimeTuesday 6 September 2011
  • 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. 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. Production begins in DevelopmentTuesday 6 September 2011
  • 45. Thank you!Tuesday 6 September 2011