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.

Agile in the Coud

1,686 views

Published on

Thoughtworks and AWS co-presentation on Agile Development in the Cloud

Published in: Technology
  • Be the first to comment

Agile in the Coud

  1. 1. Agile in the cloud Think BIG. Start small. Scale Fast!
  2. 2. introductions Andy Marks Joe ZieglerTechnical Principal Evangelist @andee_marks @jiyosub
  3. 3. definitions Cloud AgileManaged web services Optimising for rapid response to changeElastic computing andstorage High technical disciplinePay-as-you-go pricing model Ruthless automation
  4. 4. agenda Automated testingContinuous IntegrationInfrastructure as code Continuous Delivery
  5. 5. scope breadthdepth
  6. 6. scope breadth Automated testing Continuous Integration Infrastructure as code Continuous Deliverydepth
  7. 7. scope breadth Automated testing Continuous Integration Infrastructure as code Continuous Deliverydepth
  8. 8. our stack
  9. 9. our app
  10. 10. our app
  11. 11. our app
  12. 12. our app
  13. 13. Automated testingContinuous IntegrationInfrastructure as code Continuous Delivery
  14. 14. purpose
  15. 15. typesSource: http://www.agiletester.ca/downloads/Chapter__9x_Quadrant_Summary_v3.pdf
  16. 16. testing... in the cloud
  17. 17. testing... in the cloud unit
  18. 18. testing... in the cloud unit integration
  19. 19. testing... in the cloud unit integration functional
  20. 20. testing... in the cloud unit integration functional performance
  21. 21. demo
  22. 22. EC2 Instance ContentsPypoll demo app EC2 Instance ContentsInternet AWS Cloud
  23. 23. EC2 Instance Contents #1 clones from Pypoll demo appPypoll demo app EC2 Instance ContentsInternet AWS Cloud
  24. 24. #2 spawns EC2 Instance Contents Instances #1 clones from Pypoll demo appPypoll demo app EC2 Instance ContentsInternet AWS Cloud
  25. 25. #2 spawns EC2 Instance Contents Instances #3 attacks #1 clones from Pypoll demo appPypoll demo app EC2 Instance ContentsInternet AWS Cloud
  26. 26. #2 spawns EC2 Instance Contents Instances #3 attacks #1 clones from Pypoll demo #4 monitor appPypoll demo app Amazon CloudWatch EC2 Instance ContentsInternet AWS Cloud
  27. 27. hypothesis testing
  28. 28. further readinggithub.com/newsapps/beeswithmachinegunsgithub.com/andeemarks/pypoll
  29. 29. Automated testingContinuous Integration Infrastructure as code Continuous Delivery
  30. 30. introduction
  31. 31. introduction
  32. 32. consider this“Without continuous integration, yoursoftware is broken until somebody proves itworks” - “Continuous Delivery”
  33. 33. prerequisites
  34. 34. prerequisites1. Source control
  35. 35. prerequisites1. Source control2. CI server
  36. 36. prerequisites1. Source control2. CI server3. Automated evaluation of “quality”
  37. 37. basic workflowSource: http://www.falafel.com/testcomplete/continuous_integration.aspx
  38. 38. basic workflowSource: http://www.falafel.com/testcomplete/continuous_integration.aspx
  39. 39. basic workflowSource: http://www.falafel.com/testcomplete/continuous_integration.aspx
  40. 40. basic workflowSource: http://www.falafel.com/testcomplete/continuous_integration.aspx
  41. 41. basic workflowSource: http://www.falafel.com/testcomplete/continuous_integration.aspx
  42. 42. basic workflowSource: http://www.falafel.com/testcomplete/continuous_integration.aspx
  43. 43. demo
  44. 44. Pypoll demo app EC2 Instance ContentsInternet EC2 Instance Contents AWS Cloud
  45. 45. Pypoll demo app EC2 Instance Contents #1 manage slaveInternet EC2 Instance Contents AWS Cloud
  46. 46. #2 pollsPypoll demo app EC2 Instance Contents #1 manage slaveInternet EC2 Instance Contents AWS Cloud
  47. 47. #2 pollsPypoll demo app EC2 Instance Contents #3 installs #1 manage slave fromInternet EC2 Instance Contents AWS Cloud
  48. 48. #2 pollsPypoll demo app EC2 Instance Contents #3 installs #1 manage slave fromInternet #4 run tests EC2 Instance Contents AWS Cloud
  49. 49. further reading http://jenkins-ci.org/http://martinfowler.com/articles/continuousIntegration.html
  50. 50. Automated testingContinuous IntegrationInfrastructure as code Continuous Delivery
  51. 51. definition “Programmaticprovisioning by API”
  52. 52. levels of maturity •Programmatic •Scripted•Manual
  53. 53. levels of maturity •Programmatic •Scripted ☝Speed ☝Repeatability ☝Reliability ☟Risk•Manual
  54. 54. activities 3. Launch 2. Configuration 1. Bootstrapping
  55. 55. activities 3. Launch 2. Configuration•Base OS•Compute 1. Bootstrapping•Storage•Network•Hardware
  56. 56. activities 3. Launch•Behaviour 2. Configuration•State•Base OS•Compute 1. Bootstrapping•Storage•Network•Hardware
  57. 57. puppet
  58. 58. puppet1. declare configuration
  59. 59. puppet1. declare configuration2. apply configuration
  60. 60. puppet1. declare configuration2. apply configuration3. (time passes)...
  61. 61. puppet1. declare configuration2. apply configuration3. (time passes)...4. verify configuration
  62. 62. puppet1. declare configuration2. apply configuration3. (time passes)...4. verify configuration5. re-apply configuration
  63. 63. puppet1. declare configuration2. apply configuration3. (time passes)...4. verify configuration5. re-apply configuration • if needed
  64. 64. demo
  65. 65. Pypoll demoEC2 Instance Contents EC2 Instance Contents polls Pypoll infra Pypoll demo Internet
  66. 66. Pypoll demoEC2 Instance Contents EC2 Instance Contents #1 clones from polls Pypoll infra Pypoll demo Internet
  67. 67. Pypoll demo #2 applyEC2 Instance Contents EC2 Instance Contents #1 clones from polls Pypoll infra Pypoll demo Internet
  68. 68. Pypoll demo #2 apply #3 configureEC2 Instance Contents EC2 Instance Contents #1 clones from polls Pypoll infra Pypoll demo Internet
  69. 69. Pypoll demo #2 apply #3 configureEC2 Instance Contents EC2 Instance Contents #1 clones from polls #4 install Pypoll infra Pypoll demo Internet
  70. 70. further reading• http://puppetlabs.com
  71. 71. Automated testingContinuous IntegrationInfrastructure as code Continuous Delivery
  72. 72. pre-requisitesconfidence ➡ codebaseconfidence ➡ environmentsmall batch sizesruthless automation
  73. 73. advanced CI pipelines Source: Continuous Delivery
  74. 74. demo
  75. 75. emo EC2 Instance Contentsernet Instances AWS Cloud
  76. 76. emo EC2 Instance Contents #1 publish artifacternet Bucket with Objects Instances AWS Cloud
  77. 77. #2 promote to stagingemo EC2 Instance Contents #1 publish artifact EC2 Instance Contentsernet Bucket with Objects Instances AWS Cloud
  78. 78. #2 promote to stagingemo #3 install #1 publish artifact EC2 Instance Contents EC2 Instance Contents artifacternet Bucket with Objects Instances AWS Cloud
  79. 79. #2 promote to stagingemo #3 install #1 publish artifact EC2 Instance Contents EC2 Instance Contents artifacternet #4 publish Bucket artifact with Objects Instances Bucket with Objects AWS Cloud
  80. 80. #2 promote to stagingemo #3 install #1 publish artifact EC2 Instance Contents EC2 Instance Contents artifacternet #5 promote to prod #4 publish Bucket artifact with Objects Instances EC2 Instance Contents Bucket with Objects AWS Cloud
  81. 81. #2 promote to stagingemo #3 install #1 publish artifact EC2 Instance Contents EC2 Instance Contents artifacternet #5 promote to prod #4 publish Bucket artifact with Objects Instances #6 install EC2 Instance Contents Bucket artifact with Objects AWS Cloud
  82. 82. @ scale
  83. 83. @ scaleSource: http://code.flickr.com/
  84. 84. further reading
  85. 85. conclusion Automated testingContinuous Integration Infrastructure as code Continuous Delivery
  86. 86. conclusion Automated testing Managed web servicesContinuous Integration Elastic computing and storage Infrastructure as code Pay-as-you-go pricing model Continuous Delivery
  87. 87. conclusionAutomated testing Managed web servicesContinuous Integration Elastic computing and storage Infrastructure as code Pay-as-you-go pricing model Continuous Delivery
  88. 88. conclusion Automated testing Managed web servicesContinuous Integration Elastic computing and storage Infrastructure as code Pay-as-you-go pricing model Continuous Delivery
  89. 89. conclusion Automated testing Managed web services Continuous Integration Elastic computing and storageInfrastructure as code Pay-as-you-go pricing model Continuous Delivery
  90. 90. conclusion Automated testing Managed web services Continuous Integration Elastic computing and storage Infrastructure as codeContinuous Delivery Pay-as-you-go pricing model
  91. 91. Questions?

×