Continuous Deployment Demystified
Upcoming SlideShare
Loading in...5
×
 

Continuous Deployment Demystified

on

  • 4,873 views

"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 ...

"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.

Statistics

Views

Total Views
4,873
Views on SlideShare
2,996
Embed Views
1,877

Actions

Likes
8
Downloads
122
Comments
0

11 Embeds 1,877

http://blogs.agilefaqs.com 1171
http://nareshjain.com 331
http://present.agileindia.org 189
http://agilefaqs.com 157
http://feeds.feedburner.com 15
http://www.linkedin.com 8
http://plus.url.google.com 2
http://coderwall.com 1
http://honyaku.yahoofs.jp 1
http://translate.googleusercontent.com 1
http://www.present.agileindia.org 1
More...

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Continuous Deployment Demystified Continuous Deployment Demystified Presentation Transcript

  • Continuous Deployment Embrace Continuous Improvement Naresh Jain @nashjain naresh@agilefaqs.com http://blogs.agilefaqs.com Licensed Under Creative Commons by Naresh Jain 1
  • Licensed Under Creative Commons by Naresh Jain 2
  • Licensed Under Creative Commons by Naresh Jain 2
  • Continuous Deployment Licensed Under Creative Commons by Naresh Jain 3
  • But....Licensed Under Creative Commons by Naresh Jain 4
  • 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
  • MeLicensed Under Creative Commons by Naresh Jain 5
  • Licensed Under Creative Commons by Naresh Jain 6
  • MumbaiLicensed Under Creative Commons by Naresh Jain 7
  • AgilePhilly Tech Talks!Licensed Under Creative Commons by Naresh Jain 8
  • FitNesse Panopticode ProTestDBFit FitDecorator ProFIT La"u Patang QWick Licensed Under Creative Commons by Naresh Jain 9
  • Licensed Under Creative Commons by Naresh Jain 10
  • Licensed Under Creative Commons by Naresh Jain 11
  • Licensed Under Creative Commons by Naresh Jain 12
  • Licensed Under Creative Commons by Naresh Jain 13
  • Licensed Under Creative Commons by Naresh Jain 14
  • Licensed Under Creative Commons by Naresh Jain 15
  • Back in the Stone-age Licensed Under Creative Commons by Naresh Jain 16
  • Happiness/Excitement Time/Money/Opportunity Cost Licensed Under Creative Commons by Naresh Jain 17
  • PlanHappiness/Excitement Time/Money/Opportunity Cost Licensed Under Creative Commons by Naresh Jain 17
  • Plan DesignHappiness/Excitement Time/Money/Opportunity Cost Licensed Under Creative Commons by Naresh Jain 17
  • Plan DesignHappiness/Excitement Distribute Time/Money/Opportunity Cost Licensed Under Creative Commons by Naresh Jain 17
  • Plan DesignHappiness/Excitement Distribute Work in Isolation Time/Money/Opportunity Cost Licensed Under Creative Commons by Naresh Jain 17
  • Plan DesignHappiness/Excitement Distribute Work in Isolation Integrate Time/Money/Opportunity Cost Licensed Under Creative Commons by Naresh Jain 17
  • Last Minute Integration Surprises Licensed Under Creative Commons by Naresh Jain 18
  • BAD things were visible too Late... Licensed Under Creative Commons by Naresh Jain 19
  • Birth of CILicensed Under Creative Commons by Naresh Jain 20
  • Licensed Under Creative Commons by Naresh Jain 21
  • CI Helped Us Learn That... Life can Suck a lot Less! Licensed Under Creative Commons by Naresh Jain 22
  • 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
  • If people are afraid to check-in frequently... your CI process is NOT working. Licensed Under Creative Commons by Naresh Jain 23
  • We already do CI. What’s next? Licensed Under Creative Commons by Naresh Jain 24
  • Multi-Stage CI Process Scaling CI using Build Promotion Licensed Under Creative Commons by Naresh Jain 25
  • Licensed Under Creative Commons by Naresh Jain 26
  • While theLean-Start-up Community They tried something quite disruptive... Licensed Under Creative Commons by Naresh Jain 27
  • Continuous Deployment (CD) Licensed Under Creative Commons by Naresh Jain 28
  • CD is quite natural for companies delivering content via Web Licensed Under Creative Commons by Naresh Jain 29
  • Freeset - In Business for Freedom Licensed Under Creative Commons by Naresh Jain 30
  • Stage 1 Static Files DB freesetglobal.com s Vie teda wUp Freeset - In Business for Freedom Licensed Under Creative Commons by Naresh Jain 30
  • 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
  • Freeset Demo Licensed Under Creative Commons by Naresh Jain 31
  • Benefits of CD Licensed Under Creative Commons by Naresh Jain 32
  • Automation removes Errors Licensed Under Creative Commons by Naresh Jain 33
  • Eliminates stressful release crunch Licensed Under Creative Commons by Naresh Jain 34
  • Users continuously see improvements Licensed Under Creative Commons by Naresh Jain 35
  • Reducing batch sizehelps drive out waste Licensed Under Creative Commons by Naresh Jain 36
  • Faster responses to customer issues Licensed Under Creative Commons by Naresh Jain 37
  • A/B testing is easierdue to less release overhead Licensed Under Creative Commons by Naresh Jain 38
  • Encouragesexperimenting with new ideas Licensed Under Creative Commons by Naresh Jain 39
  • Allows for fine-grainedmonitoring of changes Licensed Under Creative Commons by Naresh Jain 40
  • Provides satisfactionfrom seeing constant progress Licensed Under Creative Commons by Naresh Jain 41
  • 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
  • This is what we did... Licensed Under Creative Commons by Naresh Jain 43
  • Deploy build to inactive production servers Licensed Under Creative Commons by Naresh Jain 44
  • Inactive joins the cluster Licensed Under Creative Commons by Naresh Jain 45
  • Delivery tests verify inactive release Licensed Under Creative Commons by Naresh Jain 46
  • Reverse proxy swaps inactive with active Licensed Under Creative Commons by Naresh Jain 47
  • Licensed Under Creative Commons by Naresh Jain 48
  • CD Requires Zero Downtime Licensed Under Creative Commons by Naresh Jain 49
  • 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
  • What about DB Upgrades?Will Continuous Deployment work? Licensed Under Creative Commons by Naresh Jain 51
  • Hibernate• hbm2ddl.auto = update• Rarely we need to go in and update DB manually Licensed Under Creative Commons by Naresh Jain 52
  • 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
  • Zero-downtime DB Updates Src: Owen Rogers http://exortech.com/blog/ Licensed Under Creative Commons by Naresh Jain 54
  • Zero-downtime DB Updates • expansion Src: Owen Rogers http://exortech.com/blog/ Licensed Under Creative Commons by Naresh Jain 54
  • Zero-downtime DB Updates • expansion • preserves backwards compatibility Src: Owen Rogers http://exortech.com/blog/ Licensed Under Creative Commons by Naresh Jain 54
  • Zero-downtime DB Updates • expansion • preserves backwards compatibility • contract Src: Owen Rogers http://exortech.com/blog/ Licensed Under Creative Commons by Naresh Jain 54
  • 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
  • Industrial Logic’seLearning CD Demo Licensed Under Creative Commons by Naresh Jain 55
  • Eventually...Licensed Under Creative Commons by Naresh Jain 56
  • CD’s Impact on Team Culture Licensed Under Creative Commons by Naresh Jain 57
  • Encourage Evolutionary Design and Continuous Improvement culture Licensed Under Creative Commons by Naresh Jain 58
  • Breaks work into micro-pieces,thereby enabling micro-deliveries Licensed Under Creative Commons by Naresh Jain 59
  • Limited Work In Progress Licensed Under Creative Commons by Naresh Jain 60
  • Knows when to hide orreveal work in progress Licensed Under Creative Commons by Naresh Jain 61
  • Team takes shared ownership of theentire software development lifecycle Licensed Under Creative Commons by Naresh Jain 62
  • 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
  • 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
  • Team crave for rapid feedback Licensed Under Creative Commons by Naresh Jain 65
  • Complete TraceabilityVersion Control, Project & RequirementsManagements tool, Bug Tracking and Build system are completely integrated Licensed Under Creative Commons by Naresh Jain 66
  • Questions? Naresh Jain @nashjain naresh@agilefaqs.com http://blogs.agilefaqs.com Licensed Under Creative Commons by Naresh Jain 67