Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Continuous Delivery

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

Jez Humble

November 10, 2015
Tweet

More Decks by Jez Humble

Other Decks in Technology

Transcript

  1. @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.
  2. @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?
  3. “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
  4. @jezhumble computers do repetitive tasks, people solve problems build quality

    in work in small batches everyone is responsible relentlessly pursue continuous improvement key principles
  5. @jezhumble agile manifesto Our highest priority is to satisfy the

    customer through early and continuous delivery of valuable software
  6. @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.
  7. @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
  8. Mainline Server Develop Build Build pull Local Workstation Build push

    ✔ Done! Everyone Commits To the Mainline Every Day
  9. 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
  10. @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
  11. @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
  12. router web server app server DB server For more on

    this pattern, read https://martinfowler.com/bliki/BlueGreenDeployment.html
  13. 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
  14. 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
  15. 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
  16. [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
  17. Application New Library Library For more on this pattern, read

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

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

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

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

    read https://martinfowler.com/bliki/BranchByAbstraction.html
  22. 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: [email protected] Subject: devops