150 likes | 478 Views
Continuous Delivery good & bad 4/20/2012. Kathleen Barrera CS577b Spring 2012. Overview. What is Continuous Delivery Scenario Definition How to do it well Where it can fail Conclusion Q&A. Imagine … . You are the project manager for the Virgin America booking system
E N D
Continuous Deliverygood & bad4/20/2012 Kathleen Barrera CS577b Spring 2012
Overview • What is Continuous Delivery • Scenario • Definition • How to do it well • Where it can fail • Conclusion • Q&A
Imagine … • You are the project manager for the Virgin America booking system • Critical bug on phone app is incorrectly charging flights as $1000 instead of $100!!! • New feature that sends ticket coupons to anyone who tweets #virginamerica25coupon to compete with JetBlue
But … • Your software release process is PAINFUL and SLOW • LOTS of integration bugs • Bugs in production cannot be reproduced in development
Continuous Delivery • Software release needs to FAST and PAINLESS and.. RELIABLE
Continuous Delivery “.. effective pattern for getting software [from] development to release” – 2010, Continuous Delivery, Farley & Humble
Related Concepts • Continuous Integration • Test Driven Development • Test Automation • …
How ? • Development • Continuous integration – integrate early and often • Keep builds fast • Build tests in
How ? • Development • Version Control • Branch when necessary • Follow good configuration management practices • Manage Dependencies well (SOA, loosley coupled)
How ? • Testing • Automated testing • Everyone owns the testing suite!
How ? • Scripted build & deployment • Overnight builds • Push button deployment • Eliminate manualsteps
But … • Instant deployment does not happen instantly • Need to refactor current deployment pipeline • May need to procure tools / hardware / training • ROI may be slow and gradual
But … • Introduce more risk • Release too much instead of incrementally • Difficult to discover what broke what • Or … Users don’t want features!
Conclusion • Continuous Delivery driven by BUSINESS • Goal/Question/Metric? • Continuous Delivery is owned by everyone on the team • Not one person’s job! • Continuous Delivery relies on collaboration at every stage and feedback and starts early in the development lifecycle