Continuous Deployment Demystified

7,274 views

Published on

"Release Early, Release Often" is a proven mantra, but what happens when you push this practice to it's limits? .i.e. deploying latest code changes to the production servers every time a developer checks-in code.

At Industrial Logic, developers are deploying code dozens of times a day, rapidly responding to their customers and reducing their "code inventory".

In this talk I explained the approach, deployment architecture, tools and culture needed for CD and how at Industrial Logic, we have gradually got there.

You can walk away with some good ideas of how your company can practice CD too.

0 Comments
10 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
7,274
On SlideShare
0
From Embeds
0
Number of Embeds
3,430
Actions
Shares
0
Downloads
157
Comments
0
Likes
10
Embeds 0
No embeds

No notes for slide

Continuous Deployment Demystified

  1. 1. Continuous Deployment Embrace Continuous Improvement Naresh Jain @nashjain naresh@agilefaqs.com http://blogs.agilefaqs.com Licensed Under Creative Commons by Naresh Jain 1
  2. 2. Licensed Under Creative Commons by Naresh Jain 2
  3. 3. Licensed Under Creative Commons by Naresh Jain 2
  4. 4. Continuous Deployment Licensed Under Creative Commons by Naresh Jain 3
  5. 5. But....Licensed Under Creative Commons by Naresh Jain 4
  6. 6. re nt! diffe re us? ? Too e a or W F h ere mu em ch probl Ch re a aos he Wh o? W ? Is t hen ? ROI?Pro duc tivit y? Licensed Under Creative Commons by Naresh Jain 4
  7. 7. MeLicensed Under Creative Commons by Naresh Jain 5
  8. 8. Licensed Under Creative Commons by Naresh Jain 6
  9. 9. MumbaiLicensed Under Creative Commons by Naresh Jain 7
  10. 10. AgilePhilly Tech Talks!Licensed Under Creative Commons by Naresh Jain 8
  11. 11. FitNesse Panopticode ProTestDBFit FitDecorator ProFIT La"u Patang QWick Licensed Under Creative Commons by Naresh Jain 9
  12. 12. Licensed Under Creative Commons by Naresh Jain 10
  13. 13. Licensed Under Creative Commons by Naresh Jain 11
  14. 14. Licensed Under Creative Commons by Naresh Jain 12
  15. 15. Licensed Under Creative Commons by Naresh Jain 13
  16. 16. Licensed Under Creative Commons by Naresh Jain 14
  17. 17. Licensed Under Creative Commons by Naresh Jain 15
  18. 18. Back in the Stone-age Licensed Under Creative Commons by Naresh Jain 16
  19. 19. Happiness/Excitement Time/Money/Opportunity Cost Licensed Under Creative Commons by Naresh Jain 17
  20. 20. PlanHappiness/Excitement Time/Money/Opportunity Cost Licensed Under Creative Commons by Naresh Jain 17
  21. 21. Plan DesignHappiness/Excitement Time/Money/Opportunity Cost Licensed Under Creative Commons by Naresh Jain 17
  22. 22. Plan DesignHappiness/Excitement Distribute Time/Money/Opportunity Cost Licensed Under Creative Commons by Naresh Jain 17
  23. 23. Plan DesignHappiness/Excitement Distribute Work in Isolation Time/Money/Opportunity Cost Licensed Under Creative Commons by Naresh Jain 17
  24. 24. Plan DesignHappiness/Excitement Distribute Work in Isolation Integrate Time/Money/Opportunity Cost Licensed Under Creative Commons by Naresh Jain 17
  25. 25. Last Minute Integration Surprises Licensed Under Creative Commons by Naresh Jain 18
  26. 26. BAD things were visible too Late... Licensed Under Creative Commons by Naresh Jain 19
  27. 27. Birth of CILicensed Under Creative Commons by Naresh Jain 20
  28. 28. Licensed Under Creative Commons by Naresh Jain 21
  29. 29. CI Helped Us Learn That... Life can Suck a lot Less! Licensed Under Creative Commons by Naresh Jain 22
  30. 30. CI Helped Us Learn That... Life can Suck a lot Less!Collaboration Feedback Quality Delivery Time Wastage Licensed Under Creative Commons by Naresh Jain 22
  31. 31. If people are afraid to check-in frequently... your CI process is NOT working. Licensed Under Creative Commons by Naresh Jain 23
  32. 32. We already do CI. What’s next? Licensed Under Creative Commons by Naresh Jain 24
  33. 33. Multi-Stage CI Process Scaling CI using Build Promotion Licensed Under Creative Commons by Naresh Jain 25
  34. 34. Licensed Under Creative Commons by Naresh Jain 26
  35. 35. While theLean-Start-up Community They tried something quite disruptive... Licensed Under Creative Commons by Naresh Jain 27
  36. 36. Continuous Deployment (CD) Licensed Under Creative Commons by Naresh Jain 28
  37. 37. CD is quite natural for companies delivering content via Web Licensed Under Creative Commons by Naresh Jain 29
  38. 38. Freeset - In Business for Freedom Licensed Under Creative Commons by Naresh Jain 30
  39. 39. Stage 1 Static Files DB freesetglobal.com s Vie teda wUp Freeset - In Business for Freedom Licensed Under Creative Commons by Naresh Jain 30
  40. 40. Stage 1 Stage 2 Static Static Static Files Files Files DB DB DB Structural Changes Sync freesetglobal.com dev.freesetglobal.com freesetglobal.com s Updates Vie te Viewda wUp ck li -C oy le pl ng De Si Freeset - In Business for Freedom Licensed Under Creative Commons by Naresh Jain 30
  41. 41. Freeset Demo Licensed Under Creative Commons by Naresh Jain 31
  42. 42. Benefits of CD Licensed Under Creative Commons by Naresh Jain 32
  43. 43. Automation removes Errors Licensed Under Creative Commons by Naresh Jain 33
  44. 44. Eliminates stressful release crunch Licensed Under Creative Commons by Naresh Jain 34
  45. 45. Users continuously see improvements Licensed Under Creative Commons by Naresh Jain 35
  46. 46. Reducing batch sizehelps drive out waste Licensed Under Creative Commons by Naresh Jain 36
  47. 47. Faster responses to customer issues Licensed Under Creative Commons by Naresh Jain 37
  48. 48. A/B testing is easierdue to less release overhead Licensed Under Creative Commons by Naresh Jain 38
  49. 49. Encouragesexperimenting with new ideas Licensed Under Creative Commons by Naresh Jain 39
  50. 50. Allows for fine-grainedmonitoring of changes Licensed Under Creative Commons by Naresh Jain 40
  51. 51. Provides satisfactionfrom seeing constant progress Licensed Under Creative Commons by Naresh Jain 41
  52. 52. Can we embrace CD for eLearning?Rich Multi-Media Content Video, Screencasts, Quizzes, Images, Personas, etc.Programming Exercises Java, C#, C++, C & Python Mac OS, Windows, Linux, SolarisDifferent IDE PluginsServer side code analysis (Java, C#, C++, C & Python) Licensed Under Creative Commons by Naresh Jain 42
  53. 53. This is what we did... Licensed Under Creative Commons by Naresh Jain 43
  54. 54. Deploy build to inactive production servers Licensed Under Creative Commons by Naresh Jain 44
  55. 55. Inactive joins the cluster Licensed Under Creative Commons by Naresh Jain 45
  56. 56. Delivery tests verify inactive release Licensed Under Creative Commons by Naresh Jain 46
  57. 57. Reverse proxy swaps inactive with active Licensed Under Creative Commons by Naresh Jain 47
  58. 58. Licensed Under Creative Commons by Naresh Jain 48
  59. 59. CD Requires Zero Downtime Licensed Under Creative Commons by Naresh Jain 49
  60. 60. Zero Downtime RequiresPerforming updates without interrupting users is essential for Zero Downtime deployments.• The application code• Database schema• Data files• Web Server• Application Server or Servlet Container• Database Server• OS upgrades and patches Licensed Under Creative Commons by Naresh Jain 50
  61. 61. What about DB Upgrades?Will Continuous Deployment work? Licensed Under Creative Commons by Naresh Jain 51
  62. 62. Hibernate• hbm2ddl.auto = update• Rarely we need to go in and update DB manually Licensed Under Creative Commons by Naresh Jain 52
  63. 63. Zero-downtime DB Updates 012_rename_login_id_to_user_name012_add_user_name_column 02_remove_login_id_column expansion contraction Src: Owen Rogers http://exortech.com/blog/ Licensed Under Creative Commons by Naresh Jain 53
  64. 64. Zero-downtime DB Updates Src: Owen Rogers http://exortech.com/blog/ Licensed Under Creative Commons by Naresh Jain 54
  65. 65. Zero-downtime DB Updates • expansion Src: Owen Rogers http://exortech.com/blog/ Licensed Under Creative Commons by Naresh Jain 54
  66. 66. Zero-downtime DB Updates • expansion • preserves backwards compatibility Src: Owen Rogers http://exortech.com/blog/ Licensed Under Creative Commons by Naresh Jain 54
  67. 67. Zero-downtime DB Updates • expansion • preserves backwards compatibility • contract Src: Owen Rogers http://exortech.com/blog/ Licensed Under Creative Commons by Naresh Jain 54
  68. 68. Zero-downtime DB Updates • expansion • preserves backwards compatibility • contract • clean up Src: Owen Rogers http://exortech.com/blog/ Licensed Under Creative Commons by Naresh Jain 54
  69. 69. Industrial Logic’seLearning CD Demo Licensed Under Creative Commons by Naresh Jain 55
  70. 70. Eventually...Licensed Under Creative Commons by Naresh Jain 56
  71. 71. CD’s Impact on Team Culture Licensed Under Creative Commons by Naresh Jain 57
  72. 72. Encourage Evolutionary Design and Continuous Improvement culture Licensed Under Creative Commons by Naresh Jain 58
  73. 73. Breaks work into micro-pieces,thereby enabling micro-deliveries Licensed Under Creative Commons by Naresh Jain 59
  74. 74. Limited Work In Progress Licensed Under Creative Commons by Naresh Jain 60
  75. 75. Knows when to hide orreveal work in progress Licensed Under Creative Commons by Naresh Jain 61
  76. 76. Team takes shared ownership of theentire software development lifecycle Licensed Under Creative Commons by Naresh Jain 62
  77. 77. The product is in a always-working-stateNo developer is blocked because they cant get stable code Licensed Under Creative Commons by Naresh Jain 63
  78. 78. Stop the Line CultureTeam catches issues at the source and avoid last minute integration and deployment nightmares Licensed Under Creative Commons by Naresh Jain 64
  79. 79. Team crave for rapid feedback Licensed Under Creative Commons by Naresh Jain 65
  80. 80. Complete TraceabilityVersion Control, Project & RequirementsManagements tool, Bug Tracking and Build system are completely integrated Licensed Under Creative Commons by Naresh Jain 66
  81. 81. Questions? Naresh Jain @nashjain naresh@agilefaqs.com http://blogs.agilefaqs.com Licensed Under Creative Commons by Naresh Jain 67

×