Continuous Delivery                               @jezhumble                               #Agile2012, 15 August 2012     ...
agile 101                                      "Agile" team                                   Analysis + Design         Ce...
web 2.0                 disrupting traditional businesses                                                 http://code.flic...
releasing frequently                 build the right thing                                                           Custo...
innovate                            You cant just ask                              customers what                         ...
scientific method                                                             Ideas                 create hypothesis     ...
ask this question        “How long would it take your        organization to deploy a change that        involved just one...
releasing frequently                 build the right thing                 reduce risk of release                         ...
optimize for mtrsThursday, August 16, 12
optimize for mtrs                          MTBF            MTRSThursday, August 16, 12
releasing frequently                 build the right thing                 reduce risk of release                 real pro...
agile manifesto                 Our highest priority is to satisfy                 the customer through early and         ...
production-ready software                 Fast, automated feedback on                 the production readiness of         ...
continuous delivery                 Software always production ready                 Releases tied to business needs, not ...
continuous delivery                 automation                 patterns and practices                 collaborationThursda...
ingredients                 configuration management                 continuous integration                 automated test...
Local               Develop                           Workstation                                            Mainline Serv...
Local               Develop                            Workstation                Everyone Commits                        ...
build quality in                               “Cease dependence on                               mass inspection to      ...
different kinds of testing                                                                   Business facing               ...
deployment pipeline                 an automated implementation of your                 system’s build, deploy, test, rele...
deployment pipeline                          Delivery team         Version control              Build & unit           Aut...
deployment pipelineThursday, August 16, 12
deployment pipelineThursday, August 16, 12
reducing release risk                 automate provisioning and deployment                 ensure devs, testers and ops co...
reducing release risk                 devops                 incrementalism                 decoupling deployment and rele...
devops                             culture                           automation                          measurement      ...
feature toggles                blue-green deployments                                                  canary releases    ...
DEPENDENT SERVICE                                                    1.0         1.1                      Database        ...
blue-green                          deploymentsThursday, August 16, 12
router                                    web      app       DB                                   server   server   server...
v1.1     v1.1     v1.1                          router                                    web      app       DB           ...
v1.1     v1.1     v1.1                          router                                    v1.2     v1.2     v1.2          ...
v1.1     v1.1     v1.1                          router                                    v1.2     v1.2     v1.2          ...
Canary ReleasingThursday, August 16, 12
Thursday, August 16, 12
Thursday, August 16, 12
canary releasing                 Reduce risk of release                 Multi-variant testing                 Performance ...
immune system                          what if someone replaced your                          “buy” button with spacer.gif...
release !=                          deploymentThursday, August 16, 12
feature toggles                   Config File             [featureToggles]             wobblyFoobars: true                ...
Dark LaunchingThursday, August 16, 12
Thursday, August 16, 12
Thursday, August 16, 12
enterprise governance   risk management   SOX, ITIL, COBIT   segregation of duties   change management   auditing and comp...
people are the key                 Get everyone together at the beginning                 Keep meeting                 Mak...
questions        jez@thoughtworks.com        http://continuousdelivery.com/        @jezhumble #continuousdelivery         ...
Upcoming SlideShare
Loading in...5
×

Continuous delivery agile_2012

680

