Continuous Delivery

D9d7afe54eeb20e7443ad53b7286af99?s=47 Jez Humble
November 10, 2015

Continuous Delivery

Businesses rely on getting valuable new software into the hands of users as fast as possible, while making sure that they keep their production environments stable. Continuous Delivery is a revolutionary and scalable approach to software delivery that enables any team, including teams within enterprise IT organizations, to achieve rapid, reliable releases through better collaboration between developers, testers, DBAs and operations, and automation of the build, deploy, test and release process.

I’ll start by discussing the value of CD to the business, inspired by the lean startup movement. I’ll then present the principles and practices involved in continuous delivery, including value stream mapping, the deployment pipeline, acceptance test driven development, zero-downtime releases, and incremental development. I’ll cover how CD is enabled by an ecosystem including Devops, cloud computing, agile testing, and continuous deployment. Finally I’ll talk about how continuous delivery can co-exist with ITIL and compliance in an enterprise environment.

Video here: https://www.youtube.com/watch?v=skLJuksCRTw

D9d7afe54eeb20e7443ad53b7286af99?s=128

Jez Humble

November 10, 2015
Tweet

Transcript

  1. @jezhumble continuous delivery

  2. @jezhumble continuous delivery: why, what, principles building quality in principles

    and patterns for low-risk releases overview
  3. @jezhumble what is continuous delivery? The ability to get changes—features,

    configuration changes, bug fixes, experiments—into production or into the hands of users safely and quickly in a sustainable way.
  4. @jezhumble increase software quality and stability make releases painless, low

    risk events reduce time to market increase customer and employee satisfaction reduce cost of ongoing software development why continuous delivery?
  5. scrum- fall water-

  6. @jezhumble Jon Jenkins, “Velocity Culture, The Unmet Challenge in Ops”

    2011 | http://bit.ly/1vJo1Ya
  7. “Evaluating well-designed and executed experiments that were designed to improve

    a key metric, only about 1/3 were successful at improving the key metric!” do less “Online Experimentation at Microsoft”, Kohavi et al | http://stanford.io/130uW6X
  8. @jezhumble computers do repetitive tasks, people solve problems build quality

    in work in small batches everyone is responsible relentlessly pursue continuous improvement key principles
  9. @jezhumble releasing frequently John Allspaw: “Ops Metametrics” http://slidesha.re/dsSZIr

  10. @jezhumble optimize for mtrs

  11. @jezhumble agile manifesto Our highest priority is to satisfy the

    customer through early and continuous delivery of valuable software
  12. @jezhumble production-ready software Fast, automated feedback on the production readiness

    of your applications every time there is a change — to code, infrastructure, or configuration.
  13. @jezhumble 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 Deming
  14. @jezhumble architecture patterns and practices collaboration continuous delivery

  15. @jezhumble configuration management continuous integration automated testing ingredients

  16. Mainline Server Develop Build Build pull Local Workstation Build push

    ✔ Done!
  17. Mainline Server Develop Build Build pull Local Workstation Build push

    ✔ Done! Everyone Commits To the Mainline Every Day
  18. @jezhumble continuous integration at scale Jason Leyba | http://queue.acm.org/blogposting.cfm?id=78323

  19. John Penix | “Large Scale Continuous Testing in the Cloud”

    | http://bit.ly/1BYMf70
  20. @jezhumble Different Kinds of Testing Diagram invented by Brian Marick

  21. @jezhumble deployment pipeline

  22. @jezhumble Trade Offs

  23. low risk releases are incremental blue-green deployments canary releases dark

    launching production immune system feature toggles For more on these patterns, read http://bit.ly/low-risk-releases
  24. @jezhumble STATIC CONTENT /static/1.1 /static/1.0 DEPENDENT SERVICE 1.0 1.1 Abstraction

    layer Abstraction layer APPLICATION Database Router / Load balancer Interwebs expand / contract For more on this pattern, read http://bit.ly/low-risk-releases
  25. @jezhumble incremental db change address address1 address2 address address1 address2

    315 montgomery st, 16th floor null null address address1 address2 1 market st, 30th floor 1 market st 30th floor
  26. blue-green deployments For more on this pattern, read https://martinfowler.com/bliki/BlueGreenDeployment.html

  27. router web server app server DB server For more on

    this pattern, read https://martinfowler.com/bliki/BlueGreenDeployment.html
  28. router v1.1 v1.1 v1.1 web server app server DB server

    For more on this pattern, read https://martinfowler.com/bliki/BlueGreenDeployment.html
  29. router v1.1 v1.1 v1.1 web server app server DB server

    v1.2 v1.2 v1.2 For more on this pattern, read https://martinfowler.com/bliki/BlueGreenDeployment.html
  30. router v1.1 v1.1 v1.1 web server app server DB server

    v1.2 v1.2 v1.2 For more on this pattern, read https://martinfowler.com/bliki/BlueGreenDeployment.html
  31. @jezhumble canary releasing For more on this pattern, read http://bit.ly/low-risk-releases

  32. release != deployment

  33. [featureToggles] wobblyFoobars: true flightyForkHandles: false Config File <toggle name=wobblyFoobars> ...

    various UI elements </toggle> some.jsp forkHandle = (featureConfig.isOn(‘flightlyForkHandles)) ? new FlightyForkHander(aCandle) : new ForkHandler(aCandle) other.java Feature Toggles For more on this pattern, read https://martinfowler.com/articles/feature-toggles.html
  34. dark launching For more on this pattern, read http://bit.ly/low-risk-releases

  35. @jezhumble For more on this pattern, read http://bit.ly/low-risk-releases

  36. @jezhumble For more on this pattern, read http://bit.ly/low-risk-releases

  37. Branch by Abstraction For more on this pattern, read https://martinfowler.com/bliki/BranchByAbstraction.html

  38. Application New Library Library For more on this pattern, read

    https://martinfowler.com/bliki/BranchByAbstraction.html
  39. Application New Library Library Interface implements For more on this

    pattern, read https://martinfowler.com/bliki/BranchByAbstraction.html
  40. Application New Library Library Interface implements For more on this

    pattern, read https://martinfowler.com/bliki/BranchByAbstraction.html
  41. Application New Library Library Interface implements For more on this

    pattern, read https://martinfowler.com/bliki/BranchByAbstraction.html
  42. Application New Library Interface implements For more on this pattern,

    read https://martinfowler.com/bliki/BranchByAbstraction.html
  43. For more on this pattern, read https://martinfowler.com/bliki/BranchByAbstraction.html

  44. Jesse Robbins, “Master of Disaster” @ Amazon| @jesserobbins | http://oreil.ly/1HRKUVE

    ”don’t fight stupid make more awesome!”
  45. thank you! © 2016-7 DevOps Research and Assessment LLC https://devops-research.com/

    To receive the following: • 30% off my new video course: creating high performance organizations • 50% off my CD video training, interviews with Eric Ries, and more • A copy of this presentation • A 100 page excerpt from Lean Enterprise • An excerpt from The DevOps Handbook • A 20m preview of my Continuous Delivery video workshop Just pick up your phone and send an email To: jezhumble@sendyourslides.com Subject: devops