SlideShare una empresa de Scribd logo
1 de 50
CONTINUOUS
         DEPLOYMENT




Brett G. Durrett,VP Engineering & Operations, IMVU - @bdurrett
                                                                 1
Destination site
Chat and Games with Avatars
Revenue over $40 million annually
Profitable
Engineering staff > 50 people




                                    2
NO STAGING CLUSTER
                      NO QA REVIEW




COMMIT CODE TO LIVE
  IN PRODUCTION
                                 3
4
DEVELOP    RELEASE




             PRAY
             FOR
          CUSTOMERS
                      5
DEVELOP    RELEASE




 ITERATE
             LEARN
                     6
7
8
WAY EASIER TO FIND
REGRESSIONS IN SMALL
 LESS THAN 30 LINES OF
BATCHES OF COMMITS
 CODE TO INVESTIGATE




         VS.
                         9
FAST RESPONSE TIMES




                      10
11
DON’T TAKE MY WORD FOR IT…
Reducing batch size…
reduces cycle time
reduces variability in flow
accelerates feedback
reduces risk
reduces overhead

Large batches…
reduce efficiency
inherently lower motivation and energy
cause exponential cost and schedule growth
lead to even larger batches

The entire batch is limited by its worst element

                                                   Chapter 5 – Reducing Batch Size
Local tests pass,                                                  Rollback
engineer commits                                                    (Blocks)
       code
                                   No


 Lots and lots of              Metrics        Yes    Code deployed to
    tests run                  good?                    all servers




     All tests       Yes   Code deployed to              Metrics
                                                                        No
      pass?                  % of servers                 still
                                                         good?

           No                                                 Yes

 Revert commit
                                              Win!
    (Blocks)
Local tests pass,                                                  Rollback
engineer commits                                                    (Blocks)
       code
                                   No


 Lots and lots of              Metrics        Yes    Code deployed to
    tests run                  good?                    all servers




     All tests       Yes   Code deployed to              Metrics
                                                                        No
      pass?                  % of servers                 still
                                                         good?

           No                                                 Yes

 Revert commit
                                              Win!
    (Blocks)
COD
   E HE
       RE!
Local tests pass,                                                  Rollback
engineer commits                                                    (Blocks)
       code
                                   No


 Lots and lots of              Metrics        Yes    Code deployed to
    tests run                  good?                    all servers




     All tests       Yes   Code deployed to              Metrics
                                                                        No
      pass?                  % of servers                 still
                                                         good?

           No                                                 Yes

 Revert commit
                                              Win!
    (Blocks)
CONTINUOUS
INTEGRATION
20
Local tests pass,                                                  Rollback
engineer commits                                                    (Blocks)
       code
                                   No


 Lots and lots of              Metrics        Yes    Code deployed to
    tests run                  good?                    all servers




     All tests       Yes   Code deployed to              Metrics
                                                                        No
      pass?                  % of servers                 still
                                                         good?

           No                                                 Yes

 Revert commit
                                              Win!
    (Blocks)
Local tests pass,                                                  Rollback
engineer commits                                                    (Blocks)
       code
                                   No


 Lots and lots of              Metrics        Yes    Code deployed to
    tests run                  good?                    all servers




     All tests       Yes   Code deployed to              Metrics
                                                                        No
      pass?                  % of servers                 still
                                                         good?

           No                                                 Yes

 Revert commit
                                              Win!
    (Blocks)
CLUSTER IMMUNE SYSTEM



                        24
IS IT IMPORTANT TO YOUR BUSINESS?
              MONITOR IT
SYSTEM PERFORMANCE   BUSINESS PERFORMANCE
Local tests pass,                                                  Rollback
engineer commits                                                    (Blocks)
       code
                                   No


 Lots and lots of              Metrics        Yes    Code deployed to
    tests run                  good?                    all servers




     All tests       Yes   Code deployed to              Metrics
                                                                        No
      pass?                  % of servers                 still
                                                         good?

           No                                                 Yes

 Revert commit
                                              Win!
    (Blocks)
Local tests pass,                                                  Rollback
engineer commits                                                    (Blocks)
       code
                                   No


 Lots and lots of              Metrics        Yes    Code deployed to
    tests run                  good?                    all servers




     All tests       Yes   Code deployed to              Metrics
                                                                        No
      pass?                  % of servers                 still
                                                         good?

           No                                                 Yes

 Revert commit
                                              Win!
    (Blocks)
