SlideShare ist ein Scribd-Unternehmen logo
1 von 65
Downloaden Sie, um offline zu lesen
CONTINUOUS DELIVERY
                               in Action

                         by Hu Zhenbo (Andy) ThoughtWorks




Friday, April 27, 2012
History



Friday, April 27, 2012
4
                         years




Friday, April 27, 2012
Page Views/Day
                                                            Millions
                         100


                          75


                          50


                          25


                           0
                            2008   2009              2010     2011




Friday, April 27, 2012
Team Size
                                                            70+
                          70


                         52.5


                          35


                         17.5


                           0
                           2008   2009               2010   2011




Friday, April 27, 2012
Features Delivered   Days between major releases




                         2008               2009          2010             2011




Friday, April 27, 2012
3
                         major releases per year




Friday, April 27, 2012
20
                         days to deploy




Friday, April 27, 2012
30
                         people involved in deployment




Friday, April 27, 2012
Angry Customer
Friday, April 27, 2012
Sad Team
Friday, April 27, 2012
Why?



Friday, April 27, 2012
Requirement
Friday, April 27, 2012
Fragile System
Friday, April 27, 2012
Deploy to Death
Friday, April 27, 2012
Features Delivered     Days between major releases




                         2008           2009         2010        2011        2012




Friday, April 27, 2012
every 1 or 2 week
                            delivery frequency




Friday, April 27, 2012
0.5
                         days to deploy




Friday, April 27, 2012
1
                         person dedicated for deployment




Friday, April 27, 2012
How’d we do it?


Friday, April 27, 2012
One Team
Friday, April 27, 2012
Collaboration
Friday, April 27, 2012
Friday, April 27, 2012
Friday, April 27, 2012
Decode 4 types
                            of data
                                  21 pts




                   Incremental Developing
Friday, April 27, 2012
Design
                                                  5 pts



                         Decode 4 types
                                           Framework
                            of data
                                  21 pts          8 pts



                                           Decode Data

                                                  8 pts


                   Incremental Developing
Friday, April 27, 2012
Decode Data A   Decode Data B

                                                   8 pts           5 pts
                         Decode 4 types
                            of data
                                  21 pts
                                           Decode Data C   Decode Data D

                                                   5 pts           3 pts




                   Incremental Developing
Friday, April 27, 2012
Feature Toggle
Friday, April 27, 2012
Feature Toggle
Friday, April 27, 2012
Page File

                             Config File          #if
                                                 ( $nonRealTimeRecharge )
                    # Feature Toggle                <div>非即时到帐</div>
                    nonRealTimeRecharge = true      <div> ...
                    realTimeRecharge = false     #end

                                                 #if( $realTimeRecharge )
                                                    <div>即时到帐</div>
                                                    <div> ...
                                                 #end




                             Feature Toggle
Friday, April 27, 2012
Increasing confidence in build’s production readiness

                               Environment become more production-like

                                                       User Acceptance
                                                            Testing
    Commit Stage                                       exploratory test
      compile                                                 ...
                               Acceptance Test
      analysis                                                                    Production
                                   Stage
      unit test                                        Non-Functional
         ...                                               Testing
                                                      performance test
                                                             ...


                                            Slower Feedback




                         Deployment Pipeline
Friday, April 27, 2012
Deployment Pipeline
Friday, April 27, 2012
Code                    Commit   Update
                          Jar              Portal       ZIP      Upload
         Change                     Jar
                                           Dependen


           Stop                                        Create     Start
                         Backup   Unzip    Config
          Server                                      Log File   Server




                                Auto-Deploy
Friday, April 27, 2012
Code                    Commit   Update
                          Jar              Portal       ZIP      Upload
         Change                     Jar
                                           Dependen


           Stop                                        Create     Start
                         Backup   Unzip    Config
          Server                                      Log File   Server




                                Auto-Deploy
Friday, April 27, 2012
Code                    Commit      Update
                          Jar                 Portal       ZIP      Upload
         Change                     Jar
                                              Dependen


           Stop                                           Create     Start
                         Backup   Unzip       Config
          Server                                         Log File   Server




                                  One-click    Deploy




                                Auto-Deploy
