SlideShare a Scribd company logo
Release Management
From Packages to Production


    Philip J. Hollenback
   philiph@yahoo-inc.com


        April 2011
Hi There



     Yahoo! Mail
           maybe you’ve heard of it?
     Release Management
           we install the softwares
           supported by many others in Service Engineering
Environment




     10k freebsd machines
     Other teams handle the hardware
     We focus on just the software installs
Houston?



     Core mail backend servers means lots of legacy code
           About 1500 software packages
     Mail must be 100% reliable
           People expect email to always be available
     It’s hard to load test mail service
Solution


      Distributed, cached software repositories with dist
      Keep system state in Igor
      Assemble releases with SRM
      Massively parallel pushes with Pogo
      Rigorous release cycle
      DO IT FAST
           (3 week release timeline)
Release Philosophy




      All Packages All Environments
          Packages must be installed on all servers of a given type
          Only way we can properly test releases
          Any other solution leads to many separate ’releases’
Which brings us to. . .
Release Trains


      Start a new train every 3 weeks
      Release Management and QA hand release back and forth
      Release assembly with SRM
      QA does integration
      QA final test & signoff
      Push to Prod in about a week (with Pogo)
          That’s 10k hosts worldwide, folks
Delays?



     Train delays suck
          See the part about DOING IT FAST
     too much backup means we cancel
          roll changes into next train
     QA is limiting factor
Massively Parallel Pushes


      Launch software push on lots of hosts at once
          but with constraints & healthcheck

  Starting a push to about 3000 hosts

  $ pogo run -R Train_34 -I @mail.farm.xset.deploy-stage4-us
  Password:
  p0000031421; http://pogo.corp.yahoo.com/p0000031421
  status: running: constraints computed
Job Complete
      10 hours to push to just over 3000 servers:

  End of Push

  CMR completed successfully
  Start Wed Apr 13 2011 22:24:45 GMT-0700 (PDT)
  End Thu Apr 14 2011 08:24:44 GMT-0700 (PDT) (+10h0s)
  Total Hosts : 3046 (Skipped 36 invalid hosts)
  Finished : 3038
  Completion % : 99.73%



              ps - open source pogo can be found at
                  https://github.com/nrh/pogo/
Yes, We Do Rollbacks




     Rigorous Release Testing
         forward and backward
         bare metal
     Full rollback roughly every 6 months
What Works




     massively parallel pushes
     rollback
     rigorous release testing
Challenges




      getting developers to care about old code
      package quality, install/remove scripts
      separating bugfix and feature trains
      moving settings to central config servers
To Sum It Up



                  DON’T BE CLEVER!

     Install the same packages everywhere
     Test releases thoroughly before rollout
     The simple approach is most likely to succeed
Thanks for Listening!
                     Phil Hollenback
                 philiph@yahoo-inc.com
                         @philiph
               http://www.hollenback.net

                This Is A Team Effort
                      Jen Draper
                     Jerrod Kensil
                     Brian McNeff
                       Joon Kim
                 Shajeeb Muhammad
                    Prem Ramnath
                   Tisha Emmanuel
                    Pradipta Ghosh
Any Questions?

More Related Content

Viewers also liked (14)

Evergreen here and_now
Evergreen here and_nowEvergreen here and_now
Evergreen here and_now
 
Evergreen here and_now
Evergreen here and_nowEvergreen here and_now
Evergreen here and_now
 
We the people
We the peopleWe the people
We the people
 
World Citizen
World CitizenWorld Citizen
World Citizen
 
Jgm kas yra_gis_ir_maps_20110422Skaitmeniniai žemėlapiai mūsų gyvenime, GIS p...
Jgm kas yra_gis_ir_maps_20110422Skaitmeniniai žemėlapiai mūsų gyvenime, GIS p...Jgm kas yra_gis_ir_maps_20110422Skaitmeniniai žemėlapiai mūsų gyvenime, GIS p...
Jgm kas yra_gis_ir_maps_20110422Skaitmeniniai žemėlapiai mūsų gyvenime, GIS p...
 
Trevlig trall i C
Trevlig trall i CTrevlig trall i C
Trevlig trall i C
 
Retail2 crooks1
Retail2 crooks1Retail2 crooks1
Retail2 crooks1
 
Scoop.it everywhere
Scoop.it everywhereScoop.it everywhere
Scoop.it everywhere
 
Scoop.it everywhere
Scoop.it everywhereScoop.it everywhere
Scoop.it everywhere
 
Presentation 2012
Presentation 2012Presentation 2012
Presentation 2012
 
