SlideShare ist ein Scribd-Unternehmen logo
1 von 158
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

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
 

Was ist angesagt? (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 ?
 

Andere mochten auch (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
 

Ähnlich wie 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
 

Ähnlich wie 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
 

Kürzlich hochgeladen

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 

Kürzlich hochgeladen (20)

Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
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
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 

Releasing To Production Every Week