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

Our Continuous Delivery Journey

Our Continuous Delivery Journey

Doing continuous delivery? Got nothing left to learn? Yeah right! The journey to continuous delivery (CD) is long, winding and always evolving. Come hear my stories, learn what worked and what didn't work for us and get some helpful tips!

Originally presented at DevOpsDays Kansas City in October 2016 https://www.devopsdays.org/events/2016-kansascity/program/suzie-prince/

suziejprince

October 21, 2016
Tweet

More Decks by suziejprince

Other Decks in Programming

Transcript

  1. OUR CONTINUOUS
    DELIVERY JOURNEY
    Suzie Prince
    ThoughtWorks

    View Slide

  2. Define Continuous Delivery (CD)
    Tell some stories about our journey to CD
    Review learnings and share tips
    WHAT I WILL COVER

    View Slide

  3. Suzie Prince
    Head of Product for
    ThoughtWorks products group
    Product Manager for Snap CI
    10 + years experience in
    software development including
    agile and CD practices
    Tweeting @pm_suzie

    View Slide

  4. View Slide

  5. View Slide

  6. View Slide

  7. View Slide

  8. WHAT IS CD?

    View Slide

  9. “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, continuousdelivery.com

    View Slide

  10. “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, continuousdelivery.com

    View Slide

  11. CONTINUOUS DELIVERY

    View Slide

  12. View Slide

  13. View Slide

  14. View Slide

  15. View Slide

  16. RELEASE
    RELEASE
    RELEASE
    RELEASE
    YEAR

    View Slide

  17. Commit Build and Test
    Automated
    Tests
    Installer Tests
    Staging Deliver
    User
    Acceptance

    View Slide

  18. Commit Build and Test
    Automated
    Tests
    Installer Tests
    Staging Deliver
    User
    Acceptance

    View Slide

  19. Commit Build and Test
    Automated
    Tests
    Installer Tests
    Staging Deliver
    User
    Acceptance

    View Slide

  20. Commit Build and Test
    Automated
    Tests
    Installer Tests
    Staging Deliver
    User
    Acceptance

    View Slide

  21. Commit Build and Test
    Automated
    Tests
    Installer Tests
    Staging Deliver
    User
    Acceptance

    View Slide

  22. Commit Build and Test
    Automated
    Tests
    Installer Tests
    Staging Deliver
    User
    Acceptance

    View Slide

  23. Commit Build and Test
    Automated
    Tests
    Installer Tests
    Staging Deliver
    User
    Acceptance

    View Slide

  24. Commit Build and Test
    Automated
    Tests
    Installer Tests
    Staging Deliver
    User
    Acceptance

    View Slide

  25. Commit Build and Test
    Automated
    Tests
    Installer Tests
    Staging Deliver
    User
    Acceptance

    View Slide

  26. View Slide

  27. View Slide

  28. View Slide

  29. View Slide

  30. RELEASE
    YEAR
    RELEASE
    RELEASE
    RELEASE

    View Slide

  31. RELEASE
    RELEASE
    RELEASE
    RELEASE
    25% RELEASE TIME WAS
    INSTALLER TESTING
    YEAR

    View Slide

  32. Commit Build and Test
    Automated
    Tests
    Installer Tests
    Staging Deliver
    User
    Acceptance

    View Slide

  33. Commit Build and Test
    Automated
    Tests
    Installer Tests
    Staging Deliver
    User
    Acceptance

    View Slide

  34. Commit Build and Test
    Automated
    Tests
    Installer Tests Staging Deliver
    User
    Acceptance

    View Slide

  35. Commit Build and Test
    Automated
    Tests
    Staging Deliver
    User
    Acceptance
    Commit Build and Test
    Automated
    Tests
    Installer Tests Staging Deliver
    User
    Acceptance

    View Slide

  36. Commit Build and Test
    Automated
    Tests
    Staging Deliver
    User
    Acceptance
    Commit Build and Test
    Automated
    Tests
    Installer Tests Staging Deliver
    User
    Acceptance

    View Slide

  37. Commit Build and Test
    Automated
    Tests
    Staging Deliver
    User
    Acceptance
    Commit Build and Test
    Automated
    Tests
    Installer Tests Staging Deliver
    User
    Acceptance

    View Slide

  38. Commit Build and Test
    Automated
    Tests
    Staging Deliver
    User
    Acceptance
    Commit Build and Test
    Automated
    Tests
    Installer Tests Staging Deliver
    User
    Acceptance

    View Slide

  39. Commit Build and Test
    Automated
    Tests
    Installer Tests Staging Deliver
    User
    Acceptance

    View Slide

  40. RELEASE
    RELEASE
    RELEASE
    RELEASE
    YEAR

    View Slide

  41. RELEASE
    RELEASE
    RELEASE
    RELEASE
    <5% RELEASE TIME WAS
    INSTALLER TESTING
    YEAR

    View Slide

  42. HIDDEN SILOS

    View Slide

  43. Commit Build and Test
    Automated
    Tests
    Installer Tests Staging Deliver
    User
    Acceptance

    View Slide

  44. Commit Build and Test
    Automated
    Tests
    Installer Tests Staging Deliver
    User
    Acceptance

    View Slide

  45. OUR LEARNINGS
    Automate, automate, automate
    Look for hidden silos

    View Slide

  46. View Slide

  47. View Slide

  48. View Slide

  49. Microservices
    RabbitMQ
    Nagios
    Automated infrastructure
    Deployment pipelines
    Containers!

    View Slide

  50. Microservices
    RabbitMQ
    Nagios
    Automated infrastructure
    Deployment pipelines

    Containers!

    View Slide

  51. Microservices
    RabbitMQ
    Nagios
    Automated infrastructure
    Deployment pipelines


    Containers!

    View Slide

  52. Microservices
    RabbitMQ
    Nagios
    Automated infrastructure
    Deployment pipelines



    Containers!

    View Slide

  53. Microservices
    RabbitMQ
    Nagios
    Automated infrastructure
    Deployment pipelines




    Containers!

    View Slide

  54. Microservices
    RabbitMQ
    Nagios
    Automated infrastructure
    Deployment pipelines





    Containers!

    View Slide

  55. Microservices
    RabbitMQ
    Nagios
    Automated infrastructure
    Deployment pipelines





    Containers! ✔

    View Slide

  56. Microservices
    RabbitMQ
    Nagios
    Automated infrastructure
    Deployment pipelines
    GOOD JOB!





    Containers! ✔

    View Slide

  57. “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, continuousdelivery.com

    View Slide

  58. “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, continuousdelivery.com

    View Slide

  59. “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, continuousdelivery.com

    View Slide

  60. “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, continuousdelivery.com

    View Slide

  61. “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, continuousdelivery.com

    View Slide

  62. “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, continuousdelivery.com

    View Slide

  63. Microservices
    RabbitMQ
    Nagios
    Automated infrastructure
    Deployment pipelines
    GOOD JOB!





    Containers! ✔

    View Slide

  64. Microservices

    View Slide

  65. View Slide

  66. View Slide

  67. View Slide

  68. View Slide

  69. View Slide

  70. View Slide

  71. OUR LEARNINGS
    Delivering value, not doing CD is your job
    CD is a journey

    View Slide

  72. TAKE AWAYS

    View Slide

  73. View Slide

  74. View Slide

  75. View Slide

  76. View Slide

  77. PRACTICE CONTINUOUS INTEGRATION

    View Slide

  78. View Slide

  79. View Slide

  80. FREQUENCY REDUCES DIFFICULTY

    View Slide

  81. View Slide

  82. View Slide

  83. DOING CONTINUOUS DELIVERY IS NOT YOUR JOB
    GOOD JOB!

    View Slide

  84. View Slide

  85. View Slide

  86. INVOLVE THE WHOLE TEAM

    View Slide

  87. View Slide

  88. View Slide

  89. AUTOMATE EVERYTHING

    View Slide

  90. CONTINUOUS DELIVERY IS A JOURNEY…
    Keep your goals in mind
    Look back and retrospect
    Focus on what is not good now and improve that
    Don’t be too critical
    Don’t fear redesign, don’t fear rework

    View Slide

  91. CONTINUOUS DELIVERY IS A JOURNEY…
    Keep your goals in mind
    Look back and retrospect
    Focus on what is not good now and improve that
    Don’t be too critical
    Don’t fear redesign, don’t fear rework

    View Slide