Friday, April 27, 2012
Payment

                                                   Mobile


                                         Account


                                                   Portal

                                          Order


                         Common   Core

                                                   Admin




                  Components & Dependencies
Friday, April 27, 2012
Payment

                                                   Mobile


                                         Account


                                                   Portal

                                          Order


                         Common   Core

                                                   Admin




                  Components & Dependencies
Friday, April 27, 2012
Payment

                                                   Mobile


                                         Account


                                                   Portal

                                          Order


                         Common   Core

                                                   Admin




                  Components & Dependencies
Friday, April 27, 2012
Payment

                                                   Mobile


                                         Account


                                                   Portal

                                          Order


                         Common   Core

                                                   Admin




                  Components & Dependencies
Friday, April 27, 2012
Payment

                                                   Mobile


                                         Account


                                                   Portal

                                          Order


                         Common   Core

                                                   Admin




                  Components & Dependencies
Friday, April 27, 2012
Payment

                                                   Mobile


                                         Account


                                                   Portal

                                          Order


                         Common   Core

                                                   Admin




                  Components & Dependencies
Friday, April 27, 2012
Test Quadrants
Friday, April 27, 2012
Manual
                                  Session
                                   Based
                                  Testing

                                 Automated
                                 GUI Tests

                                 API Tests
                             Integration Tests

                             Component Tests


                            Automated Unit Tests




                         Test Pyramid
Friday, April 27, 2012
Deployment Test
               system configuration         Acceptance
               component communication
               service is up and running      Test
               ...




Friday, April 27, 2012
Performance Test
Friday, April 27, 2012
Web      App      DB
                                     Server   Server   Server




                            Router




                         Blue-Green Deploy
Friday, April 27, 2012
Web      App      DB
                                     Server   Server   Server




                            Router

                                     v5.1      v5.1     v5.1




                         Blue-Green Deploy
Friday, April 27, 2012
Web      App      DB
                                     Server   Server   Server




                            Router

                                     v5.1      v5.1     v5.1




                         Blue-Green Deploy
Friday, April 27, 2012
Web      App      DB
                                     Server   Server   Server




                            Router

                                     v5.1      v5.1     v5.1




                                     v5.2      v5.2     v5.2


                         Blue-Green Deploy
Friday, April 27, 2012
Web      App      DB
                                     Server   Server   Server




                            Router

                                     v5.1      v5.1     v5.1




                                     v5.2      v5.2     v5.2


                         Blue-Green Deploy
Friday, April 27, 2012
migrate
                          - 001_create_products_table.sql
                          - 002_add_column_to_products.sql
                          - 003_update_data_for_products.sql

                          rollback
                           - 001_create_products_table.sql
                           - 002_add_column_to_products.sql
                           - 003_update_data_for_products.sql




                         Data Migration
Friday, April 27, 2012
v5.1




                         Green Database
Friday, April 27, 2012
v5.1
                         readonly



                           Green Database
Friday, April 27, 2012
Backup



                           v5.1              v5.1
                         readonly



                           Green Database
Friday, April 27, 2012
Backup          Migrate



                           v5.1              v5.1             v5.2
                         readonly



                           Green Database
Friday, April 27, 2012
compatible with db 5.1 & 5.2      compatible with db 5.2 & 5.3




                                          v5.2                             v5.3




                         v5.1                              v5.2                              v5.3



                  Decouple App & Database
Friday, April 27, 2012
Voltage
                                                       DB
                           Fan Speed
                                                            HTTP
                         Temperature      Hardware
                                             OS
                                         Middleware          SMTP
                            CPU          Application

                                                            DNS
                                  Disk
                                          Memory



                   Production Monitoring
Friday, April 27, 2012
Production Monitoring
Friday, April 27, 2012
Cross Functional Team
                          Continuous Integration
                         Incremental Developing
                              Feature Toggle
                          Automate Deployment
                                                   Weekly Release
                           Deployment Pipeline
                         Blue-Green Deployment
                           Database Migration
                          Production Monitoring
                                    ...




