SlideShare une entreprise Scribd logo
1  sur  158
Télécharger pour lire hors ligne
Releasing to
Production Every
     Week
1 year
46 releases
1 rollback
summary
lessons learned
poll:
how long is your
 release cycle?
Company
real-time energy
  monitoring
building energy
   efficiency
save $
save kW
save
aggregate data
hosted solution
SaaS
Java
learn
Team
• 9 developers
• 9 developers
• 1 product manager
• 9 developers
• 1 product manager
• 1 graphic designer
• 9 developers
• 1 product manager
• 1 graphic designer
• 1 tester*
• 9 developers
• 1 product manager
• 1 graphic designer
• 1 tester*
              * recently added
what’s missing?
operations?
support?
QA?
project manager?
DBA?
generalizing
 specialists
fungibility
rotating responsibility
daily support duty
few hand-offs
empowered
Process
Goal:
 • to surface risk as early
  as possible to keep
  problems out of
  production
maximize feedback
shrink   time
Continuous Integration
Continuous Integration

• 3-4 Commits/dev/day
Automated Build
Automated Build

• 3 minute build
Automated Build

• 3 minute build
• 30-40 builds/day
Automated Build

• 3 minute build
• 30-40 builds/day
Automated Test Deploy
Automated Test Deploy

• 4-5 times per day
Automated Test Deploy

• 4-5 times per day
• Scheduled nightly at
 11PM
Daily Standup
Daily Standup

• Weekly company
 standup
Daily Review
Daily Review

• Quick peer feature
 review
Weekly Demo
Weekly Demo

• 15 minute company-
 wide user-driven
 demo
weekly cycle

       Mon    Tues          Wed    Thurs             Fri


9:30AM                10:00AM              Release          5pm
Planning             User-driven           Testing         Release
Meeting                Demo
“agile”
Scrum?
XP?
what’s missing?
user stories?
user stories?
user stories?
story boards?
story boards?
story boards?
estimation?
estimation?
estimation?
fits or it doesn’t
pairing?
pairing?
pairing?
as needed
pairing?
 as needed
code reviews
TDD?
TDD?
TDD?
30% coverage
TDD?
30% coverage
 + Selenium
TDD?
30% coverage
 + Selenium
retrospectives?
retrospectives?
retrospectives?
Release Review
retrospectives?
Release Review
    5 Whys
5 Whys
lightweight RCA
just-in-time
within 24 hours
1 Jira per question
Practices
Daily support rotation
5 Whys
Continuous
Monitoring
Continuous Monitoring


             Socket
App Server                  LogMaster
             Logger




                      WARN | ERROR
Continuous Monitoring
Continuous Monitoring
• Proactive response to issues
Continuous Monitoring
• Proactive response to issues
• Clean logs
Continuous Monitoring
• Proactive response to issues
• Clean logs
• Message throttling
Continuous Monitoring
• Proactive response to issues
• Clean logs
• Message throttling
• Gmail
Continuous Monitoring
• Proactive response to issues
• Clean logs
• Message throttling
• Gmail
• Managing the signal-to-noise ratio
Continuous Monitoring
Continuous Monitoring
Continuous Monitoring
Continuous Monitoring

App Server                   web app




 gmond                       gmetad
             UDP multicast




                                   RRD
Continuous Monitoring
Continuous Monitoring
Continuous Monitoring
Continuous Monitoring
Test mirrors Prod
Trust Test
Zero-downtime
 Deployment
Zero-downtime Deploys

             Load Balancer




App Server    App Server     App Server



                              Deploy
Zero-downtime Deploys
Zero-downtime Deploys
• Fully automated deployment
Zero-downtime Deploys
• Fully automated deployment
 • One button deploy from TeamCity
Zero-downtime Deploys
• Fully automated deployment
 • One button deploy from TeamCity
• Gracefully bring down servers
Zero-downtime Deploys



What about the DB?
Zero-downtime Deploys




     Bering
Zero-downtime Deploys
001_create_login_table   001_add_inv_constraint
002_add_login_id_index   002_drop_alias_column
003_create_user_table
004_create_group_table




  Expand                  Contract
Zero-downtime Deploys
Zero-downtime Deploys
• Database migration decoupled from the
  release
Zero-downtime Deploys
• Database migration decoupled from the
  release
