Continuous Deployment - Open Agile Timisoara 2012

2,719 views

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
6 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,719
On SlideShare
0
From Embeds
0
Number of Embeds
206
Actions
Shares
0
Downloads
29
Comments
0
Likes
6
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
  • 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

    ×