Friday, April 27, 2012
Good Enough?



Friday, April 27, 2012
http://code.flickr.com/


                         A Long Way to Go
Friday, April 27, 2012
Big Release
Friday, April 27, 2012
Continuous Delivery
Friday, April 27, 2012
Version Control
                                                                     acceptance
                                                System
                                                                        test
                             blue-green
                             deployment
                                                                                virtualization
                          canary
                         releases                                                  build pipeline

                    data
                 management                                                          automatic
                                                                                    deployment
                            dark
                          launch
                                                                                branch by
                                                                                abstraction
                           configuration
                           management
                                                                           DevOps
                                    infrastructure as code
                                                              could computing


Friday, April 27, 2012
Q&A
                          weibo: @HuZhenbo




Friday, April 27, 2012

Weitere ähnliche Inhalte

Ähnlich wie Continous Delivery in Action

鱼与熊掌 - 软件质量和交付速度
鱼与熊掌 - 软件质量和交付速度鱼与熊掌 - 软件质量和交付速度
鱼与熊掌 - 软件质量和交付速度andyhu1007
 
RoRoRoomba - Ruby on Rails on Roomba Railsconf 2012
RoRoRoomba - Ruby on Rails on Roomba Railsconf 2012RoRoRoomba - Ruby on Rails on Roomba Railsconf 2012
RoRoRoomba - Ruby on Rails on Roomba Railsconf 2012cwabbott
 
The state of drupal 8 - Drupalcamp Gent
The state of drupal 8  - Drupalcamp GentThe state of drupal 8  - Drupalcamp Gent
The state of drupal 8 - Drupalcamp Gentswentel
 
THE TRILLION ROW SPREADSHEET(tm) from Structure:Data 2012
THE TRILLION ROW SPREADSHEET(tm) from Structure:Data 2012THE TRILLION ROW SPREADSHEET(tm) from Structure:Data 2012
THE TRILLION ROW SPREADSHEET(tm) from Structure:Data 2012Gigaom
 
Behavior-Driven Development с RSpec и Cucumber
Behavior-Driven Development с RSpec и CucumberBehavior-Driven Development с RSpec и Cucumber
Behavior-Driven Development с RSpec и CucumberStefan Kanev
 
Экосистема Evernote и каналы продвижения партнерских проектов
Экосистема Evernote и каналы продвижения партнерских проектовЭкосистема Evernote и каналы продвижения партнерских проектов
Экосистема Evernote и каналы продвижения партнерских проектовEvernote
 
CLOUD LOCK-IN AND THE MYTH OF OPEN APIS at Structure 2012
CLOUD LOCK-IN AND THE MYTH OF OPEN APIS at Structure 2012CLOUD LOCK-IN AND THE MYTH OF OPEN APIS at Structure 2012
CLOUD LOCK-IN AND THE MYTH OF OPEN APIS at Structure 2012Gigaom
 
BIG DATA: AN AUGMENTED INTELLIGENCE FOR STRATEGIC DECISION MAKING from Struct...
BIG DATA: AN AUGMENTED INTELLIGENCE FOR STRATEGIC DECISION MAKING from Struct...BIG DATA: AN AUGMENTED INTELLIGENCE FOR STRATEGIC DECISION MAKING from Struct...
BIG DATA: AN AUGMENTED INTELLIGENCE FOR STRATEGIC DECISION MAKING from Struct...Gigaom
 
Ruby CI with Jenkins
Ruby CI with JenkinsRuby CI with Jenkins
Ruby CI with Jenkinscowboyd
 
eXo Software Factory Overview
eXo Software Factory OvervieweXo Software Factory Overview
eXo Software Factory OverviewArnaud Héritier
 
Cypher Query Language
Cypher Query Language Cypher Query Language
Cypher Query Language graphdevroom
 