• Simplified rollback
Zero-downtime Deploys
• Database migration decoupled from the
  release
• Simplified rollback
• Some additional complexity in writing
  migrations
Incremental
  Rollout
Incremental Rollout
Incremental Rollout

• New features are released to user subset
  (by role)
Incremental Rollout

• New features are released to user subset
  (by role)
• “Release is a marketing term”
Incremental Rollout

• New features are released to user subset
  (by role)
• “Release is a marketing term”
• Production levers
Incremental Rollout

• New features are released to user subset
  (by role)
• “Release is a marketing term”
• Production levers
• Selective degredation
Production DB
   Restore
Production DB Restore
Production DB Restore
• Nightly backups
Production DB Restore
• Nightly backups
• Automated Test DB refresh every
  Monday morning
Production DB Restore
• Nightly backups
• Automated Test DB refresh every
  Monday morning
• Local DB refresh on demand
Production DB Restore
• Nightly backups
• Automated Test DB refresh every
  Monday morning
• Local DB refresh on demand
• Cleansed
WANGMI
WANGMI
          aka
the discipline to defer
Single Feature
   Release
• Daily Support Rotation
• 5 Whys
• Continuous Monitoring
• Test mirrors Prod
• Zero-downtime deployment
• Incremental rollout
• Production DB restore
• WANGMI - the discipline to defer
• Single Feature Release
Tools
Questions?

owen@pulseenergy.com
Nov 3, 4, 5
• Martin Fowler
• Mary Poppendieck
• Eric Evans
• Michael Feathers
• Michael Nygard
Questions?

owen@pulseenergy.com
• Eric Ries: Continuous Deployment
• Daily rotating support duty
• Log: 100MB/server/day
• 30 KLOC
• ThoughtWorks
• Working with clients to shorten their
  release cycle
• “Agile”
• CruiseControl.NET

Contenu connexe

Tendances

The Hard Problems of Continuous Deployment
The Hard Problems of Continuous DeploymentThe Hard Problems of Continuous Deployment
The Hard Problems of Continuous Deployment
Timothy Fitz
 
Delivering New Features to Over 30,000 Customers — Daily
Delivering New Features to Over 30,000 Customers — DailyDelivering New Features to Over 30,000 Customers — Daily
Delivering New Features to Over 30,000 Customers — Daily
colleenfry
 
Continuous delivery its not about the technology, its about the people. @sats...
Continuous delivery its not about the technology, its about the people. @sats...Continuous delivery its not about the technology, its about the people. @sats...
Continuous delivery its not about the technology, its about the people. @sats...
Tomas Riha
 
Leveraging HP Performance Center
Leveraging HP Performance CenterLeveraging HP Performance Center
Leveraging HP Performance Center
Martin Spier
 
Performance monitoring - Adoniram Mishra, Rupesh Dubey, ThoughtWorks
Performance monitoring - Adoniram Mishra, Rupesh Dubey, ThoughtWorksPerformance monitoring - Adoniram Mishra, Rupesh Dubey, ThoughtWorks
Performance monitoring - Adoniram Mishra, Rupesh Dubey, ThoughtWorks
Thoughtworks
 
Introduction to continuous delivery
Introduction to continuous deliveryIntroduction to continuous delivery
Introduction to continuous delivery
OlympicSoftware
 

Tendances (20)

Lessons Learned Monitoring Production
Lessons Learned Monitoring ProductionLessons Learned Monitoring Production
Lessons Learned Monitoring Production
 
The Hard Problems of Continuous Deployment
The Hard Problems of Continuous DeploymentThe Hard Problems of Continuous Deployment
The Hard Problems of Continuous Deployment
 
Best Practices For Game Development Using Perforce Streams
Best Practices For Game Development Using Perforce Streams Best Practices For Game Development Using Perforce Streams
Best Practices For Game Development Using Perforce Streams
 
Delivering New Features to Over 30,000 Customers — Daily
Delivering New Features to Over 30,000 Customers — DailyDelivering New Features to Over 30,000 Customers — Daily
Delivering New Features to Over 30,000 Customers — Daily
 
Devops, Secops, Opsec, DevSec *ops *.* ?
Devops, Secops, Opsec, DevSec *ops *.* ?Devops, Secops, Opsec, DevSec *ops *.* ?
Devops, Secops, Opsec, DevSec *ops *.* ?
 
