Continous Delivery in Action

1,414 views

Published on

A story about the improvement of continuous delivery capability for a team in 5 months.

Published in: Technology
  • Be the first to comment

Continous Delivery in Action

  1. 1. CONTINUOUS DELIVERY in Action by Hu Zhenbo (Andy) ThoughtWorksFriday, April 27, 2012
  2. 2. HistoryFriday, April 27, 2012
  3. 3. 4 yearsFriday, April 27, 2012
  4. 4. Page Views/Day Millions 100 75 50 25 0 2008 2009 2010 2011Friday, April 27, 2012
  5. 5. Team Size 70+ 70 52.5 35 17.5 0 2008 2009 2010 2011Friday, April 27, 2012
  6. 6. Features Delivered Days between major releases 2008 2009 2010 2011Friday, April 27, 2012
  7. 7. 3 major releases per yearFriday, April 27, 2012
  8. 8. 20 days to deployFriday, April 27, 2012
  9. 9. 30 people involved in deploymentFriday, April 27, 2012
  10. 10. Angry CustomerFriday, April 27, 2012
  11. 11. Sad TeamFriday, April 27, 2012
  12. 12. Why?Friday, April 27, 2012
  13. 13. RequirementFriday, April 27, 2012
  14. 14. Fragile SystemFriday, April 27, 2012
  15. 15. Deploy to DeathFriday, April 27, 2012
  16. 16. Features Delivered Days between major releases 2008 2009 2010 2011 2012Friday, April 27, 2012
  17. 17. every 1 or 2 week delivery frequencyFriday, April 27, 2012
  18. 18. 0.5 days to deployFriday, April 27, 2012
  19. 19. 1 person dedicated for deploymentFriday, April 27, 2012
  20. 20. How’d we do it?Friday, April 27, 2012
  21. 21. One TeamFriday, April 27, 2012
  22. 22. CollaborationFriday, April 27, 2012
  23. 23. Friday, April 27, 2012
  24. 24. Friday, April 27, 2012
  25. 25. Decode 4 types of data 21 pts Incremental DevelopingFriday, April 27, 2012
  26. 26. Design 5 pts Decode 4 types Framework of data 21 pts 8 pts Decode Data 8 pts Incremental DevelopingFriday, April 27, 2012
  27. 27. Decode Data A Decode Data B 8 pts 5 pts Decode 4 types of data 21 pts Decode Data C Decode Data D 5 pts 3 pts Incremental DevelopingFriday, April 27, 2012
  28. 28. Feature ToggleFriday, April 27, 2012
  29. 29. Feature ToggleFriday, April 27, 2012
  30. 30. Page File Config File #if ( $nonRealTimeRecharge ) # Feature Toggle <div>非即时到帐</div> nonRealTimeRecharge = true <div> ... realTimeRecharge = false #end #if( $realTimeRecharge ) <div>即时到帐</div> <div> ... #end Feature ToggleFriday, April 27, 2012
  31. 31. Increasing confidence in build’s production readiness Environment become more production-like User Acceptance Testing Commit Stage exploratory test compile ... Acceptance Test analysis Production Stage unit test Non-Functional ... Testing performance test ... Slower Feedback Deployment PipelineFriday, April 27, 2012
  32. 32. Deployment PipelineFriday, April 27, 2012
  33. 33. Code Commit Update Jar Portal ZIP Upload Change Jar Dependen Stop Create Start Backup Unzip Config Server Log File Server Auto-DeployFriday, April 27, 2012
  34. 34. Code Commit Update Jar Portal ZIP Upload Change Jar Dependen Stop Create Start Backup Unzip Config Server Log File Server Auto-DeployFriday, April 27, 2012
  35. 35. Code Commit Update Jar Portal ZIP Upload Change Jar Dependen Stop Create Start Backup Unzip Config Server Log File Server One-click Deploy Auto-DeployFriday, April 27, 2012
  36. 36. Payment Mobile Account Portal Order Common Core Admin Components & DependenciesFriday, April 27, 2012
  37. 37. Payment Mobile Account Portal Order Common Core Admin Components & DependenciesFriday, April 27, 2012
  38. 38. Payment Mobile Account Portal Order Common Core Admin Components & DependenciesFriday, April 27, 2012
  39. 39. Payment Mobile Account Portal Order Common Core Admin Components & DependenciesFriday, April 27, 2012
  40. 40. Payment Mobile Account Portal Order Common Core Admin Components & DependenciesFriday, April 27, 2012
  41. 41. Payment Mobile Account Portal Order Common Core Admin Components & DependenciesFriday, April 27, 2012
  42. 42. Test QuadrantsFriday, April 27, 2012
  43. 43. Manual Session Based Testing Automated GUI Tests API Tests Integration Tests Component Tests Automated Unit Tests Test PyramidFriday, April 27, 2012
  44. 44. Deployment Test system configuration Acceptance component communication service is up and running Test ...Friday, April 27, 2012
  45. 45. Performance TestFriday, April 27, 2012
  46. 46. Web App DB Server Server Server Router Blue-Green DeployFriday, April 27, 2012
  47. 47. Web App DB Server Server Server Router v5.1 v5.1 v5.1 Blue-Green DeployFriday, April 27, 2012
  48. 48. Web App DB Server Server Server Router v5.1 v5.1 v5.1 Blue-Green DeployFriday, April 27, 2012
  49. 49. Web App DB Server Server Server Router v5.1 v5.1 v5.1 v5.2 v5.2 v5.2 Blue-Green DeployFriday, April 27, 2012
  50. 50. Web App DB Server Server Server Router v5.1 v5.1 v5.1 v5.2 v5.2 v5.2 Blue-Green DeployFriday, April 27, 2012
  51. 51. migrate - 001_create_products_table.sql - 002_add_column_to_products.sql - 003_update_data_for_products.sql rollback - 001_create_products_table.sql - 002_add_column_to_products.sql - 003_update_data_for_products.sql Data MigrationFriday, April 27, 2012
  52. 52. v5.1 Green DatabaseFriday, April 27, 2012
  53. 53. v5.1 readonly Green DatabaseFriday, April 27, 2012
  54. 54. Backup v5.1 v5.1 readonly Green DatabaseFriday, April 27, 2012
  55. 55. Backup Migrate v5.1 v5.1 v5.2 readonly Green DatabaseFriday, April 27, 2012
  56. 56. compatible with db 5.1 & 5.2 compatible with db 5.2 & 5.3 v5.2 v5.3 v5.1 v5.2 v5.3 Decouple App & DatabaseFriday, April 27, 2012
  57. 57. Voltage DB Fan Speed HTTP Temperature Hardware OS Middleware SMTP CPU Application DNS Disk Memory Production MonitoringFriday, April 27, 2012
  58. 58. Production MonitoringFriday, April 27, 2012
  59. 59. Cross Functional Team Continuous Integration Incremental Developing Feature Toggle Automate Deployment Weekly Release Deployment Pipeline Blue-Green Deployment Database Migration Production Monitoring ...Friday, April 27, 2012
  60. 60. Good Enough?Friday, April 27, 2012
  61. 61. http://code.flickr.com/ A Long Way to GoFriday, April 27, 2012
  62. 62. Big ReleaseFriday, April 27, 2012
  63. 63. Continuous DeliveryFriday, April 27, 2012
  64. 64. Version Control acceptance System test blue-green deployment virtualization canary releases build pipeline data management automatic deployment dark launch branch by abstraction configuration management DevOps infrastructure as code could computingFriday, April 27, 2012
  65. 65. Q&A weibo: @HuZhenboFriday, April 27, 2012

×