Published on

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
680
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
38
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Continuous delivery agile_2012

  1. 1. Continuous Delivery @jezhumble #Agile2012, 15 August 2012 http://thoughtworks-studios.com/Thursday, August 16, 12
  2. 2. agile 101 "Agile" team Analysis + Design Centralized QA IT Operations Development Integration + QA Release and operation Customer Testing + Showcase Iteration 0 1 2 3 4 The "last mile"Thursday, August 16, 12
  3. 3. web 2.0 disrupting traditional businesses http://code.flickr.com/Thursday, August 16, 12
  4. 4. releasing frequently build the right thing Customer developent Agile product development Eric Ries, “The Lean Startup” http://bit.ly/8ZoX5FThursday, August 16, 12
  5. 5. innovate You cant just ask customers what they want and then try to give that to them. By the time you get it built, theyll want something new. Steve JobsThursday, August 16, 12
  6. 6. scientific method Ideas create hypothesis Learn Build deliver minimum viable product Data Code get feedback Measure (repeat) Eric Ries, “The Lean Startup” http://bit.ly/8ZoX5FThursday, August 16, 12
  7. 7. ask this question “How long would it take your organization to deploy a change that involved just one single line of code? Do you do this on a repeatable, reliable basis?” Mary and Tom Poppendieck, Implementing Lean Software Development, p59.Thursday, August 16, 12
  8. 8. releasing frequently build the right thing reduce risk of release John Allspaw: “Ops Metametrics” http://slidesha.re/dsSZIrThursday, August 16, 12
  9. 9. optimize for mtrsThursday, August 16, 12
  10. 10. optimize for mtrs MTBF MTRSThursday, August 16, 12
  11. 11. releasing frequently build the right thing reduce risk of release real project progressThursday, August 16, 12
  12. 12. agile manifesto Our highest priority is to satisfy the customer through early and continuous delivery of valuable softwareThursday, August 16, 12
  13. 13. production-ready software Fast, automated feedback on the production readiness of your applications every time there is a change - to code, infrastructure, or configurationThursday, August 16, 12
  14. 14. continuous delivery Software always production ready Releases tied to business needs, not operational constraintsThursday, August 16, 12
  15. 15. continuous delivery automation patterns and practices collaborationThursday, August 16, 12
  16. 16. ingredients configuration management continuous integration automated testingThursday, August 16, 12
  17. 17. Local Develop Workstation Mainline Server Build pull Build Build ✔ Done! pushThursday, August 16, 12
  18. 18. Local Develop Workstation Everyone Commits Mainline Server Build To the pull Mainline Build Every Day Build ✔ Done! pushThursday, August 16, 12
  19. 19. build quality in “Cease dependence on mass inspection to achieve quality. Improve the process and build quality into the product in the first place” W. Edwards DemingThursday, August 16, 12
  20. 20. different kinds of testing Business facing AUTOMATED MANUAL Showcases Support programming Functional acceptance Usability testing tests Critique project Exploratory testing Unit tests Non-functional Integration tests acceptance tests System tests (performance, scaling, ...) AUTOMATED MANUAL / AUTOMATED Technology facing Diagram invented by Brian MarickThursday, August 16, 12
  21. 21. deployment pipeline an automated implementation of your system’s build, deploy, test, release process visibility feedback controlThursday, August 16, 12
  22. 22. deployment pipeline Delivery team Version control Build & unit Automated User acceptance Release tests acceptance tests tests Check in Trigger Feedback Check in Trigger Feedback Trigger Feedback Check in Trigger Feedback Trigger Feedback Approval Feedback ApprovalThursday, August 16, 12
  23. 23. deployment pipelineThursday, August 16, 12
  24. 24. deployment pipelineThursday, August 16, 12
  25. 25. reducing release risk automate provisioning and deployment ensure devs, testers and ops collaborate throughoutThursday, August 16, 12
  26. 26. reducing release risk devops incrementalism decoupling deployment and releaseThursday, August 16, 12
  27. 27. devops culture automation measurement sharingThursday, August 16, 12
  28. 28. feature toggles blue-green deployments canary releases low risk releases are incremental dark launching production immune systemThursday, August 16, 12
  29. 29. DEPENDENT SERVICE 1.0 1.1 Database Abstraction layer Abstraction layer STATIC CONTENT /static/1.1 APPLICATION /static/1.0 Router / Load balancer InterwebsThursday, August 16, 12
  30. 30. blue-green deploymentsThursday, August 16, 12
  31. 31. router web app DB server server serverThursday, August 16, 12
  32. 32. v1.1 v1.1 v1.1 router web app DB server server serverThursday, August 16, 12
  33. 33. v1.1 v1.1 v1.1 router v1.2 v1.2 v1.2 web app DB server server serverThursday, August 16, 12
  34. 34. v1.1 v1.1 v1.1 router v1.2 v1.2 v1.2 web app DB server server serverThursday, August 16, 12
  35. 35. Canary ReleasingThursday, August 16, 12
  36. 36. Thursday, August 16, 12
  37. 37. Thursday, August 16, 12
  38. 38. canary releasing Reduce risk of release Multi-variant testing Performance testingThursday, August 16, 12
  39. 39. immune system what if someone replaced your “buy” button with spacer.gif? T cells http://www.flickr.com/photos/gehealthcare/3326186490/Thursday, August 16, 12
  40. 40. release != deploymentThursday, August 16, 12
  41. 41. feature toggles Config File [featureToggles] wobblyFoobars: true some.php flightyForkHandles: false <?if ($wobblyFoobars) {?> ... various UI elements <?}?> other.php $fork_handle = ($featureConfig->isOn(‘flightlyForkHandles)) ? new flightyForkHander(aCandle) : new forkHandler(aCandle); Stolen from Martin Fowler http://martinfowler.com/bliki/FeatureToggle.htmlThursday, August 16, 12
  42. 42. Dark LaunchingThursday, August 16, 12
  43. 43. Thursday, August 16, 12
  44. 44. Thursday, August 16, 12
  45. 45. enterprise governance risk management SOX, ITIL, COBIT segregation of duties change management auditing and complianceThursday, August 16, 12
  46. 46. people are the key Get everyone together at the beginning Keep meeting Make it easy for everyone to see what’s happening Continuous improvement (kaizen)Thursday, August 16, 12
  47. 47. questions jez@thoughtworks.com http://continuousdelivery.com/ @jezhumble #continuousdelivery © 2011 ThoughtWorks, Inc. http://thoughtworks-studios.com/Thursday, August 16, 12
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×