MDW Boulder April '11 | Tim Malbon_How to actually make something
MDW Boulder April '11 | Tim Malbon_How to actually make somethingMDW Boulder April '11 | Tim Malbon_How to actually make something
MDW Boulder April '11 | Tim Malbon_How to actually make somethingBoulder Digital Works at CU
 
Como escalar aplicações PHP
Como escalar aplicações PHPComo escalar aplicações PHP
Como escalar aplicações PHPAugusto Pascutti
 
An Analytics Toolkit Tour
An Analytics Toolkit TourAn Analytics Toolkit Tour
An Analytics Toolkit TourRory Winston
 
StartupWeekend slide deck
StartupWeekend slide deckStartupWeekend slide deck
StartupWeekend slide deckjdaquino
 
Quality Assurance in a DevOps World
Quality Assurance in a DevOps WorldQuality Assurance in a DevOps World
Quality Assurance in a DevOps WorldKit Plummer
 
Best Practices - Seeqnce - 23/24-02-2012
Best Practices - Seeqnce - 23/24-02-2012Best Practices - Seeqnce - 23/24-02-2012
Best Practices - Seeqnce - 23/24-02-2012Youssef Chaker
 
Customer experience: The natural ally for UX in business
Customer experience: The natural ally for UX in businessCustomer experience: The natural ally for UX in business
Customer experience: The natural ally for UX in businessPeter Bogaards
 

Ähnlich wie Continous Delivery in Action (20)

鱼与熊掌 - 软件质量和交付速度
鱼与熊掌 - 软件质量和交付速度鱼与熊掌 - 软件质量和交付速度
鱼与熊掌 - 软件质量和交付速度
 
RoRoRoomba - Ruby on Rails on Roomba Railsconf 2012
RoRoRoomba - Ruby on Rails on Roomba Railsconf 2012RoRoRoomba - Ruby on Rails on Roomba Railsconf 2012
RoRoRoomba - Ruby on Rails on Roomba Railsconf 2012
 
The state of drupal 8 - Drupalcamp Gent
The state of drupal 8  - Drupalcamp GentThe state of drupal 8  - Drupalcamp Gent
The state of drupal 8 - Drupalcamp Gent
 
THE TRILLION ROW SPREADSHEET(tm) from Structure:Data 2012
THE TRILLION ROW SPREADSHEET(tm) from Structure:Data 2012THE TRILLION ROW SPREADSHEET(tm) from Structure:Data 2012
THE TRILLION ROW SPREADSHEET(tm) from Structure:Data 2012
 
Behavior-Driven Development с RSpec и Cucumber
Behavior-Driven Development с RSpec и CucumberBehavior-Driven Development с RSpec и Cucumber
Behavior-Driven Development с RSpec и Cucumber
 
Экосистема Evernote и каналы продвижения партнерских проектов
Экосистема Evernote и каналы продвижения партнерских проектовЭкосистема Evernote и каналы продвижения партнерских проектов
Экосистема Evernote и каналы продвижения партнерских проектов
 
CLOUD LOCK-IN AND THE MYTH OF OPEN APIS at Structure 2012
CLOUD LOCK-IN AND THE MYTH OF OPEN APIS at Structure 2012CLOUD LOCK-IN AND THE MYTH OF OPEN APIS at Structure 2012
CLOUD LOCK-IN AND THE MYTH OF OPEN APIS at Structure 2012
 
BIG DATA: AN AUGMENTED INTELLIGENCE FOR STRATEGIC DECISION MAKING from Struct...
BIG DATA: AN AUGMENTED INTELLIGENCE FOR STRATEGIC DECISION MAKING from Struct...BIG DATA: AN AUGMENTED INTELLIGENCE FOR STRATEGIC DECISION MAKING from Struct...
BIG DATA: AN AUGMENTED INTELLIGENCE FOR STRATEGIC DECISION MAKING from Struct...
 
Ecology Online Class
Ecology Online ClassEcology Online Class
Ecology Online Class
 
Misguided manager
Misguided managerMisguided manager
Misguided manager
 
Ruby CI with Jenkins
Ruby CI with JenkinsRuby CI with Jenkins
Ruby CI with Jenkins
 
