ContinuousDeployment Pipeline Andrei Savu @ OpenAgile Timisoara 2012
Me• Founder of Axemblr.com• Bucharest Java User Group (bjug.ro)• Open Source Contributor• Connect with me on LinkedIn
Overview• Agile & Lean Methodology• Build-Measure-Learn Loop• Implementation Steps• Success stories• Key points
Q: How fast can you push a change in production?      (hot-fix or security update)
Agile & Lean• Release early, Release often• Maximise learning opportunities• Build the right thing• Client as critical com...
Build-Measure-Learn Loop              IDEAS     LEARN              BUILD     DATA              PRODUCT             MEASURE
Speed! Quality! Cost!            IDEAS   LEARN              BUILD    DATA             PRODUCT           MEASURE
Continuous Deployment “All new code is automatically deployed in production by using an automated pipeline” Assumes: trunk...
Implementation Steps     Pipeline Components
0.Version Control• Code and *Infrastructure*• Choices: Git, SVN• Configuration: Puppet, Chef, CFEngine
1. CI Server• Continuous Integration Server• Backbone. Runs all tests. Gatekeeper.• Choices: Jenkins, BuildBot, TeamCity e...
2. Commit Check• Version control with a hook that allows the  server to refuse a commit• Enforce standards• “stop the line...
3. Simple Deployment• One step from a specific revision• Easy way to create a QA environment• Push button deployment to pro...
4. Excellent Monitoring• Correlate w/ deployment & external events• Monitor business metrics• Monitor business processes• ...
5. Root cause analysis• Faults will get in production• Understand why• Fix the process• Avoid blame
Manual     Done                                                  Trigger         Review &   Build &   Deploy    More    De...
Success Stories
IMVU• ~50 deploys per day in batches• 9 minutes per build across 30-40 build  servers• Doing the impossible fifty times a d...
Flickr• 10 deploys per day• “Lowering the risk of change through tools  and culture” - DevOps• Feature flags & always ship ...
Etsy• ~25 times per day• Faster cycles, Improve morale• “we don’t rollback, we fix the code”• “So simple, a VC can do it” -...
Wordpress.com• ~16 releases per day (19 / 5 / 2010)• Optimize for perfection vs. speed• One step deploy to 400 machines (3...
Facebook• 1-2 push per day - 1 large per week• 1B monthly active users• Culture, Tools, IRC• Pushing Millions of Lines of ...
Key Points• Not rocket science!• A release should be a non-event• Build quality in the development process• Partial implem...
Thanks!Andrei Savu / asavu@axemblr.com      Twitter: @andreisavu
Resources #1• Continuous Integration step by step  http://www.startuplessonslearned.com/2008/12/continuous-integration-ste...
Resources #2• 10 deploys per day @ Flickr  http://www.slideshare.net/jallspaw/10-deploys-per-day-dev-and-ops-  cooperation...
Resource #3• How Facebook Does Deployment  http://java.dzone.com/articles/how-facebook-does-deployment• Asgard: Web-based ...
Resource #4• Keeping Movies Running Amid  Thunderstorms!  http://www.slideshare.net/r39132/keeping-movies-running-amid-  t...
Questions?Andrei Savu / asavu@axemblr.com      Twitter: @andreisavu
Upcoming SlideShare
Loading in...5
×

Continuous Deployment - Open Agile Timisoara 2012

2,141

Published on

Continuous deployment is a process that allows companies to release software in minutes instead of days or weeks. All new code that is written for an application is immediately deployed in production by using an automated pipeline. This technique can dramatically increase the amount of feedback you collect and give you the ability to adapt to unexpected events.

This process requires a great deal of discipline and can enhance software quality, by applying a rigorous set of standards to every change to prevent regressions, outages, or harm to key business metrics. During my presentation I will go through the main elements that make this possible, I will review some existing tools that you can use and tell you a few stories about small and large companies that implement continuous deployment.

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

No Downloads
Views
Total Views
2,141
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
24
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Transcript of "Continuous Deployment - Open Agile Timisoara 2012"

    1. 1. ContinuousDeployment Pipeline Andrei Savu @ OpenAgile Timisoara 2012
    2. 2. Me• Founder of Axemblr.com• Bucharest Java User Group (bjug.ro)• Open Source Contributor• Connect with me on LinkedIn
    3. 3. Overview• Agile & Lean Methodology• Build-Measure-Learn Loop• Implementation Steps• Success stories• Key points
    4. 4. Q: How fast can you push a change in production? (hot-fix or security update)
    5. 5. Agile & Lean• Release early, Release often• Maximise learning opportunities• Build the right thing• Client as critical component of the process
    6. 6. Build-Measure-Learn Loop IDEAS LEARN BUILD DATA PRODUCT MEASURE
    7. 7. Speed! Quality! Cost! IDEAS LEARN BUILD DATA PRODUCT MEASURE
    8. 8. Continuous Deployment “All new code is automatically deployed in production by using an automated pipeline” Assumes: trunk always ready for release, one step deployment process, monitoring
    9. 9. Implementation Steps Pipeline Components
    10. 10. 0.Version Control• Code and *Infrastructure*• Choices: Git, SVN• Configuration: Puppet, Chef, CFEngine
    11. 11. 1. CI Server• Continuous Integration Server• Backbone. Runs all tests. Gatekeeper.• Choices: Jenkins, BuildBot, TeamCity etc.• Start by adding tests for bugs• Keep the suite fast (10 - 30 minutes)
    12. 12. 2. Commit Check• Version control with a hook that allows the server to refuse a commit• Enforce standards• “stop the line” role• Halt new changes on broken build
    13. 13. 3. Simple Deployment• One step from a specific revision• Easy way to create a QA environment• Push button deployment to production• Leverage cloud computing technologies
    14. 14. 4. Excellent Monitoring• Correlate w/ deployment & external events• Monitor business metrics• Monitor business processes• Smoke tests included
    15. 15. 5. Root cause analysis• Faults will get in production• Understand why• Fix the process• Avoid blame
    16. 16. Manual Done Trigger Review & Build & Deploy More DeployCommit Monitor Check Test Staging Tests Prod Rollback Fix Root Process Cause
    17. 17. Success Stories
    18. 18. IMVU• ~50 deploys per day in batches• 9 minutes per build across 30-40 build servers• Doing the impossible fifty times a day http://timothyfitz.wordpress.com/2009/02/10/continuous-deployment-at- imvu-doing-the-impossible-fifty-times-a-day/
    19. 19. Flickr• 10 deploys per day• “Lowering the risk of change through tools and culture” - DevOps• Feature flags & always ship trunk• Dev and Ops cooperation at Flickr http://www.slideshare.net/jallspaw/10-deploys-per-day-dev-and-ops- cooperation-at-flickr
    20. 20. Etsy• ~25 times per day• Faster cycles, Improve morale• “we don’t rollback, we fix the code”• “So simple, a VC can do it” - Pete Miron• Fred Wilson on Continuous Deployment http://www.avc.com/a_vc/2011/02/continuous-deployment.html
    21. 21. Wordpress.com• ~16 releases per day (19 / 5 / 2010)• Optimize for perfection vs. speed• One step deploy to 400 machines (30s)• In praise of continuous deployment http://toni.org/2010/05/19/in-praise-of-continuous-deployment-the- wordpress-com-story/
    22. 22. Facebook• 1-2 push per day - 1 large per week• 1B monthly active users• Culture, Tools, IRC• Pushing Millions of Lines of Code Five Days a Week https://www.facebook.com/video/video.php? v=10100259101684977&oid=9445547199
    23. 23. Key Points• Not rocket science!• A release should be a non-event• Build quality in the development process• Partial implementations can bring a lot of value
    24. 24. Thanks!Andrei Savu / asavu@axemblr.com Twitter: @andreisavu
    25. 25. Resources #1• Continuous Integration step by step http://www.startuplessonslearned.com/2008/12/continuous-integration-step- by-step.html• Five Whys http://www.startuplessonslearned.com/2008/11/five-whys.html• Anatomy of the Deployment Pipeline http://www.informit.com/articles/article.aspx?p=1621865• Building for the Cloud @ Netflix http://www.infoq.com/presentations/Building-for-the-Cloud-at-Netflix
    26. 26. Resources #2• 10 deploys per day @ Flickr http://www.slideshare.net/jallspaw/10-deploys-per-day-dev-and-ops- cooperation-at-flickr• John Allspaw blog http://www.kitchensoap.com/• Jez Humble: Continuous Delivery http://www.slideshare.net/jezhumble/continuous-delivery-5359386• Deploying at Github https://github.com/blog/1241-deploying-at-github
    27. 27. Resource #3• How Facebook Does Deployment http://java.dzone.com/articles/how-facebook-does-deployment• Asgard: Web-based Cloud Management and Deployment http://techblog.netflix.com/2012/06/asgard-web-based-cloud-management- and.html• Chaos Monkey Released Into The Wild http://techblog.netflix.com/2012/07/chaos-monkey-released-into-wild.html
    28. 28. Resource #4• Keeping Movies Running Amid Thunderstorms! http://www.slideshare.net/r39132/keeping-movies-running-amid- thunderstorms• LinkedIn Glu http://linkedin.github.com/glu/docs/latest/html/index.html• Measure Everything @ Etsy http://codeascraft.etsy.com/2011/02/15/measure-anything-measure- everything/
    29. 29. Questions?Andrei Savu / asavu@axemblr.com Twitter: @andreisavu
    1. A particular slide catching your eye?

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

    ×