O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Delivery Patterns for Rapid and Reliable Releases @ JAX DevOps London (May 2019)

148 visualizações

Publicada em

Today, we pay close attention to scaling our systems by testing for chaos and reducing MTTR in production. However, our delivery pipelines don’t get nearly as much love. This talk presents tried and tested patterns for increasing an accelerated delivery of changes in a safe manner. We’ll also try to solve the mystery of sustainable Continuous Delivery.

Everyone wants to go faster but also safer. As a result, we’re cramming more and more activities in the pipeline, from security controls and database changes to compliance approvals and even networking. How can we do this AND still move fast AND avoid burning out teams with all this cognitive load?

Key takeaways:

- learn patterns to ensure the reliability of your pipelines and make application changes safer
- learn smart patterns to accelerate delivery, such as continuous pruning and short path to prod
- understand how to sustain your CI/CD adoption growth with key practices like immutable delivery system

Publicada em: Tecnologia
  • Seja o primeiro a comentar

Delivery Patterns for Rapid and Reliable Releases @ JAX DevOps London (May 2019)

  1. 1. Delivery Patterns for Rapid and Reliable Software Releases 1 Manuel Pais
  2. 2. About me Manuel Pais MS Software Eng @manupaisable me@manuelpais.net http://manuelpais.net DevOps Consultant & Trainer Co-author of “Team Topologies” Focused on teams and flow 2@manupaisable | manuelpais.net
  3. 3. @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
  4. 4. @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
  5. 5. @manupaisable | manuelpais.net 6
  6. 6. @manupaisable | manuelpais.net 7
  7. 7. 8 Outcomes @manupaisable | manuelpais.net
  8. 8. @manupaisable | manuelpais.net 9 Today 1. Intro to boring releases 2. Patterns for safer releases 3. Patterns for faster releases 4. Patterns for sustainable delivery
  9. 9. “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 10
  10. 10. “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 11
  11. 11. Patterns for safer releases 12@manupaisable | manuelpais.net
  12. 12. @manupaisable | manuelpais.net 13
  13. 13. Patterns for safer releases 1. Map value stream in the pipeline 14@manupaisable | manuelpais.net
  14. 14. @manupaisable | manuelpais.net 15
  15. 15. @manupaisable | manuelpais.net 16
  16. 16. @manupaisable | manuelpais.net 17 https://www.youtube.com/watch?v=MAFpuwB7-to
  17. 17. @manupaisable | manuelpais.net 18
  18. 18. Patterns for safer releases 19@manupaisable | manuelpais.net
  19. 19. 20@manupaisable | manuelpais.net
  20. 20. Patterns for safer releases 1. Map your value stream to the pipeline 2. Measure key metrics 21@manupaisable | manuelpais.net
  21. 21. Speed lead time Quality failure rate Operability MTTR 22@manupaisable | manuelpais.net
  22. 22. Flow efficiency = “generally flow efficiencies are around the 15% mark” http://leankanban.com/flow-efficiency-a-great-metric-you-probably-arent-using @manupaisable | manuelpais.net 23
  23. 23. 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 24
  24. 24. Patterns for safer releases 25@manupaisable | manuelpais.net
  25. 25. @manupaisable | manuelpais.net 26
  26. 26. Patterns for safer releases 1. Map your value stream to the pipeline 2. Measure key metrics on speed, quality & operability 3. Put in the groundwork !!! 27@manupaisable | manuelpais.net
  27. 27. Automated build in clean environment Ephemeral prod-like test environment Health checks and fast smoke tests Automated acceptance tests (BDD) Everything as code (one truth) Single path to production 28@manupaisable | manuelpais.net
  28. 28. 29@manupaisable | manuelpais.net
  29. 29. Patterns for safer releases 1. Map value stream in the pipeline 2. Measure key metrics 3. Put in the groundwork !!! 30@manupaisable | manuelpais.net
  30. 30. @manupaisable | manuelpais.net 31 Today 1. Intro to boring releases 2. Patterns for safer releases 3. Patterns for faster releases 4. Patterns for sustainable delivery
  31. 31. “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 32
  32. 32. @manupaisable | manuelpais.net 33 Build Test Deploy
  33. 33. @manupaisable | manuelpais.net 34 FixMonitorRun CI Peer review Infra Security Comply Database Accept UX Deploy
  34. 34. @manupaisable | manuelpais.net 35 can’t auto- scale people How to cope with ever increasing cognitive load on teams to build and run applications?
  35. 35. Patterns for faster releases 1. Design intelligent pipelines 2. Evolve teams and interactions 3. Set up a self-service platform 36@manupaisable | manuelpais.net
  36. 36. @manupaisable | manuelpais.net 37
  37. 37. Patterns for faster releases 1. Identify & remove bottlenecks 2. Shorten path to production 3. Continuous pruning 38@manupaisable | manuelpais.net
  38. 38. Waiting for pipeline @manupaisable | manuelpais.net 39
  39. 39. Waiting for pipeline @manupaisable | manuelpais.net 40
  40. 40. Waiting for dependencies @manupaisable | manuelpais.net 41
  41. 41. Waiting for dependencies @manupaisable | manuelpais.net 42
  42. 42. Patterns for faster releases 1. Design intelligent pipelines 2. Evolve teams and interactions 3. Set up a self-service platform 43@manupaisable | manuelpais.net
  43. 43. Patterns for faster releases 1. Identify & remove bottlenecks 2. Shorten path to production 3. Continuous pruning 44@manupaisable | manuelpais.net
  44. 44. Risk-based activities (short & wide pipeline) @manupaisable | manuelpais.net 45
  45. 45. Patterns for faster releases pipelines 1. Set up a self-service platform 46@manupaisable | manuelpais.net
  46. 46. @manupaisable | manuelpais.net 47
  47. 47. Patterns for faster releases 1. Identify & remove bottlenecks 2. Shorten path to production 3. Continuous pruning & fast feedback 48@manupaisable | manuelpais.net
  48. 48. 49 “There are just two moments when an automated test provides useful information: the first time it passes and when it subsequently fails.” @manupaisable | manuelpais.net Continuous pruning
  49. 49. @manupaisable | manuelpais.net 50
  50. 50. @manupaisable | manuelpais.net 51
  51. 51. @manupaisable | manuelpais.net 52
  52. 52. Patterns for faster releases 1. Identify & remove bottlenecks 2. Shorten path to production 3. Continuous pruning & fast feedback 55@manupaisable | manuelpais.net
  53. 53. @manupaisable | manuelpais.net 56 Today 1. Intro to boring releases 2. Patterns for safer releases 3. Patterns for faster releases 4. Patterns for sustainable delivery
  54. 54. “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 57
  55. 55. 58@manupaisable | manuelpais.net
  56. 56. @manupaisable | manuelpais.net 59
  57. 57. •CI tool •CD tool (orchestration) •Plugins / 3rd party tools •Pipeline definitions •Source repos •Artifact repos •CI + CD infrastructure @manupaisable | manuelpais.net 60 Delivery (CI/CD) system
  58. 58. Delivery (CI/CD) system CI/CD Toolchain Pipelines Infra App 1 App 2 @manupaisable | manuelpais.net 61 Artifacts
  59. 59. System Operability Available (no downtime) Scalable (no pipelines waiting to run) Monitored (alerts on resources and errors) Recoverable (focus on diagnosis & MTTR) @manupaisable | manuelpais.net 62
  60. 60. Patterns for sustainability 1. Treat your pipeline as a product 2. Treat your pipeline as a product 3. Treat your pipeline as a product 63@manupaisable | manuelpais.net
  61. 61. Immutable infrastructure Blue-green deployments Monitoring & alerting Aggregated logging Pipelines-as-code Auto-scaling 64@manupaisable | manuelpais.net
  62. 62. About me Manuel Pais MS Software Eng @manupaisable me@manuelpais.net http://manuelpais.net DevOps Consultant Co-author of “Team Topologies” Focused on teams and flow 65@manupaisable | manuelpais.net

×