eXo Software Factory Overview
eXo Software Factory OvervieweXo Software Factory Overview
eXo Software Factory Overview
 
Cypher Query Language
Cypher Query Language Cypher Query Language
Cypher Query Language
 
MDW Boulder April '11 | Tim Malbon_How to actually make something
MDW Boulder April '11 | Tim Malbon_How to actually make somethingMDW Boulder April '11 | Tim Malbon_How to actually make something
MDW Boulder April '11 | Tim Malbon_How to actually make something
 
Como escalar aplicações PHP
Como escalar aplicações PHPComo escalar aplicações PHP
Como escalar aplicações PHP
 
An Analytics Toolkit Tour
An Analytics Toolkit TourAn Analytics Toolkit Tour
An Analytics Toolkit Tour
 
StartupWeekend slide deck
StartupWeekend slide deckStartupWeekend slide deck
StartupWeekend slide deck
 
Quality Assurance in a DevOps World
Quality Assurance in a DevOps WorldQuality Assurance in a DevOps World
Quality Assurance in a DevOps World
 
Best Practices - Seeqnce - 23/24-02-2012
Best Practices - Seeqnce - 23/24-02-2012Best Practices - Seeqnce - 23/24-02-2012
Best Practices - Seeqnce - 23/24-02-2012
 
Customer experience: The natural ally for UX in business
Customer experience: The natural ally for UX in businessCustomer experience: The natural ally for UX in business
Customer experience: The natural ally for UX in business
 

Kürzlich hochgeladen

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
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
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
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
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
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
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
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
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
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
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 WorkerThousandEyes
 
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 2024Rafal Los
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 

Kürzlich hochgeladen (20)

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
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
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
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
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...
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
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...
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
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
 
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
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 