Easybiz (IT Consultancy on Outsourcing)
Easybiz (IT Consultancy on Outsourcing)Easybiz (IT Consultancy on Outsourcing)
Easybiz (IT Consultancy on Outsourcing)
 
TE Data's Global Data Service
TE Data's Global Data Service TE Data's Global Data Service
TE Data's Global Data Service
 
Planogram
PlanogramPlanogram
Planogram
 
プレゼンの基本
プレゼンの基本プレゼンの基本
プレゼンの基本
 

Similar to Yahoo Release Management

PHP to Python with No Regrets
PHP to Python with No RegretsPHP to Python with No Regrets
PHP to Python with No Regrets
Alex Ezell
 
Gozengo sauce presentation
Gozengo sauce presentationGozengo sauce presentation
Gozengo sauce presentation
Daniel Straus
 
How Percolate uses CFEngine to Manage AWS Stateless Infrastructure
How Percolate uses CFEngine to Manage AWS Stateless InfrastructureHow Percolate uses CFEngine to Manage AWS Stateless Infrastructure
How Percolate uses CFEngine to Manage AWS Stateless Infrastructure
Percolate
 
Entaggle: an Agile Software Development Case Study
Entaggle: an Agile Software Development Case StudyEntaggle: an Agile Software Development Case Study
Entaggle: an Agile Software Development Case Study
Elisabeth Hendrickson
 

Similar to Yahoo Release Management (20)

DevOps - Boldly Go for Distro
DevOps - Boldly Go for DistroDevOps - Boldly Go for Distro
DevOps - Boldly Go for Distro
 
RENCI User Group Meeting 2017 - I Upgraded iRODS and I still have all my hair
RENCI User Group Meeting 2017 - I Upgraded iRODS and I still have all my hairRENCI User Group Meeting 2017 - I Upgraded iRODS and I still have all my hair
RENCI User Group Meeting 2017 - I Upgraded iRODS and I still have all my hair
 
Adopting continuous delivery in video games - Pipeline Conference 2018
Adopting continuous delivery in video games - Pipeline Conference 2018Adopting continuous delivery in video games - Pipeline Conference 2018
Adopting continuous delivery in video games - Pipeline Conference 2018
 
PHP to Python with No Regrets
PHP to Python with No RegretsPHP to Python with No Regrets
PHP to Python with No Regrets
 
Devops
DevopsDevops
Devops
 
Docker-native Automated Delivery w/ Caylent
Docker-native Automated Delivery w/ CaylentDocker-native Automated Delivery w/ Caylent
Docker-native Automated Delivery w/ Caylent
 
Principles and Practices in Continuous Deployment at Etsy
Principles and Practices in Continuous Deployment at EtsyPrinciples and Practices in Continuous Deployment at Etsy
Principles and Practices in Continuous Deployment at Etsy
 
Continuous Delivery for Python Developers – PyCon Otto
Continuous Delivery for Python Developers – PyCon OttoContinuous Delivery for Python Developers – PyCon Otto
Continuous Delivery for Python Developers – PyCon Otto
 
How Gozengo Implemented a Continuous Deployment Culture from Day One
How Gozengo Implemented a Continuous Deployment Culture from Day OneHow Gozengo Implemented a Continuous Deployment Culture from Day One
How Gozengo Implemented a Continuous Deployment Culture from Day One
 
Gozengo sauce presentation
Gozengo sauce presentationGozengo sauce presentation
Gozengo sauce presentation
 
Pitchero - Increasing agility through DevOps - Leeds DevOps November 2016
Pitchero - Increasing agility through DevOps - Leeds DevOps November 2016Pitchero - Increasing agility through DevOps - Leeds DevOps November 2016
Pitchero - Increasing agility through DevOps - Leeds DevOps November 2016
 
Uber mobility - Build & Release
Uber mobility - Build & ReleaseUber mobility - Build & Release
Uber mobility - Build & Release
 
Jonny wooldridge DevOps Large and Small
Jonny wooldridge DevOps Large and SmallJonny wooldridge DevOps Large and Small
Jonny wooldridge DevOps Large and Small
 
Continuous deployment-at-flipkart
Continuous deployment-at-flipkartContinuous deployment-at-flipkart
Continuous deployment-at-flipkart
 
Enjoying the Journey from Puppet 3.x to Puppet 4.x (PuppetConf 2016)
Enjoying the Journey from Puppet 3.x to Puppet 4.x (PuppetConf 2016)Enjoying the Journey from Puppet 3.x to Puppet 4.x (PuppetConf 2016)
Enjoying the Journey from Puppet 3.x to Puppet 4.x (PuppetConf 2016)
 
