$30 off During Our Annual Pro Sale. View Details »

Continuous Delivery: What I Wish I Knew

Continuous Delivery: What I Wish I Knew

These slides are from the talk I gave at the DC CTO summit in October 2014. It covers the basics around continuous delivery as well as some of the surprises we've run into as we've moved to a continuous delivery mindset.

Andrew Willis

October 28, 2014
Tweet

Other Decks in Technology

Transcript

  1. What I Wish I Knew Continuous Delivery 1

  2. 2

  3. 3

  4. 4

  5. 5

  6. Who’s Doing It Today? 6

  7. Who Wants To Be Doing It? 7

  8. What Is It? • Automatically deploying after every commit to

    master • Deploying very frequently, not necessarily automatically 8
  9. What Is It? 9 Lots of low ceremony deploys kicked

    off by anyone on the team at anytime
  10. Getting Started 1. An automated test suite with reasonable coverage

    2. A fully-scripted deploy 3. A way to coordinate multiple people who want to deploy at the same time 4. A deploy process that’s done by a single group 10
  11. $ cap apps:rails_frontend:production deploy A Fully Scripted Deploy 11

  12. A Coordination Mechanism 12

  13. 13 Deploy

  14. 14

  15. A team should be able to deploy a change without

    changing the priorities of another group Self-contained Deploys 15
  16. Things I Wish I Knew 16

  17. 17 Communicating site changes becomes harder Surprise #1

  18. 200c48c - remove restrictive direct descendant selectors in SQ 65a64b2

    - be more specific about selecting the color count field when a print location is added a43e3b5 - render super_quote partial with a quote instead of order 081840e - rename @quote to @quote_set 7ce3799 - modularize the mini super quote e615320 - make turn_addend method less order-specific 93f45a2 - add serviced_base_price to order 0f52a9c - update SQ pricing summary to handle service charges 25ac706 - fix timezone for quote timestamps 8a4c6e1 - display service charges with label defined from quote client d3efe1f - disallow saving of dirty quotes in SQ 74b6c41 - fix saved quote page when some order items are marked for destruction 5756a75 - fix saved quotes in SQ when some order items are marked for destruction 20741ed - only migrate group_orders if design is present cd67189 - Allow steppers to use input fields on mobile devices What Was Deployed Last Week? 18
  19. 19 Communication needs to become independent from deploys

  20. 20 Some users don’t like things changing all the time

    Surprise #2
  21. A/B Testing FTW! • Built a light-weight A/B testing framework

    • New functionality is rolled out continuously to test users • Rolled out in larger “releases” for the rest of the department 21
  22. 22 Tools that tell you if there’s a site problem

    allow you to move faster Surprise #3
  23. Our Canary System • Looks at page views and departure

    rates for almost every page on the site • Compares rates with recent history • Flags anything outside of a threshold 23 This system has been the single biggest win for our CD efforts
  24. 24 It becomes easy to deploy a change and forget

    to check it in production Surprise #4
  25. 25 It becomes hard to keep track of what changed

    when Surprise #5
  26. Recording History • Deploy scripts automatically append to a Google

    doc –when the deploy happened –who did it –what app was changed –GitHub compare URL 26
  27. 27

  28. Our Deploy Process 1. Add yourself to the deploy train

    2. Merge into master 3. Run automated tests in Jenkins 4. Deploy 5. Mark deployed as verified 28
  29. Continuously Deliver Your Questions 29

  30. Hit me up @andrewwillis Thanks! 30