Local tests pass,                                                  Rollback
engineer commits                                                    (Blocks)
       code
                                   No


 Lots and lots of              Metrics        Yes    Code deployed to
    tests run                  good?                    all servers




     All tests       Yes   Code deployed to              Metrics
                                                                        No
      pass?                  % of servers                 still
                                                         good?

           No                                                 Yes

 Revert commit
                                              Win!
    (Blocks)
Local tests pass,                                                  Rollback
engineer commits                                                    (Blocks)
       code
                                   No


 Lots and lots of              Metrics        Yes    Code deployed to
    tests run                  good?                    all servers




     All tests       Yes   Code deployed to              Metrics
                                                                        No
      pass?                  % of servers                 still
                                                         good?

           No                                                 Yes

 Revert commit
                                              Win!
    (Blocks)
31
COMMIT TO MAKING FORWARD PROGRESS



NEW PRODUCT                    ESTABLISHED PRODUCT

START WITH SANDBOX           START WITH PRODUCTION

JUST PUSH!                       AUTOMATE DEPLOYS

IDEAL TIME FOR FAILURES!!!        BUILD CONFIDENCE
                                                 32
EXPECT
 SOME
HURDLES
BUILD ISOLATION!
                        FASTER TEST RUNS
                          BUY HARDWARE
                      SORT TESTS BY SPEED
                   DEPENDENCY INJECTION


                                    AND…
                   THE HYPOTHESIS BUILDER!
The	
  Trickier	
  Bits	
  


•  Catching	
  issues	
  that	
  fail	
  slowly	
  
     –  SELECT * FROM growing_table WHERE 1	
  

•  Some	
  cri9cal	
  areas	
  cause	
  hard	
  lock-­‐ups	
  
     –  MySQL	
  
     –  Memcached	
  

•  Lack	
  of	
  test	
  coverage	
  of	
  older	
  code	
  
     –  Not	
  an	
  issue	
  if	
  you	
  start	
  with	
  test	
  coverage	
  

•  Outsourcing	
  
                                                                                           37
BUILD SYSTEMS ARE CRITICAL BUSINESS FUNCTIONS

         RUN THEM THAT WAY!
COD
   E HE
       RE!
$experiment = array(
    ‘name’ -> ‘LeanLA’,
    'initial_rollout' => '0',
    'branches' => array(
        'Enhanced' => 0.5,
        // can specify multiple weighted branches
        )
    );

// Helper function for readability
function user_should_see_test_feature( $uid = NULL ) {
    return get_branch_for_customer( $uid,
    $experiment ) ) == 'Enhanced';
    // assigns customer if first time called
}

// The experiment branch
if( user_should_see_test_feature( $uid ) ) {
    // behavior for experiment
} else {
    // control behavior
}
                                                         41
CLOSE
        EXPERIMENTS




   CONTROL
PARTICIPANTS
                      42
UNDESIRED RESULT
DESIRED RESULT

NO STATISTICAL SIGNIFICANCE




                              43
THE “PERFECT” SPRINT




                 Work
               Remaining

Sprint Start                     Planned Sprint End
REALITY STRIKES
                                                   When releases
                                                   happen every 15
                                                   minutes, this can be
                                                   arbitrary




                                                 Outstanding Issues
                                                 Incomplete Features
                                                 Tech Review
                                                 Refactoring

               Work Remaining
                                                Drop or
                                                 push

Sprint Start                       Planned Sprint End
END THE SPRINT WHEN
                  WORK IS DONE




               Work Remaining
                                          Overage

Sprint Start                    Sprint End Goal     Sprint End
DEVELOP    RELEASE
                               RELEASE




 ITERATE             ITERATE     LEARN

             LEARN




                                         47
EMPOWERED!




             48
Thank	
  You!	
  	
  Any	
  Ques9ons?	
  

 BreH	
  G.	
  DurreH	
                 IMVU recognized as:

bdurreH@imvu.com	
  
                                         Inc. 500
