Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Continuous Deployment

1,610 views

Published on

Published in: Technology, Business
  • Be the first to comment

  • Be the first to like this

Continuous Deployment

  1. 1. Continuous Deployment<br />Timothy Fitz<br />CTO of Canvas<br />
  2. 2. “Continuous integration involves integrating early and often, so as to avoid the pitfalls of "integration hell". The practice aims to reduce timely rework and thus reduce cost and development time.”<br />
  3. 3. “Continuous deployment involves deploying early and often, so as to avoid the pitfalls of "deployment hell". The practice aims to reduce timely rework and thus reduce cost and development time.”<br />
  4. 4. The Vision<br />On every key press<br />Compile<br />Run automated tests<br />Deploy<br /><ul><li>“Live Coding”</li></li></ul><li>Eliminate Waste<br /><ul><li>Deploying code validates assumptions</li></ul>Bad assumptions cause waste<br />Code built on top is waste<br />Designbuilt on top is waste<br />Thought built on top is waste<br />
  5. 5. The Reality<br />Change has risk<br />Infrastructure isn’t free<br />
  6. 6.
  7. 7. At Canvas<br />Small CD shop<br />5 committers<br />Deploy process is “git push”<br />
  8. 8. At Scale: IMVU<br />Profitable<br />MMO + Virtual Economy Etsy<br />50+ Technical Staff<br />
  9. 9. At Scale: Etsy<br />
  10. 10. The Deploy Equation<br />Direct Value (DV)<br />Information Value (IV)<br />Deployment Risk<br />When IV + DV > Risk: Deploy!<br />
  11. 11. Increase Information Value<br />Small commits mean more information earlier<br />Implement features implementation-risk-first<br />Conscious information gathering<br />
  12. 12. Increase Direct Value<br />Feature shippable from day 0<br />Never blocked on deploy cycle<br />Higher velocity<br />Lean Thinking<br />
  13. 13. Risk=Exposure * Probability * Severity<br />
  14. 14. Decrease Exposure<br />Dark launch non-frontend changes<br />Controlled exposure via feature rollout code<br />Expose to staff/QA only<br />Expose to opt-in beta testers<br />Gradually increase exposure from 1-100%<br />Feature-level rollback<br />
  15. 15. Decrease Probability<br />Automated tests<br />Regression / Functional / Integration tests<br />Unit tests<br />Browser tests / Click tests<br />3rd party integration tests<br />Manual QA prior to exposing features<br />Build code in a deploy mindset<br />
  16. 16. Decrease Severity <br />Decrease length of degradation<br />Production Alerts<br /><ul><li>Cluster Immune System
  17. 17. Instant production roll back</li></ul>Decrease effects of degradation<br />Stability through isolation<br />Product level fault tolerance<br />Lock down core infrastructure<br />
  18. 18. The Deploy EquationIV + DV > Risk<br />

×