Continuous integration (eng)
Continuous integration (eng)Continuous integration (eng)
Continuous integration (eng)
 
Continuous delivery its not about the technology, its about the people. @sats...
Continuous delivery its not about the technology, its about the people. @sats...Continuous delivery its not about the technology, its about the people. @sats...
Continuous delivery its not about the technology, its about the people. @sats...
 
How to Do Code Reviews at Massive Scale For DevOps
How to Do Code Reviews at Massive Scale For DevOpsHow to Do Code Reviews at Massive Scale For DevOps
How to Do Code Reviews at Massive Scale For DevOps
 
Continuous Build To Continuous Release - Experience
Continuous Build To Continuous Release - ExperienceContinuous Build To Continuous Release - Experience
Continuous Build To Continuous Release - Experience
 
Leveraging HP Performance Center
Leveraging HP Performance CenterLeveraging HP Performance Center
Leveraging HP Performance Center
 
Going Remote: Build Up Your Game Dev Team
Going Remote: Build Up Your Game Dev Team Going Remote: Build Up Your Game Dev Team
Going Remote: Build Up Your Game Dev Team
 
Performance monitoring - Adoniram Mishra, Rupesh Dubey, ThoughtWorks
Performance monitoring - Adoniram Mishra, Rupesh Dubey, ThoughtWorksPerformance monitoring - Adoniram Mishra, Rupesh Dubey, ThoughtWorks
Performance monitoring - Adoniram Mishra, Rupesh Dubey, ThoughtWorks
 
Introduction to continuous delivery
Introduction to continuous deliveryIntroduction to continuous delivery
Introduction to continuous delivery
 
DevOps - Its just Agile done right
DevOps - Its just Agile done rightDevOps - Its just Agile done right
DevOps - Its just Agile done right
 
DevTalk: From Uni to Enterprise
DevTalk: From Uni to EnterpriseDevTalk: From Uni to Enterprise
DevTalk: From Uni to Enterprise
 
Scaling Up Continuous Deployment
Scaling Up Continuous DeploymentScaling Up Continuous Deployment
Scaling Up Continuous Deployment
 
"DevOps > CI+CD "
"DevOps > CI+CD ""DevOps > CI+CD "
"DevOps > CI+CD "
 
Automation CICD
Automation CICDAutomation CICD
Automation CICD
 
Road to Continuous Delivery - Wix.com
Road to Continuous Delivery - Wix.comRoad to Continuous Delivery - Wix.com
Road to Continuous Delivery - Wix.com
 
Continuous Delivery: why ? where to start ? how to scale ?
Continuous Delivery: why ? where to start ? how to scale ?Continuous Delivery: why ? where to start ? how to scale ?
Continuous Delivery: why ? where to start ? how to scale ?
 

En vedette (7)

Scaling python webapps from 0 to 50 million users - A top-down approach
Scaling python webapps from 0 to 50 million users - A top-down approachScaling python webapps from 0 to 50 million users - A top-down approach
Scaling python webapps from 0 to 50 million users - A top-down approach
 
Powering Music Sites with WordPress
Powering Music Sites with WordPressPowering Music Sites with WordPress
Powering Music Sites with WordPress
 
Tricks & challenges developing a large Django application
Tricks & challenges developing a large Django applicationTricks & challenges developing a large Django application
Tricks & challenges developing a large Django application
 
Django in the Real World
Django in the Real WorldDjango in the Real World
Django in the Real World
 
Agenda and meeting minutes
Agenda and meeting minutesAgenda and meeting minutes
Agenda and meeting minutes
 
Mastering Python 3 I/O (Version 2)
Mastering Python 3 I/O (Version 2)Mastering Python 3 I/O (Version 2)
Mastering Python 3 I/O (Version 2)
 
Sample of Minutes of meeting
Sample of Minutes of meetingSample of Minutes of meeting
Sample of Minutes of meeting
 

Similaire à Releasing To Production Every Week

SOASTA Webinar: Process Compression For Mobile App Dev 120612
SOASTA Webinar: Process Compression For Mobile App Dev 120612SOASTA Webinar: Process Compression For Mobile App Dev 120612
SOASTA Webinar: Process Compression For Mobile App Dev 120612
SOASTA
 