TwiHer:	
  @bdurreH	
                          http://bit.ly/dv52wK
                                         Red Herring 100:  
  Tweet	
  this	
  talk!	
                     http://bit.ly/bbz5Ex
                                         Best Place to Work:  
                                               http://bit.ly/aAVdp8


     @bdurreH	
  
                                            (and we're hiring)

                                       http://www.imvu.com/jobs

                                                                           49
Thank	
  You!	
  

•  The	
  amazing	
  engineers	
  at	
  IMVU	
  that	
  make	
  this	
  possible	
  

•  Patrick	
  Vlaskovitz,	
  Joe	
  Zulli	
  and	
  Peter	
  Mauro	
  for	
  invi9ng	
  me	
  to	
  speak	
  at	
  LeanLA	
  

•  Avesta	
  Rasouli	
  and	
  CoLoX	
  for	
  hos9ng	
  and	
  providing	
  a	
  great	
  workspace	
  
•  John	
  Overmeyer,	
  Single	
  Lane	
  Traffic	
  Photo:	
  
   hHp://www.flickr.com/photos/onebigchickenman/4869442019/	
  




                                                                                                                                50

Más contenido relacionado

Similar a Continuous Deployment at Lean LA

Software Testing Life Cycle
Software Testing Life CycleSoftware Testing Life Cycle
Software Testing Life Cyclegueste730d5
 
Test-Driven Development (TDD)
Test-Driven Development (TDD)Test-Driven Development (TDD)
Test-Driven Development (TDD)Brian Rasmussen
 
Distributed Version Control Systems
Distributed Version Control SystemsDistributed Version Control Systems
Distributed Version Control SystemsMark van Lent
 
Introducing LCS to Digital Design Verification
Introducing LCS to Digital Design VerificationIntroducing LCS to Digital Design Verification
Introducing LCS to Digital Design VerificationDaniele Loiacono
 
Learning Fast With A/B Testing and Continuous Deployment
Learning Fast With A/B Testing and Continuous DeploymentLearning Fast With A/B Testing and Continuous Deployment
Learning Fast With A/B Testing and Continuous DeploymentBrett Durrett
 
Continuous Delivery Overview
Continuous Delivery OverviewContinuous Delivery Overview
Continuous Delivery OverviewWill Iverson
 
Agile Software Development in Practice - A Developer Perspective
Agile Software Development in Practice - A Developer PerspectiveAgile Software Development in Practice - A Developer Perspective
Agile Software Development in Practice - A Developer PerspectiveWee Witthawaskul
 
Bioinformatics Testing Consortium
Bioinformatics Testing ConsortiumBioinformatics Testing Consortium
Bioinformatics Testing Consortiumbtemperton
 
Bioinformatics Testing Consortium
Bioinformatics Testing ConsortiumBioinformatics Testing Consortium
Bioinformatics Testing Consortiumbtemperton
 
B Temperton - The Bioinformatics Testing Consortium
B Temperton - The Bioinformatics Testing ConsortiumB Temperton - The Bioinformatics Testing Consortium
B Temperton - The Bioinformatics Testing ConsortiumJan Aerts
 
Continuous delivery continuous integration 0.3
Continuous delivery continuous integration 0.3Continuous delivery continuous integration 0.3
Continuous delivery continuous integration 0.3Alex Tregubov
 
Continuous deployment
Continuous deploymentContinuous deployment
Continuous deploymentMshwalbe
 
Ashwini - Effective use of CI by QA
Ashwini - Effective use of CI by QAAshwini - Effective use of CI by QA
Ashwini - Effective use of CI by QAvodQA
 
Issre2014 test defectprediction
Issre2014 test defectpredictionIssre2014 test defectprediction
Issre2014 test defectpredictionKim Herzig
 
Continuous delivery @åf consult
Continuous delivery @åf consultContinuous delivery @åf consult
Continuous delivery @åf consultTomas Riha
 
SAP Offshore Delivery Services
SAP Offshore Delivery ServicesSAP Offshore Delivery Services
SAP Offshore Delivery ServicesJerome Le Gall
 
PHX - Session #2 Test Driven Development: Improving .NET Application Performa...
PHX - Session #2 Test Driven Development: Improving .NET Application Performa...PHX - Session #2 Test Driven Development: Improving .NET Application Performa...
PHX - Session #2 Test Driven Development: Improving .NET Application Performa...Steve Lange
 
Continuous Deployment – Nextdoor.fi released every day at Scan-Agile 2011
Continuous Deployment – Nextdoor.fi released every day at Scan-Agile 2011Continuous Deployment – Nextdoor.fi released every day at Scan-Agile 2011
Continuous Deployment – Nextdoor.fi released every day at Scan-Agile 2011Marko Taipale
 

Similar a Continuous Deployment at Lean LA (20)

Software Testing Life Cycle
Software Testing Life CycleSoftware Testing Life Cycle
Software Testing Life Cycle
 
Test-Driven Development (TDD)
Test-Driven Development (TDD)Test-Driven Development (TDD)
Test-Driven Development (TDD)
 
Distributed Version Control Systems
Distributed Version Control SystemsDistributed Version Control Systems
Distributed Version Control Systems
 
Introducing LCS to Digital Design Verification
Introducing LCS to Digital Design VerificationIntroducing LCS to Digital Design Verification
Introducing LCS to Digital Design Verification
 
Learning Fast With A/B Testing and Continuous Deployment
Learning Fast With A/B Testing and Continuous DeploymentLearning Fast With A/B Testing and Continuous Deployment
Learning Fast With A/B Testing and Continuous Deployment
 
Continuous Delivery Overview
Continuous Delivery OverviewContinuous Delivery Overview
Continuous Delivery Overview
 
Dot net 2005 vs 2003
Dot net 2005 vs 2003Dot net 2005 vs 2003
Dot net 2005 vs 2003
 
Agile Software Development in Practice - A Developer Perspective
Agile Software Development in Practice - A Developer PerspectiveAgile Software Development in Practice - A Developer Perspective
Agile Software Development in Practice - A Developer Perspective
 
Bioinformatics Testing Consortium
Bioinformatics Testing ConsortiumBioinformatics Testing Consortium
Bioinformatics Testing Consortium
 
Bioinformatics Testing Consortium
Bioinformatics Testing ConsortiumBioinformatics Testing Consortium
Bioinformatics Testing Consortium
 
B Temperton - The Bioinformatics Testing Consortium
B Temperton - The Bioinformatics Testing ConsortiumB Temperton - The Bioinformatics Testing Consortium
B Temperton - The Bioinformatics Testing Consortium
 
Mutation Testing
Mutation TestingMutation Testing
Mutation Testing
 
Continuous delivery continuous integration 0.3
Continuous delivery continuous integration 0.3Continuous delivery continuous integration 0.3
Continuous delivery continuous integration 0.3
 
Continuous deployment
Continuous deploymentContinuous deployment
Continuous deployment
 
Ashwini - Effective use of CI by QA
Ashwini - Effective use of CI by QAAshwini - Effective use of CI by QA
Ashwini - Effective use of CI by QA
 
Issre2014 test defectprediction
Issre2014 test defectpredictionIssre2014 test defectprediction
Issre2014 test defectprediction
 
Continuous delivery @åf consult
Continuous delivery @åf consultContinuous delivery @åf consult
Continuous delivery @åf consult
 
SAP Offshore Delivery Services
SAP Offshore Delivery ServicesSAP Offshore Delivery Services
SAP Offshore Delivery Services
 
PHX - Session #2 Test Driven Development: Improving .NET Application Performa...
PHX - Session #2 Test Driven Development: Improving .NET Application Performa...PHX - Session #2 Test Driven Development: Improving .NET Application Performa...
PHX - Session #2 Test Driven Development: Improving .NET Application Performa...
 
Continuous Deployment – Nextdoor.fi released every day at Scan-Agile 2011
Continuous Deployment – Nextdoor.fi released every day at Scan-Agile 2011Continuous Deployment – Nextdoor.fi released every day at Scan-Agile 2011
Continuous Deployment – Nextdoor.fi released every day at Scan-Agile 2011
 

Más de Brett Durrett

Secrets of Avatar Design for VR - IMVU AWE, June 2016
Secrets of Avatar Design for VR - IMVU AWE, June 2016Secrets of Avatar Design for VR - IMVU AWE, June 2016
Secrets of Avatar Design for VR - IMVU AWE, June 2016Brett Durrett
 
Social VR and Gaming
Social VR and GamingSocial VR and Gaming
Social VR and GamingBrett Durrett
 
3 Reasons You Should Use Continuous Deployment
3 Reasons You Should Use Continuous Deployment3 Reasons You Should Use Continuous Deployment
3 Reasons You Should Use Continuous DeploymentBrett Durrett
 
IMVU: Real Money from Virtual Goods, Media X at Stanford
IMVU: Real Money from Virtual Goods, Media X at StanfordIMVU: Real Money from Virtual Goods, Media X at Stanford
IMVU: Real Money from Virtual Goods, Media X at StanfordBrett Durrett
 
Lean Startup Pitfalls Uncovered
Lean Startup Pitfalls UncoveredLean Startup Pitfalls Uncovered
Lean Startup Pitfalls UncoveredBrett Durrett
 
IMVU: “But Does It Scale?” from Startup Lessons Learned Conference
IMVU: “But Does It Scale?” from Startup Lessons Learned ConferenceIMVU: “But Does It Scale?” from Startup Lessons Learned Conference
IMVU: “But Does It Scale?” from Startup Lessons Learned ConferenceBrett Durrett
 

Más de Brett Durrett (6)

Secrets of Avatar Design for VR - IMVU AWE, June 2016
Secrets of Avatar Design for VR - IMVU AWE, June 2016Secrets of Avatar Design for VR - IMVU AWE, June 2016
Secrets of Avatar Design for VR - IMVU AWE, June 2016
 
Social VR and Gaming
Social VR and GamingSocial VR and Gaming
Social VR and Gaming
 
3 Reasons You Should Use Continuous Deployment
3 Reasons You Should Use Continuous Deployment3 Reasons You Should Use Continuous Deployment
3 Reasons You Should Use Continuous Deployment
 
IMVU: Real Money from Virtual Goods, Media X at Stanford
IMVU: Real Money from Virtual Goods, Media X at StanfordIMVU: Real Money from Virtual Goods, Media X at Stanford
IMVU: Real Money from Virtual Goods, Media X at Stanford
 
Lean Startup Pitfalls Uncovered
Lean Startup Pitfalls UncoveredLean Startup Pitfalls Uncovered
Lean Startup Pitfalls Uncovered
 
IMVU: “But Does It Scale?” from Startup Lessons Learned Conference
IMVU: “But Does It Scale?” from Startup Lessons Learned ConferenceIMVU: “But Does It Scale?” from Startup Lessons Learned Conference
IMVU: “But Does It Scale?” from Startup Lessons Learned Conference
 

Último

Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
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...Miguel Araújo
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
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 Servicegiselly40
 
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 SolutionsEnterprise Knowledge
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
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...Drew Madelung
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
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 RobisonAnna Loughnan Colquhoun
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
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 textsMaria Levchenko
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 

Último (20)

Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
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...
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
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
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
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...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
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
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
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
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 

Continuous Deployment at Lean LA

  • 1. CONTINUOUS DEPLOYMENT Brett G. Durrett,VP Engineering & Operations, IMVU - @bdurrett 1
  • 2. Destination site Chat and Games with Avatars Revenue over $40 million annually Profitable Engineering staff > 50 people 2
  • 3. NO STAGING CLUSTER NO QA REVIEW COMMIT CODE TO LIVE IN PRODUCTION 3
  • 4. 4
  • 5. DEVELOP RELEASE PRAY FOR CUSTOMERS 5
  • 6. DEVELOP RELEASE ITERATE LEARN 6
  • 7. 7
  • 8. 8
  • 9. WAY EASIER TO FIND REGRESSIONS IN SMALL LESS THAN 30 LINES OF BATCHES OF COMMITS CODE TO INVESTIGATE VS. 9
  • 11. 11
  • 12. DON’T TAKE MY WORD FOR IT… Reducing batch size… reduces cycle time reduces variability in flow accelerates feedback reduces risk reduces overhead Large batches… reduce efficiency inherently lower motivation and energy cause exponential cost and schedule growth lead to even larger batches The entire batch is limited by its worst element Chapter 5 – Reducing Batch Size
  • 13. Local tests pass, Rollback engineer commits (Blocks) code No Lots and lots of Metrics Yes Code deployed to tests run good? all servers All tests Yes Code deployed to Metrics No pass? % of servers still good? No Yes Revert commit Win! (Blocks)
  • 14. Local tests pass, Rollback engineer commits (Blocks) code No Lots and lots of Metrics Yes Code deployed to tests run good? all servers All tests Yes Code deployed to Metrics No pass? % of servers still good? No Yes Revert commit Win! (Blocks)
  • 15. COD E HE RE!
  • 16.
  • 17.
  • 18. Local tests pass, Rollback engineer commits (Blocks) code No Lots and lots of Metrics Yes Code deployed to tests run good? all servers All tests Yes Code deployed to Metrics No pass? % of servers still good? No Yes Revert commit Win! (Blocks)
  • 20. 20
  • 21. Local tests pass, Rollback engineer commits (Blocks) code No Lots and lots of Metrics Yes Code deployed to tests run good? all servers All tests Yes Code deployed to Metrics No pass? % of servers still good? No Yes Revert commit Win! (Blocks)
  • 22.
  • 23. Local tests pass, Rollback engineer commits (Blocks) code No Lots and lots of Metrics Yes Code deployed to tests run good? all servers All tests Yes Code deployed to Metrics No pass? % of servers still good? No Yes Revert commit Win! (Blocks)
  • 25. IS IT IMPORTANT TO YOUR BUSINESS? MONITOR IT SYSTEM PERFORMANCE BUSINESS PERFORMANCE
  • 26. Local tests pass, Rollback engineer commits (Blocks) code No Lots and lots of Metrics Yes Code deployed to tests run good? all servers All tests Yes Code deployed to Metrics No pass? % of servers still good? No Yes Revert commit Win! (Blocks)
  • 27.
  • 28. Local tests pass, Rollback engineer commits (Blocks) code No Lots and lots of Metrics Yes Code deployed to tests run good? all servers All tests Yes Code deployed to Metrics No pass? % of servers still good? No Yes Revert commit Win! (Blocks)
  • 29. Local tests pass, Rollback engineer commits (Blocks) code No Lots and lots of Metrics Yes Code deployed to tests run good? all servers All tests Yes Code deployed to Metrics No pass? % of servers still good? No Yes Revert commit Win! (Blocks)
  • 30. Local tests pass, Rollback engineer commits (Blocks) code No Lots and lots of Metrics Yes Code deployed to tests run good? all servers All tests Yes Code deployed to Metrics No pass? % of servers still good? No Yes Revert commit Win! (Blocks)
  • 31. 31
  • 32. COMMIT TO MAKING FORWARD PROGRESS NEW PRODUCT ESTABLISHED PRODUCT START WITH SANDBOX START WITH PRODUCTION JUST PUSH! AUTOMATE DEPLOYS IDEAL TIME FOR FAILURES!!! BUILD CONFIDENCE 32
  • 34.
  • 35. BUILD ISOLATION! FASTER TEST RUNS BUY HARDWARE SORT TESTS BY SPEED DEPENDENCY INJECTION AND… THE HYPOTHESIS BUILDER!
  • 36.
  • 37. The  Trickier  Bits   •  Catching  issues  that  fail  slowly   –  SELECT * FROM growing_table WHERE 1   •  Some  cri9cal  areas  cause  hard  lock-­‐ups   –  MySQL   –  Memcached   •  Lack  of  test  coverage  of  older  code   –  Not  an  issue  if  you  start  with  test  coverage   •  Outsourcing   37
  • 38. BUILD SYSTEMS ARE CRITICAL BUSINESS FUNCTIONS RUN THEM THAT WAY!
  • 39.
  • 40. COD E HE RE!
  • 41. $experiment = array( ‘name’ -> ‘LeanLA’, 'initial_rollout' => '0', 'branches' => array( 'Enhanced' => 0.5, // can specify multiple weighted branches ) ); // Helper function for readability function user_should_see_test_feature( $uid = NULL ) { return get_branch_for_customer( $uid, $experiment ) ) == 'Enhanced'; // assigns customer if first time called } // The experiment branch if( user_should_see_test_feature( $uid ) ) { // behavior for experiment } else { // control behavior } 41
  • 42. CLOSE EXPERIMENTS CONTROL PARTICIPANTS 42
  • 43. UNDESIRED RESULT DESIRED RESULT NO STATISTICAL SIGNIFICANCE 43
  • 44. THE “PERFECT” SPRINT Work Remaining Sprint Start Planned Sprint End
  • 45. REALITY STRIKES When releases happen every 15 minutes, this can be arbitrary Outstanding Issues Incomplete Features Tech Review Refactoring Work Remaining Drop or push Sprint Start Planned Sprint End
  • 46. END THE SPRINT WHEN WORK IS DONE Work Remaining Overage Sprint Start Sprint End Goal Sprint End
  • 47. DEVELOP RELEASE RELEASE ITERATE ITERATE LEARN LEARN 47
  • 49. Thank  You!    Any  Ques9ons?   BreH  G.  DurreH   IMVU recognized as: bdurreH@imvu.com   Inc. 500 TwiHer:  @bdurreH   http://bit.ly/dv52wK Red Herring 100:   Tweet  this  talk!   http://bit.ly/bbz5Ex Best Place to Work:   http://bit.ly/aAVdp8 @bdurreH   (and we're hiring) http://www.imvu.com/jobs 49
  • 50. Thank  You!   •  The  amazing  engineers  at  IMVU  that  make  this  possible   •  Patrick  Vlaskovitz,  Joe  Zulli  and  Peter  Mauro  for  invi9ng  me  to  speak  at  LeanLA   •  Avesta  Rasouli  and  CoLoX  for  hos9ng  and  providing  a  great  workspace   •  John  Overmeyer,  Single  Lane  Traffic  Photo:   hHp://www.flickr.com/photos/onebigchickenman/4869442019/   50