Your SlideShare is downloading. ×
0
CONTINUOUS DELIVERY                               in Action                         by Hu Zhenbo (Andy) ThoughtWorksFriday...
HistoryFriday, April 27, 2012
4                         yearsFriday, April 27, 2012
Page Views/Day                                                            Millions                         100            ...
Team Size                                                            70+                          70                      ...
Features Delivered   Days between major releases                         2008               2009          2010            ...
3                         major releases per yearFriday, April 27, 2012
20                         days to deployFriday, April 27, 2012
30                         people involved in deploymentFriday, April 27, 2012
Angry CustomerFriday, April 27, 2012
Sad TeamFriday, April 27, 2012
Why?Friday, April 27, 2012
RequirementFriday, April 27, 2012
Fragile SystemFriday, April 27, 2012
Deploy to DeathFriday, April 27, 2012
Features Delivered     Days between major releases                         2008           2009         2010        2011   ...
every 1 or 2 week                            delivery frequencyFriday, April 27, 2012
0.5                         days to deployFriday, April 27, 2012
1                         person dedicated for deploymentFriday, April 27, 2012
How’d we do it?Friday, April 27, 2012
One TeamFriday, April 27, 2012
CollaborationFriday, April 27, 2012
Friday, April 27, 2012
Friday, April 27, 2012
Decode 4 types                            of data                                  21 pts                   Incremental De...
Design                                                  5 pts                         Decode 4 types                      ...
Decode Data A   Decode Data B                                                   8 pts           5 pts                     ...
Feature ToggleFriday, April 27, 2012
Feature ToggleFriday, April 27, 2012
Page File                             Config File          #if                                                 ( $nonRealTi...
Increasing confidence in build’s production readiness                               Environment become more production-like...
Deployment PipelineFriday, April 27, 2012
Code                    Commit   Update                          Jar              Portal       ZIP      Upload         Cha...
Code                    Commit   Update                          Jar              Portal       ZIP      Upload         Cha...
Code                    Commit      Update                          Jar                 Portal       ZIP      Upload      ...
Payment                                                   Mobile                                         Account          ...
Payment                                                   Mobile                                         Account          ...
Payment                                                   Mobile                                         Account          ...
Payment                                                   Mobile                                         Account          ...
Payment                                                   Mobile                                         Account          ...
Payment                                                   Mobile                                         Account          ...
Test QuadrantsFriday, April 27, 2012
Manual                                  Session                                   Based                                  T...
Deployment Test               system configuration         Acceptance               component communication               s...
Performance TestFriday, April 27, 2012
Web      App      DB                                     Server   Server   Server                            Router       ...
Web      App      DB                                     Server   Server   Server                            Router       ...
Web      App      DB                                     Server   Server   Server                            Router       ...
Web      App      DB                                     Server   Server   Server                            Router       ...
Web      App      DB                                     Server   Server   Server                            Router       ...
migrate                          - 001_create_products_table.sql                          - 002_add_column_to_products.sql...
v5.1                         Green DatabaseFriday, April 27, 2012
v5.1                         readonly                           Green DatabaseFriday, April 27, 2012
Backup                           v5.1              v5.1                         readonly                           Green D...
Backup          Migrate                           v5.1              v5.1             v5.2                         readonly...
compatible with db 5.1 & 5.2      compatible with db 5.2 & 5.3                                          v5.2              ...
Voltage                                                       DB                           Fan Speed                      ...
Production MonitoringFriday, April 27, 2012
Cross Functional Team                          Continuous Integration                         Incremental Developing      ...
Good Enough?Friday, April 27, 2012
http://code.flickr.com/                         A Long Way to GoFriday, April 27, 2012
Big ReleaseFriday, April 27, 2012
Continuous DeliveryFriday, April 27, 2012
Version Control                                                                     acceptance                            ...
Q&A                          weibo: @HuZhenboFriday, April 27, 2012
Upcoming SlideShare
Loading in...5
×

Continous Delivery in Action

1,126

Published on

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

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,126
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
37
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Transcript of "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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×