continuous deployment
TRANSCRIPT
![Page 1: Continuous Deployment](https://reader036.vdocuments.us/reader036/viewer/2022062418/556610e1d8b42a06318b4c2a/html5/thumbnails/1.jpg)
Continuous Deployment
Timothy FitzCTO of Canvas
![Page 2: Continuous Deployment](https://reader036.vdocuments.us/reader036/viewer/2022062418/556610e1d8b42a06318b4c2a/html5/thumbnails/2.jpg)
“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.”
![Page 3: Continuous Deployment](https://reader036.vdocuments.us/reader036/viewer/2022062418/556610e1d8b42a06318b4c2a/html5/thumbnails/3.jpg)
“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.”
![Page 4: Continuous Deployment](https://reader036.vdocuments.us/reader036/viewer/2022062418/556610e1d8b42a06318b4c2a/html5/thumbnails/4.jpg)
The Vision
• On every key press– Compile– Run automated tests– Deploy
• “Live Coding”
![Page 5: Continuous Deployment](https://reader036.vdocuments.us/reader036/viewer/2022062418/556610e1d8b42a06318b4c2a/html5/thumbnails/5.jpg)
Eliminate Waste
• Deploying code validates assumptions• Bad assumptions cause waste– Code built on top is waste– Design built on top is waste– Thought built on top is waste
![Page 6: Continuous Deployment](https://reader036.vdocuments.us/reader036/viewer/2022062418/556610e1d8b42a06318b4c2a/html5/thumbnails/6.jpg)
The Reality
• Change has risk• Infrastructure isn’t free
![Page 7: Continuous Deployment](https://reader036.vdocuments.us/reader036/viewer/2022062418/556610e1d8b42a06318b4c2a/html5/thumbnails/7.jpg)
![Page 8: Continuous Deployment](https://reader036.vdocuments.us/reader036/viewer/2022062418/556610e1d8b42a06318b4c2a/html5/thumbnails/8.jpg)
At Canvas
• Small CD shop• 5 committers• Deploy process is “git push”
![Page 9: Continuous Deployment](https://reader036.vdocuments.us/reader036/viewer/2022062418/556610e1d8b42a06318b4c2a/html5/thumbnails/9.jpg)
At Scale: IMVU
• Profitable• MMO + Virtual Economy Etsy• 50+ Technical Staff
![Page 10: Continuous Deployment](https://reader036.vdocuments.us/reader036/viewer/2022062418/556610e1d8b42a06318b4c2a/html5/thumbnails/10.jpg)
At Scale: Etsy
![Page 11: Continuous Deployment](https://reader036.vdocuments.us/reader036/viewer/2022062418/556610e1d8b42a06318b4c2a/html5/thumbnails/11.jpg)
The Deploy Equation
• Direct Value (DV)• Information Value (IV)• Deployment Risk• When IV + DV > Risk: Deploy!
![Page 12: Continuous Deployment](https://reader036.vdocuments.us/reader036/viewer/2022062418/556610e1d8b42a06318b4c2a/html5/thumbnails/12.jpg)
Increase Information Value
• Small commits mean more information earlier• Implement features implementation-risk-first• Conscious information gathering
![Page 13: Continuous Deployment](https://reader036.vdocuments.us/reader036/viewer/2022062418/556610e1d8b42a06318b4c2a/html5/thumbnails/13.jpg)
Increase Direct Value
• Feature shippable from day 0• Never blocked on deploy cycle• Higher velocity• Lean Thinking
![Page 14: Continuous Deployment](https://reader036.vdocuments.us/reader036/viewer/2022062418/556610e1d8b42a06318b4c2a/html5/thumbnails/14.jpg)
Risk=
Exposure * Probability * Severity
![Page 15: Continuous Deployment](https://reader036.vdocuments.us/reader036/viewer/2022062418/556610e1d8b42a06318b4c2a/html5/thumbnails/15.jpg)
Decrease Exposure
• Dark launch non-frontend changes• Controlled exposure via feature rollout code– Expose to staff/QA only– Expose to opt-in beta testers– Gradually increase exposure from 1-100%
• Feature-level rollback
![Page 16: Continuous Deployment](https://reader036.vdocuments.us/reader036/viewer/2022062418/556610e1d8b42a06318b4c2a/html5/thumbnails/16.jpg)
Decrease Probability
• Automated tests– Regression / Functional / Integration tests– Unit tests– Browser tests / Click tests– 3rd party integration tests
• Manual QA prior to exposing features• Build code in a deploy mindset
![Page 17: Continuous Deployment](https://reader036.vdocuments.us/reader036/viewer/2022062418/556610e1d8b42a06318b4c2a/html5/thumbnails/17.jpg)
Decrease Severity
• Decrease length of degradation– Production Alerts– Cluster Immune System– Instant production roll back
• Decrease effects of degradation– Stability through isolation– Product level fault tolerance– Lock down core infrastructure
![Page 18: Continuous Deployment](https://reader036.vdocuments.us/reader036/viewer/2022062418/556610e1d8b42a06318b4c2a/html5/thumbnails/18.jpg)
FAQ
• What about shema changes?• Great, how do I get started?
![Page 19: Continuous Deployment](https://reader036.vdocuments.us/reader036/viewer/2022062418/556610e1d8b42a06318b4c2a/html5/thumbnails/19.jpg)
Schema Changes: They hate your code
• Code and schema move in locked steps• Favor schemaless design– Minimize classical schema changes– Offend DBAs with your lack of normalization– Lightweight/Schemaless databases (“nosql”)
![Page 20: Continuous Deployment](https://reader036.vdocuments.us/reader036/viewer/2022062418/556610e1d8b42a06318b4c2a/html5/thumbnails/20.jpg)
Schema Changes: They hate your uptime
• Did I mention schemaless databases yet?• Apply updates to standbys• Blue/Green cluster setup
![Page 21: Continuous Deployment](https://reader036.vdocuments.us/reader036/viewer/2022062418/556610e1d8b42a06318b4c2a/html5/thumbnails/21.jpg)
Great, how do I get started?
• Nike method: Just do it
![Page 22: Continuous Deployment](https://reader036.vdocuments.us/reader036/viewer/2022062418/556610e1d8b42a06318b4c2a/html5/thumbnails/22.jpg)
tl;dr
• We’ve come a long way• We have a long way to go• IV + DV > Exposure * Probability * Severity.• Rethink schema changes• Continous Deployment: Just do it• Questions?