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

DevOpsPorto Meetup18: Continuous Delivery Patte...

DevOpsPorto Meetup18: Continuous Delivery Patterns for Boring Releases by Manuel Pais

Talk delivered by Manuel Pais

DevOpsPorto

July 12, 2018
Tweet

More Decks by DevOpsPorto

Other Decks in Technology

Transcript

  1. About me Manuel Pais MS Software Eng @manupaisable manuelpais.net [email protected]

    DevOps and Delivery Consultant Focused on teams and flow 2 @manupaisable | manuelpais.net
  2. @manupaisable | manuelpais.net 3 Today 1. Intro to boring releases

    2. Patterns for safer releases 3. Patterns for faster releases 4. Patterns for sustainable delivery
  3. @manupaisable | manuelpais.net 4 Today 1. Intro to boring releases

    2. Patterns for safer releases 3. Patterns for faster releases 4. Patterns for sustainable delivery
  4. 8 App down, refuses to restart… Missing libraries… Data migration

    completed… partially @manupaisable | manuelpais.net
  5. 9 App down, refuses to restart… The password master… Data

    migration completed… partially Missing libraries… @manupaisable | manuelpais.net
  6. “ability to get changes of all types, into production, or

    into the hands of users, safely and quickly in a sustainable way” –Dave Farley & Jez Humble continuousdelivery.com @manupaisable | manuelpais.net 19
  7. @manupaisable | manuelpais.net 20 Today 1. Intro to boring releases

    2. Patterns for safer releases 3. Patterns for faster releases 4. Patterns for sustainable delivery
  8. “ability to get changes of all types, into production, or

    into the hands of users, safely and quickly in a sustainable way” –Dave Farley & Jez Humble continuousdelivery.com @manupaisable | manuelpais.net 21
  9. Gains from improving visibility to everyone, and increasing repeatability and

    traceability are enormous 24 @manupaisable | manuelpais.net
  10. Value Stream Mapping is a pen and paper tool that

    highlights bottlenecks in a matter of hours and raises awareness of what difficulties other teams face @manupaisable | manuelpais.net 26
  11. STEP TWO measure key metrics on: -speed (e.g. cycle time)

    -quality (e.g. defect rate) -operability (e.g. MTTR) 27 @manupaisable | manuelpais.net
  12. Which work? You have application health checks and fast smoke

    tests for sanity checking 32 @manupaisable | manuelpais.net
  13. Which work? You have acceptance tests with reasonable coverage, including

    failure scenarios 33 @manupaisable | manuelpais.net
  14. Which work? Single source of truth. Single binary. Single path

    to production. 34 @manupaisable | manuelpais.net
  15. STEP THREE PUT IN THE WORK !!! (but in iterative

    fashion… walking skeletons FTW!) 35 @manupaisable | manuelpais.net
  16. Practices for boring releases •Automated build (and unit tests) •Provision

    prod replica in pipeline •Automated acceptance tests (BDD) •No “invisible” activities •One source of truth •One path to production @manupaisable | manuelpais.net 38
  17. @manupaisable | manuelpais.net 39 Today 1. Intro to boring releases

    2. Patterns for safer releases 3. Patterns for faster releases 4. Patterns for sustainable delivery
  18. “ability to get changes of all types, into production, or

    into the hands of users, safely and quickly in a sustainable way” –Dave Farley & Jez Humble continuousdelivery.com @manupaisable | manuelpais.net 40
  19. @manupaisable | manuelpais.net 41 can’t auto- scale people How to

    cope with ever increasing cognitive load on teams to build and run applications?
  20. @manupaisable | manuelpais.net 44 Fix Monitor Run CI Peer review

    Infra Security Comply Database Accept UX Deploy
  21. Multiple approaches needed 1. Smarter pipelines 2. Team structures 3.

    Self-service platforms 4. Resilient delivery system @manupaisable | manuelpais.net 45
  22. Multiple approaches needed 1. Smarter pipelines 2. Well-thought team structures

    3. Self-service platforms 4. Resilient delivery system @manupaisable | manuelpais.net 46
  23. Multiple approaches needed 1. Smarter pipelines 2. Well-thought team structures

    3. Self-service platforms 4. Resilient delivery system @manupaisable | manuelpais.net 47
  24. Multiple approaches needed 1. Smarter pipelines 2. Well-thought team structures

    3. Self-service platforms @manupaisable | manuelpais.net 49
  25. Reduce wait times Minimum path to production Risk-based activities Continuous

    pruning 50 @manupaisable | manuelpais.net 1. Smarter pipelines
  26. Scalable CI/CD Infrastructure •Solved problem in cloud systems •Starts with

    infrastructure-as-code •Agent farm (auto scaling if possible) •Pipelines need to evolve as number of teams grows @manupaisable | manuelpais.net 54
  27. Flow efficiency = “teams who aren’t paying attention to this

    concept generally have flow efficiencies around the 15% mark - that means that work normally spends 85% of its lifecycle waiting on something.” http://leankanban.com/flow-efficiency-a-great-metric-you-probably-arent-using @manupaisable | manuelpais.net 57
  28. issue is not how long it takes to do something,

    it's how long we're waiting for it to get done @manupaisable | manuelpais.net 58
  29. Reduce wait times Minimum path to production Risk-based activities Continuous

    pruning 63 @manupaisable | manuelpais.net 1. Smarter pipelines
  30. Reduce wait times Minimum path to production Risk-based activities Continuous

    pruning 64 @manupaisable | manuelpais.net 1. Smarter pipelines
  31. Reduce wait times Minimum path to production Risk-based activities Continuous

    pruning 65 @manupaisable | manuelpais.net 1. Smarter pipelines
  32. Reduce wait times Minimum path to production Risk-based activities Continuous

    pruning 66 @manupaisable | manuelpais.net 1. Smarter pipelines
  33. @manupaisable | manuelpais.net 70 Today 1. Intro to boring releases

    2. Patterns for safer releases 3. Patterns for faster releases 4. Patterns for sustainable delivery
  34. “ability to get changes of all types, into production, or

    into the hands of users, safely and quickly in a sustainable way” –Dave Farley & Jez Humble continuousdelivery.com @manupaisable | manuelpais.net 71
  35. Delivery system •CI tool •Pipeline orchestration tool •Orchestration plugins /

    3rd party tools •Pipeline definitions •Source repos •CI + CD infrastructure •And ? @manupaisable | manuelpais.net 75
  36. How resilient delivery looks like •Tooling and configuration changes do

    not impact regular delivery •Gracefully handles peak load of pipeline runs •Issues with underlying infra/tools handled swiftly, rollback if needed •Disaster recovery at a click of a button @manupaisable | manuelpais.net 81
  37. How resilient delivery looks like •Changes (plugins, configuration, jobs, etc)

    do not impact regular delivery •Gracefully handles peak load of pipeline runs •Issues with underlying infra/tools handled swiftly, rollback if needed •Disaster recovery at a click of a button @manupaisable | manuelpais.net 82
  38. How resilient delivery looks like •Changes (plugins, configuration, jobs, etc)

    do not impact regular delivery •Gracefully handles peak load of pipeline runs •Issues with underlying infra/tools handled swiftly, roll backed if needed •Disaster recovery at a click of a button @manupaisable | manuelpais.net 83
  39. How resilient delivery looks like •Changes (plugins, configuration, jobs, etc)

    do not impact regular delivery •Gracefully handles peak load of pipeline runs •Issues with underlying infra/tools handled swiftly, rollback if needed •Disaster recovery at a click of a button (almost) @manupaisable | manuelpais.net 84
  40. Bonus Points pipeline-as-code allows designing future states of the value

    stream and draw evolution @manupaisable | manuelpais.net 88
  41. The glitch is believed to have been caused by a

    power supply issue and there is no evidence of a cyber-attack, the airline said. @manupaisable | manuelpais.net 91
  42. releasabilitybook.com Book sample out now! Team Guide to Software Releasability

    by Chris O’Dell & Manuel Pais 105 @manupaisable | manuelpais.net
  43. thank you Manuel Pais MS Software Eng @manupaisable manuelpais.net [email protected]

    DevOps and Delivery Consultant Focused on teams and flow 107 @manupaisable | manuelpais.net