Similaire à Releasing To Production Every Week (20)

Panel Discussion Continuous Deployment in SaaS
Panel Discussion Continuous Deployment in SaaSPanel Discussion Continuous Deployment in SaaS
Panel Discussion Continuous Deployment in SaaS
 
Continuous delivery is more than dev ops
Continuous delivery is more than dev opsContinuous delivery is more than dev ops
Continuous delivery is more than dev ops
 
The Continuous delivery value - Funaro
The Continuous delivery value - FunaroThe Continuous delivery value - Funaro
The Continuous delivery value - Funaro
 
DBmaestro's State of the Database Continuous Delivery Survey- Findings Revealed
DBmaestro's State of the Database Continuous Delivery Survey- Findings RevealedDBmaestro's State of the Database Continuous Delivery Survey- Findings Revealed
DBmaestro's State of the Database Continuous Delivery Survey- Findings Revealed
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 
MyHeritage - End 2 End testing Infra
MyHeritage - End 2 End testing InfraMyHeritage - End 2 End testing Infra
MyHeritage - End 2 End testing Infra
 
Continuous Integration @ Haptik
Continuous Integration @ HaptikContinuous Integration @ Haptik
Continuous Integration @ Haptik
 
Definition of Done and Product Backlog refinement
Definition of Done and Product Backlog refinementDefinition of Done and Product Backlog refinement
Definition of Done and Product Backlog refinement
 
Adrian marinica continuous integration in the visual studio world
Adrian marinica   continuous integration in the visual studio worldAdrian marinica   continuous integration in the visual studio world
Adrian marinica continuous integration in the visual studio world
 
Getting your mobile test automation process in place - using Cucumber and Cal...
Getting your mobile test automation process in place - using Cucumber and Cal...Getting your mobile test automation process in place - using Cucumber and Cal...
Getting your mobile test automation process in place - using Cucumber and Cal...
 
Continuous Delivery for the Rest of Us
Continuous Delivery for the Rest of UsContinuous Delivery for the Rest of Us
Continuous Delivery for the Rest of Us
 
MyHeritage - QA Automations in a Continuous Deployment environment
MyHeritage -  QA Automations in a Continuous Deployment environmentMyHeritage -  QA Automations in a Continuous Deployment environment
MyHeritage - QA Automations in a Continuous Deployment environment
 
Continuous Delivery: releasing Better and Faster at Dashlane
Continuous Delivery: releasing Better and Faster at DashlaneContinuous Delivery: releasing Better and Faster at Dashlane
Continuous Delivery: releasing Better and Faster at Dashlane
 
Battle for Code Quality - A Story of One Java Project
Battle for Code Quality - A Story of One Java ProjectBattle for Code Quality - A Story of One Java Project
Battle for Code Quality - A Story of One Java Project
 
Lessons Learned from Large Scale Adoption of DevOps for IBM z Systems Software
Lessons Learned from Large Scale Adoption of DevOps for IBM z Systems SoftwareLessons Learned from Large Scale Adoption of DevOps for IBM z Systems Software
Lessons Learned from Large Scale Adoption of DevOps for IBM z Systems Software
 
Test parallelization using Jenkins
Test parallelization using JenkinsTest parallelization using Jenkins
Test parallelization using Jenkins
 
Implementing Continuous Product Delivery
Implementing Continuous Product DeliveryImplementing Continuous Product Delivery
Implementing Continuous Product Delivery
 
SOASTA Webinar: Process Compression For Mobile App Dev 120612
SOASTA Webinar: Process Compression For Mobile App Dev 120612SOASTA Webinar: Process Compression For Mobile App Dev 120612
SOASTA Webinar: Process Compression For Mobile App Dev 120612
 
Beyond TDD: Enabling Your Team to Continuously Deliver Software
Beyond TDD: Enabling Your Team to Continuously Deliver SoftwareBeyond TDD: Enabling Your Team to Continuously Deliver Software
Beyond TDD: Enabling Your Team to Continuously Deliver Software
 
Large-Scale Agile Test Automation Strategies in Practice
Large-Scale Agile Test Automation Strategies in PracticeLarge-Scale Agile Test Automation Strategies in Practice
Large-Scale Agile Test Automation Strategies in Practice
 

Dernier

Dernier (20)

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
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
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...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 

Releasing To Production Every Week