SlideShare una empresa de Scribd logo
1 de 65
Descargar para leer sin conexión
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

Más contenido relacionado

Similar a 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
 
PYP Exhibition Group Meeting 1
PYP Exhibition Group Meeting 1PYP Exhibition Group Meeting 1
PYP Exhibition Group Meeting 1Jennifer Fenton
 
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
 

Similar a 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
 
PYP Exhibition Group Meeting 1
PYP Exhibition Group Meeting 1PYP Exhibition Group Meeting 1
PYP Exhibition Group Meeting 1
 
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
 

Último

Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
 
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...apidays
 
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 REVIEWERMadyBayot
 
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 ModelDeepika Singh
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Bhuvaneswari Subramani
 
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)Zilliz
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
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, Adobeapidays
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 
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 FMESafe Software
 
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 WoodJuan lago vázquez
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
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.pptxRemote DBA Services
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 

Último (20)

Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
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
 
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
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
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)
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
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
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
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
 
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
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
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
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 

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