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

In Praise of Slow Continuous Delivery

In Praise of Slow Continuous Delivery

Talk from the Pipeline Conference in London in March 2017. Covers the differences between the common perception of Continuous Delivery and the reality of shipping packaged software. Discusses patterns like dark launches, feature flags and analytics and how they are applied to this different domain.

Gareth Rushgrove

March 21, 2017

More Decks by Gareth Rushgrove

Other Decks in Technology


  1. (without introducing more risk) In Praise of Slow Continuous Delivery

    Puppet Gareth Rushgrove On-premise software and continuous delivery
  2. - What do we mean when we say continuous -

    The world of Enterprise Software vendors - Why is this different? - Examples of evolving stable software Gareth Rushgrove
  3. Note Most of the examples are infrastructure tools, because I’m

    an infrastructure tools geek. The patterns and practices are more general Gareth Rushgrove
  4. (without introducing more risk) What people think of when you

    say continuous delivery What does good look like?
  5. Gareth Rushgrove “Continuous Delivery is the ability to get changes

    of all types—including new features, configuration changes, bug fixes and experiments—into production, or into the hands of users, safely and quickly in a sustainable way. Jez Humble, Continuous Delivery
  6. Gareth Rushgrove 0 50 100 150 200 ORCL IBM SAP

    VMware Market cap in billions
  7. - Puppet Enterprise ships every 3 months - Docker EE

    ships every 3 months - vSphere ships about every 6 months - Oracle ship a new major every 3 years Gareth Rushgrove
  8. Gareth Rushgrove HP LaserJet Firmware Builds Commits per day Regression

    tests 1 per week 1 6 weeks 10 per day 100 24 hours 2008 2011
  9. i386 and x86_64. IBM z Systems and Power. Solaris. RHEL

    4 (released 2005). 3 versions of macOS, 4 versions of AIX, 11 versions of Windows across server and desktop. Gareth Rushgrove 80 more platforms!
  10. We run about 500 pipelines a day. That’s about 35,000

    individual jobs a week. For a development team of less than 100 people Gareth Rushgrove
  11. Problem Your users control the environment not you. Limiting the

    environments you support costs you users Gareth Rushgrove
  12. Docker 17.03, Ubuntu 16.04, PE 2017.1, Office 2016, Office 365,

    OpenStack Mitaka, Newton, Ocata, etc. Gareth Rushgrove
  13. Problem Versioning packaged software is a wicked problem Gareth Rushgrove

    A wicked problem is a problem that is difficult or impossible to solve because of incomplete, contradictory, and changing requirements that are often difficult to recognise.
  14. How long do you support that one version? Until you

    ship the next one (maybe later the same day?) Gareth Rushgrove
  15. RHEL 4 end of life is this month. It’s been

    supported for 12 years Gareth Rushgrove
  16. Release quarterly, each release supported for a year means 4

    supported major versions Gareth Rushgrove
  17. Gareth Rushgrove “ Docker not supporting a version for longer

    than a year is a no-go. This is not enterprise ready. Hacker News comment
  18. Gareth Rushgrove “In large enterprise it will take 6 months

    to get a version certified to work with tooling so need 3 year at the minimum to put any effort on it. Hacker News comment
  19. Gareth Rushgrove “Docker initial release was just 4 years ago,

    your asking for a support timeframe that's around the same length as the age of the project itself. Hacker News comment
  20. Puppet Server (just one component of Puppet Enterprise) has 170

    different open source components, each with individual license terms Gareth Rushgrove
  21. In total we ship third-party software with 19 different licenses,

    from MIT, Apache2 and BSD to EDL 1.0, EPL 1.0, Artistic 1.0 and 2.0, Ruby, Boost Software License and more Gareth Rushgrove
  22. Problem Does this commit break the law? Is this release

    legal? Who has legal checks in their continuous delivery pipeline? Gareth Rushgrove
  23. Gareth Rushgrove Puppet docs “Our automated systems create new “nightly”

    repositories for builds that pass our acceptance testing on the most popular platforms.
  24. The difference between being able to ship every day vs

    actually shipping every day Gareth Rushgrove
  25. Part of Continuous Delivery is Continuous Improvement. And without data

    about usage how do you know what to improve? Gareth Rushgrove
  26. Do you expect a web application adopting continuous delivery to

    use things like: - Google Analytics - Kissmetrics - New Relic - AppDynamics - Dynatrace Gareth Rushgrove
  27. Do you expect an open source CLI based tool to

    do the same? Gareth Rushgrove
  28. Gareth Rushgrove “Consul makes use of a HashiCorp service called

    Checkpoint which is used to check for updates and critical security bulletins. Only anonymous information, which cannot be used to identify the user or host, is sent to Checkpoint Consul FAQ
  29. Gareth Rushgrove “Data like this helps us understand how you

    use the product, which in turn helps us improve the product to meet your needs How does sharing this data benefit PE users?
  30. Enterprise user expectations clash with some of the expected implementations

    of the practices of continuous delivery Gareth Rushgrove
  31. But speed is a relative measure that depends on a

    frame of reference Gareth Rushgrove My Physics degree coming in handy
  32. Always remember to put your users and your context ahead

    of any absolute measures Gareth Rushgrove Especially those you read on the internet