SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Continuous
Deployment 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 component of the process
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 always ready for release, one
 step deployment process, monitoring
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 etc.
• Start by adding tests for bugs
• Keep the suite fast (10 - 30 minutes)
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
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
4. Excellent Monitoring

• Correlate w/ deployment & external events

• Monitor business metrics
• Monitor business processes
• Smoke tests included
5. Root cause analysis

• Faults will get in production
• Understand why
• Fix the process
• Avoid blame
Manual     Done
                                                  Trigger


         Review &   Build &   Deploy    More    Deploy
Commit                                                      Monitor
          Check      Test     Staging   Tests    Prod



                                                            Rollback



                                                  Fix        Root
                                                Process      Cause
Success Stories
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/
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
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
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/
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
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
Thanks!
Andrei Savu / asavu@axemblr.com
      Twitter: @andreisavu
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
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
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
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/
Questions?
Andrei Savu / asavu@axemblr.com
      Twitter: @andreisavu

Weitere ähnliche Inhalte

Mehr von Andrei Savu

Counters with Riak on Amazon EC2 at Hackover
Counters with Riak on Amazon EC2 at HackoverCounters with Riak on Amazon EC2 at Hackover
Counters with Riak on Amazon EC2 at Hackover
Andrei Savu
 
Polyglot Persistence & Big Data in the Cloud
Polyglot Persistence & Big Data in the CloudPolyglot Persistence & Big Data in the Cloud
Polyglot Persistence & Big Data in the Cloud
Andrei Savu
 

Mehr von Andrei Savu (20)

Recap on AWS Lambda after re:Invent 2015
Recap on AWS Lambda after re:Invent 2015Recap on AWS Lambda after re:Invent 2015
Recap on AWS Lambda after re:Invent 2015
 
One Hadoop, Multiple Clouds - NYC Big Data Meetup
One Hadoop, Multiple Clouds - NYC Big Data MeetupOne Hadoop, Multiple Clouds - NYC Big Data Meetup
One Hadoop, Multiple Clouds - NYC Big Data Meetup
 
Introducing Cloudera Director at Big Data Bash
Introducing Cloudera Director at Big Data BashIntroducing Cloudera Director at Big Data Bash
Introducing Cloudera Director at Big Data Bash
 
APIs & Underlying Protocols #APICraftSF
APIs & Underlying Protocols #APICraftSFAPIs & Underlying Protocols #APICraftSF
APIs & Underlying Protocols #APICraftSF
 
Challenges for running Hadoop on AWS - AdvancedAWS Meetup
Challenges for running Hadoop on AWS - AdvancedAWS MeetupChallenges for running Hadoop on AWS - AdvancedAWS Meetup
Challenges for running Hadoop on AWS - AdvancedAWS Meetup
 
Cloud as a Data Platform
Cloud as a Data PlatformCloud as a Data Platform
Cloud as a Data Platform
 
Apache Provisionr (incubating) - Bucharest JUG 10
Apache Provisionr (incubating) - Bucharest JUG 10Apache Provisionr (incubating) - Bucharest JUG 10
Apache Provisionr (incubating) - Bucharest JUG 10
 
Creating pools of Virtual Machines - ApacheCon NA 2013
Creating pools of Virtual Machines - ApacheCon NA 2013Creating pools of Virtual Machines - ApacheCon NA 2013
Creating pools of Virtual Machines - ApacheCon NA 2013
 
Data Scientist Toolbox
Data Scientist ToolboxData Scientist Toolbox
Data Scientist Toolbox
 
Axemblr Provisionr 0.3.x Overview
Axemblr Provisionr 0.3.x OverviewAxemblr Provisionr 0.3.x Overview
Axemblr Provisionr 0.3.x Overview
 
2012 in Review - Bucharest JUG
2012 in Review - Bucharest JUG2012 in Review - Bucharest JUG
2012 in Review - Bucharest JUG
 
Metrics for Web Applications - Netcamp 2012
Metrics for Web Applications - Netcamp 2012Metrics for Web Applications - Netcamp 2012
Metrics for Web Applications - Netcamp 2012
 
Counters with Riak on Amazon EC2 at Hackover
Counters with Riak on Amazon EC2 at HackoverCounters with Riak on Amazon EC2 at Hackover
Counters with Riak on Amazon EC2 at Hackover
 
Simple REST with Dropwizard
Simple REST with DropwizardSimple REST with Dropwizard
Simple REST with Dropwizard
 
Guava Overview Part 2 Bucharest JUG #2
Guava Overview Part 2 Bucharest JUG #2 Guava Overview Part 2 Bucharest JUG #2
Guava Overview Part 2 Bucharest JUG #2
 
Guava Overview. Part 1 @ Bucharest JUG #1
Guava Overview. Part 1 @ Bucharest JUG #1 Guava Overview. Part 1 @ Bucharest JUG #1
Guava Overview. Part 1 @ Bucharest JUG #1
 
Polyglot Persistence & Big Data in the Cloud
Polyglot Persistence & Big Data in the CloudPolyglot Persistence & Big Data in the Cloud
Polyglot Persistence & Big Data in the Cloud
 
Building a Great Team in Open Source - Open Agile 2011
Building a Great Team in Open Source - Open Agile 2011Building a Great Team in Open Source - Open Agile 2011
Building a Great Team in Open Source - Open Agile 2011
 
Apache Whirr
Apache WhirrApache Whirr
Apache Whirr
 
Automated Testing for Web Applications - Wurbe #36
Automated Testing for Web Applications - Wurbe #36Automated Testing for Web Applications - Wurbe #36
Automated Testing for Web Applications - Wurbe #36
 

Kürzlich hochgeladen

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 

Kürzlich hochgeladen (20)

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 

Continuous Deployment - Open Agile Timisoara 2012

  • 1. Continuous Deployment Pipeline Andrei Savu @ OpenAgile Timisoara 2012
  • 2. Me • Founder of Axemblr.com • Bucharest Java User Group (bjug.ro) • Open Source Contributor • Connect with me on LinkedIn
  • 3. Overview • Agile & Lean Methodology • Build-Measure-Learn Loop • Implementation Steps • Success stories • Key points
  • 4. Q: How fast can you push a change in production? (hot-fix or security update)
  • 5. Agile & Lean • Release early, Release often • Maximise learning opportunities • Build the right thing • Client as critical component of the process
  • 6. Build-Measure-Learn Loop IDEAS LEARN BUILD DATA PRODUCT MEASURE
  • 7. Speed! Quality! Cost! IDEAS LEARN BUILD DATA PRODUCT MEASURE
  • 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. Implementation Steps Pipeline Components
  • 10. 0.Version Control • Code and *Infrastructure* • Choices: Git, SVN • Configuration: Puppet, Chef, CFEngine
  • 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. 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. 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. 4. Excellent Monitoring • Correlate w/ deployment & external events • Monitor business metrics • Monitor business processes • Smoke tests included
  • 15. 5. Root cause analysis • Faults will get in production • Understand why • Fix the process • Avoid blame
  • 16. Manual Done Trigger Review & Build & Deploy More Deploy Commit Monitor Check Test Staging Tests Prod Rollback Fix Root Process Cause
  • 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. 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. 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. 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. 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. 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. Thanks! Andrei Savu / asavu@axemblr.com Twitter: @andreisavu
  • 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. 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. 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. 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. Questions? Andrei Savu / asavu@axemblr.com Twitter: @andreisavu

Hinweis der Redaktion

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n