SlideShare una empresa de Scribd logo
1 de 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

Más contenido relacionado

Más de Andrei Savu

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 2015Andrei Savu
 
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 MeetupAndrei Savu
 
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 BashAndrei Savu
 
APIs & Underlying Protocols #APICraftSF
APIs & Underlying Protocols #APICraftSFAPIs & Underlying Protocols #APICraftSF
APIs & Underlying Protocols #APICraftSFAndrei Savu
 
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 MeetupAndrei Savu
 
Cloud as a Data Platform
Cloud as a Data PlatformCloud as a Data Platform
Cloud as a Data PlatformAndrei Savu
 
Apache Provisionr (incubating) - Bucharest JUG 10
Apache Provisionr (incubating) - Bucharest JUG 10Apache Provisionr (incubating) - Bucharest JUG 10
Apache Provisionr (incubating) - Bucharest JUG 10Andrei Savu
 
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 2013Andrei Savu
 
Data Scientist Toolbox
Data Scientist ToolboxData Scientist Toolbox
Data Scientist ToolboxAndrei Savu
 
Axemblr Provisionr 0.3.x Overview
Axemblr Provisionr 0.3.x OverviewAxemblr Provisionr 0.3.x Overview
Axemblr Provisionr 0.3.x OverviewAndrei Savu
 
2012 in Review - Bucharest JUG
2012 in Review - Bucharest JUG2012 in Review - Bucharest JUG
2012 in Review - Bucharest JUGAndrei Savu
 
Metrics for Web Applications - Netcamp 2012
Metrics for Web Applications - Netcamp 2012Metrics for Web Applications - Netcamp 2012
Metrics for Web Applications - Netcamp 2012Andrei 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 HackoverAndrei Savu
 
Simple REST with Dropwizard
Simple REST with DropwizardSimple REST with Dropwizard
Simple REST with DropwizardAndrei Savu
 
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 Andrei Savu
 
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 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 CloudAndrei Savu
 
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 2011Andrei Savu
 
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 #36Andrei Savu
 

Más de 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
 

Último

Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 

Último (20)

Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 

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

Notas del editor

  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