How Percolate uses CFEngine to Manage AWS Stateless Infrastructure
How Percolate uses CFEngine to Manage AWS Stateless InfrastructureHow Percolate uses CFEngine to Manage AWS Stateless Infrastructure
How Percolate uses CFEngine to Manage AWS Stateless Infrastructure
 
Entaggle: an Agile Software Development Case Study
Entaggle: an Agile Software Development Case StudyEntaggle: an Agile Software Development Case Study
Entaggle: an Agile Software Development Case Study
 
Improve the deployment process step by step
Improve the deployment process step by stepImprove the deployment process step by step
Improve the deployment process step by step
 
Continuous Deployment
Continuous DeploymentContinuous Deployment
Continuous Deployment
 
PuppetConf 2016: Enjoying the Journey from Puppet 3.x to 4.x – Rob Nelson, AT&T
PuppetConf 2016: Enjoying the Journey from Puppet 3.x to 4.x – Rob Nelson, AT&T PuppetConf 2016: Enjoying the Journey from Puppet 3.x to 4.x – Rob Nelson, AT&T
PuppetConf 2016: Enjoying the Journey from Puppet 3.x to 4.x – Rob Nelson, AT&T
 

Recently uploaded

State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 

Recently uploaded (20)

КАТЕРИНА АБЗЯТОВА «Ефективне планування тестування ключові аспекти та практ...
КАТЕРИНА АБЗЯТОВА  «Ефективне планування тестування  ключові аспекти та практ...КАТЕРИНА АБЗЯТОВА  «Ефективне планування тестування  ключові аспекти та практ...
КАТЕРИНА АБЗЯТОВА «Ефективне планування тестування ключові аспекти та практ...
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
UiPath New York Community Day in-person event
UiPath New York Community Day in-person eventUiPath New York Community Day in-person event
UiPath New York Community Day in-person event
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 

Yahoo Release Management

  • 1. Release Management From Packages to Production Philip J. Hollenback philiph@yahoo-inc.com April 2011
  • 2. Hi There Yahoo! Mail maybe you’ve heard of it? Release Management we install the softwares supported by many others in Service Engineering
  • 3. Environment 10k freebsd machines Other teams handle the hardware We focus on just the software installs
  • 4. Houston? Core mail backend servers means lots of legacy code About 1500 software packages Mail must be 100% reliable People expect email to always be available It’s hard to load test mail service
  • 5. Solution Distributed, cached software repositories with dist Keep system state in Igor Assemble releases with SRM Massively parallel pushes with Pogo Rigorous release cycle DO IT FAST (3 week release timeline)
  • 6. Release Philosophy All Packages All Environments Packages must be installed on all servers of a given type Only way we can properly test releases Any other solution leads to many separate ’releases’
  • 7. Which brings us to. . .
  • 8.
  • 9. Release Trains Start a new train every 3 weeks Release Management and QA hand release back and forth Release assembly with SRM QA does integration QA final test & signoff Push to Prod in about a week (with Pogo) That’s 10k hosts worldwide, folks
  • 10. Delays? Train delays suck See the part about DOING IT FAST too much backup means we cancel roll changes into next train QA is limiting factor
  • 11. Massively Parallel Pushes Launch software push on lots of hosts at once but with constraints & healthcheck Starting a push to about 3000 hosts $ pogo run -R Train_34 -I @mail.farm.xset.deploy-stage4-us Password: p0000031421; http://pogo.corp.yahoo.com/p0000031421 status: running: constraints computed
  • 12.
  • 13. Job Complete 10 hours to push to just over 3000 servers: End of Push CMR completed successfully Start Wed Apr 13 2011 22:24:45 GMT-0700 (PDT) End Thu Apr 14 2011 08:24:44 GMT-0700 (PDT) (+10h0s) Total Hosts : 3046 (Skipped 36 invalid hosts) Finished : 3038 Completion % : 99.73% ps - open source pogo can be found at https://github.com/nrh/pogo/
  • 14. Yes, We Do Rollbacks Rigorous Release Testing forward and backward bare metal Full rollback roughly every 6 months
  • 15. What Works massively parallel pushes rollback rigorous release testing
  • 16. Challenges getting developers to care about old code package quality, install/remove scripts separating bugfix and feature trains moving settings to central config servers
  • 17. To Sum It Up DON’T BE CLEVER! Install the same packages everywhere Test releases thoroughly before rollout The simple approach is most likely to succeed
  • 18. Thanks for Listening! Phil Hollenback philiph@yahoo-inc.com @philiph http://www.hollenback.net This Is A Team Effort Jen Draper Jerrod Kensil Brian McNeff Joon Kim Shajeeb Muhammad Prem Ramnath Tisha Emmanuel Pradipta Ghosh