Continous Delivery in Action

  • 1. CONTINUOUS DELIVERY in Action by Hu Zhenbo (Andy) ThoughtWorks Friday, April 27, 2012
  • 3. 4 years Friday, April 27, 2012
  • 4. Page Views/Day Millions 100 75 50 25 0 2008 2009 2010 2011 Friday, April 27, 2012
  • 5. Team Size 70+ 70 52.5 35 17.5 0 2008 2009 2010 2011 Friday, April 27, 2012
  • 6. Features Delivered Days between major releases 2008 2009 2010 2011 Friday, April 27, 2012
  • 7. 3 major releases per year Friday, April 27, 2012
  • 8. 20 days to deploy Friday, April 27, 2012
  • 9. 30 people involved in deployment Friday, April 27, 2012
  • 15. Deploy to Death Friday, April 27, 2012
  • 16. Features Delivered Days between major releases 2008 2009 2010 2011 2012 Friday, April 27, 2012
  • 17. every 1 or 2 week delivery frequency Friday, April 27, 2012
  • 18. 0.5 days to deploy Friday, April 27, 2012
  • 19. 1 person dedicated for deployment Friday, April 27, 2012
  • 20. How’d we do it? Friday, April 27, 2012
  • 25. Decode 4 types of data 21 pts Incremental Developing Friday, April 27, 2012
  • 26. Design 5 pts Decode 4 types Framework of data 21 pts 8 pts Decode Data 8 pts Incremental Developing Friday, April 27, 2012
  • 27. Decode Data A Decode Data B 8 pts 5 pts Decode 4 types of data 21 pts Decode Data C Decode Data D 5 pts 3 pts Incremental Developing Friday, April 27, 2012
  • 30. Page File Config File #if ( $nonRealTimeRecharge ) # Feature Toggle <div>非即时到帐</div> nonRealTimeRecharge = true <div> ... realTimeRecharge = false #end #if( $realTimeRecharge ) <div>即时到帐</div> <div> ... #end Feature Toggle Friday, April 27, 2012
  • 31. Increasing confidence in build’s production readiness Environment become more production-like User Acceptance Testing Commit Stage exploratory test compile ... Acceptance Test analysis Production Stage unit test Non-Functional ... Testing performance test ... Slower Feedback Deployment Pipeline Friday, April 27, 2012
  • 33. Code Commit Update Jar Portal ZIP Upload Change Jar Dependen Stop Create Start Backup Unzip Config Server Log File Server Auto-Deploy Friday, April 27, 2012
  • 34. Code Commit Update Jar Portal ZIP Upload Change Jar Dependen Stop Create Start Backup Unzip Config Server Log File Server Auto-Deploy Friday, April 27, 2012
  • 35. Code Commit Update Jar Portal ZIP Upload Change Jar Dependen Stop Create Start Backup Unzip Config Server Log File Server One-click Deploy Auto-Deploy Friday, April 27, 2012
  • 36. Payment Mobile Account Portal Order Common Core Admin Components & Dependencies Friday, April 27, 2012
  • 37. Payment Mobile Account Portal Order Common Core Admin Components & Dependencies Friday, April 27, 2012
  • 38. Payment Mobile Account Portal Order Common Core Admin Components & Dependencies Friday, April 27, 2012
  • 39. Payment Mobile Account Portal Order Common Core Admin Components & Dependencies Friday, April 27, 2012
  • 40. Payment Mobile Account Portal Order Common Core Admin Components & Dependencies Friday, April 27, 2012
  • 41. Payment Mobile Account Portal Order Common Core Admin Components & Dependencies Friday, April 27, 2012
  • 43. Manual Session Based Testing Automated GUI Tests API Tests Integration Tests Component Tests Automated Unit Tests Test Pyramid Friday, April 27, 2012
  • 44. Deployment Test system configuration Acceptance component communication service is up and running Test ... Friday, April 27, 2012
  • 46. Web App DB Server Server Server Router Blue-Green Deploy Friday, April 27, 2012
  • 47. Web App DB Server Server Server Router v5.1 v5.1 v5.1 Blue-Green Deploy Friday, April 27, 2012
  • 48. Web App DB Server Server Server Router v5.1 v5.1 v5.1 Blue-Green Deploy Friday, April 27, 2012
  • 49. Web App DB Server Server Server Router v5.1 v5.1 v5.1 v5.2 v5.2 v5.2 Blue-Green Deploy Friday, April 27, 2012
  • 50. Web App DB Server Server Server Router v5.1 v5.1 v5.1 v5.2 v5.2 v5.2 Blue-Green Deploy Friday, April 27, 2012
  • 51. migrate - 001_create_products_table.sql - 002_add_column_to_products.sql - 003_update_data_for_products.sql rollback - 001_create_products_table.sql - 002_add_column_to_products.sql - 003_update_data_for_products.sql Data Migration Friday, April 27, 2012
  • 52. v5.1 Green Database Friday, April 27, 2012
  • 53. v5.1 readonly Green Database Friday, April 27, 2012
  • 54. Backup v5.1 v5.1 readonly Green Database Friday, April 27, 2012
  • 55. Backup Migrate v5.1 v5.1 v5.2 readonly Green Database Friday, April 27, 2012
  • 56. compatible with db 5.1 & 5.2 compatible with db 5.2 & 5.3 v5.2 v5.3 v5.1 v5.2 v5.3 Decouple App & Database Friday, April 27, 2012
  • 57. Voltage DB Fan Speed HTTP Temperature Hardware OS Middleware SMTP CPU Application DNS Disk Memory Production Monitoring Friday, April 27, 2012
  • 59. Cross Functional Team Continuous Integration Incremental Developing Feature Toggle Automate Deployment Weekly Release Deployment Pipeline Blue-Green Deployment Database Migration Production Monitoring ... Friday, April 27, 2012
  • 61. http://code.flickr.com/ A Long Way to Go Friday, April 27, 2012
  • 64. Version Control acceptance System test blue-green deployment virtualization canary releases build pipeline data management automatic deployment dark launch branch by abstraction configuration management DevOps infrastructure as code could computing Friday, April 27, 2012
  • 65. Q&A weibo: @HuZhenbo Friday, April 27, 2012