SlideShare une entreprise Scribd logo
1  sur  47
Télécharger pour lire hors ligne
Continuous Delivery
                               @jezhumble
                               #Agile2012, 15 August 2012




                          http://thoughtworks-studios.com/
Thursday, August 16, 12
agile 101



                                      "Agile" team

                                   Analysis + Design         Centralized QA                           IT Operations

                                      Development            Integration + QA                     Release and operation
   Customer                        Testing + Showcase
                   Iteration   0      1    2     3      4
                                                                                The "last mile"




Thursday, August 16, 12
web 2.0



                 disrupting traditional businesses




                                                 http://code.flickr.com/




Thursday, August 16, 12
releasing frequently



                 build the right thing
                                                           Customer
                                                          developent




                                                        Agile product
                                                        development




                                    Eric Ries, “The Lean Startup” http://bit.ly/8ZoX5F




Thursday, August 16, 12
innovate
                            You can't just ask
                              customers what
                          they want and then
                            try to give that to
                                         them.

                          By the time you get
                          it built, they'll want
                              something new.
    Steve Jobs

Thursday, August 16, 12
scientific method

                                                             Ideas


                 create hypothesis          Learn                             Build


                 deliver minimum
                 viable product
                                            Data                                 Code

                 get feedback                               Measure


                 (repeat)
                                     Eric Ries, “The Lean Startup” http://bit.ly/8ZoX5F

Thursday, August 16, 12
ask this question


        “How long would it take your
        organization to deploy a change that
        involved just one single line of code? Do
        you do this on a repeatable, reliable
        basis?”



                           Mary and Tom Poppendieck, Implementing Lean Software Development, p59.

Thursday, August 16, 12
releasing frequently



                 build the right thing
                 reduce risk of release




                          John Allspaw: “Ops Metametrics” http://slidesha.re/dsSZIr

Thursday, August 16, 12
optimize for mtrs




Thursday, August 16, 12
optimize for mtrs




                          MTBF            MTRS
Thursday, August 16, 12
releasing frequently



                 build the right thing
                 reduce risk of release
                 real project progress




Thursday, August 16, 12
agile manifesto



                 Our highest priority is to satisfy
                 the customer through early and
                 continuous delivery of
                 valuable software




Thursday, August 16, 12
production-ready software



                 Fast, automated feedback on
                 the production readiness of
                 your applications every time
                 there is a change - to code,
                 infrastructure, or configuration



Thursday, August 16, 12
continuous delivery




                 Software always production ready
                 Releases tied to business needs, not
                 operational constraints
Thursday, August 16, 12
continuous delivery

                 automation



                 patterns and practices



                 collaboration


Thursday, August 16, 12
ingredients

                 configuration management



                 continuous integration



                 automated testing


Thursday, August 16, 12
Local
               Develop
                           Workstation

                                            Mainline Server

                   Build

                                     pull


                   Build                        Build
                                                              ✔
                                                          Done!
                                  push

Thursday, August 16, 12
Local
               Develop
                            Workstation

                Everyone Commits
                          Mainline Server

                   Build
                          To the pull
                                  Mainline
                   Build
                             Every Day
                                     Build
                                             ✔
                                             Done!
                                   push

Thursday, August 16, 12
build quality in

                               “Cease dependence on
                               mass inspection to
                               achieve quality.
                               Improve the process
                               and build quality into
                               the product in the first
                               place”

                                  W. Edwards Deming
Thursday, August 16, 12
different kinds of testing


                                                                   Business facing
                                                      AUTOMATED                       MANUAL

                                                                                 Showcases
                           Support programming




                                                 Functional acceptance
                                                                               Usability testing
                                                         tests




                                                                                                            Critique project
                                                                              Exploratory testing



                                                        Unit tests               Non-functional
                                                    Integration tests          acceptance tests
                                                      System tests         (performance, scaling, ...)
                                                      AUTOMATED               MANUAL / AUTOMATED

                                                                  Technology facing



                                                                                                         Diagram invented by Brian Marick

Thursday, August 16, 12
deployment pipeline


                 an automated implementation of your
                 system’s build, deploy, test, release process

                 visibility

                 feedback

                 control

Thursday, August 16, 12
deployment pipeline

                          Delivery team         Version control              Build & unit           Automated       User acceptance         Release
                                                                                tests            acceptance tests         tests

                                          Check in
                                                                   Trigger

                                                     Feedback


                                          Check in
                                                                   Trigger

                                                 Feedback                                   Trigger




                                                                Feedback


                                      Check in
                                                                   Trigger

                                                     Feedback                               Trigger




                                                                Feedback                                      Approval
                                                                           Feedback                                              Approval




Thursday, August 16, 12
deployment pipeline




Thursday, August 16, 12
deployment pipeline




Thursday, August 16, 12
reducing release risk



                 automate provisioning and deployment




                 ensure devs, testers and ops collaborate
                 throughout


Thursday, August 16, 12
reducing release risk


                 devops


                 incrementalism


                 decoupling deployment and release


Thursday, August 16, 12
devops
                             culture
                           automation
                          measurement
                             sharing




Thursday, August 16, 12
feature toggles
                blue-green deployments

                                                  canary releases


               low risk releases
                are incremental
                          dark launching

                                           production immune system

Thursday, August 16, 12
DEPENDENT SERVICE



                                                    1.0         1.1                      Database




                                                   Abstraction layer                 Abstraction layer



                          STATIC CONTENT


                                 /static/1.1
                                                                       APPLICATION

                                 /static/1.0




                                                  Router /
                                               Load balancer




                                                 Interwebs




Thursday, August 16, 12
blue-green
                          deployments


Thursday, August 16, 12
router



                                    web      app       DB
                                   server   server   server
Thursday, August 16, 12
v1.1     v1.1     v1.1

                          router



                                    web      app       DB
                                   server   server   server
Thursday, August 16, 12
v1.1     v1.1     v1.1

                          router
                                    v1.2     v1.2     v1.2



                                    web      app       DB
                                   server   server   server
Thursday, August 16, 12
v1.1     v1.1     v1.1

                          router
                                    v1.2     v1.2     v1.2



                                    web      app       DB
                                   server   server   server
Thursday, August 16, 12
Canary Releasing


Thursday, August 16, 12
Thursday, August 16, 12
Thursday, August 16, 12
canary releasing


                 Reduce risk of release


                 Multi-variant testing


                 Performance testing


Thursday, August 16, 12
immune system


                          what if someone replaced your
                          “buy” button with spacer.gif?




                                  T cells http://www.flickr.com/photos/gehealthcare/3326186490/
Thursday, August 16, 12
release !=
                          deployment


Thursday, August 16, 12
feature toggles

                   Config File
             [featureToggles]
             wobblyFoobars: true
                                                                            some.php
             flightyForkHandles: false
                                                                <?if ($wobblyFoobars) {?>
                                                                  ... various UI elements
                                                                <?}?>




                          other.php
                      $fork_handle = ($featureConfig->isOn(‘flightlyForkHandles)) ?
                                      new flightyForkHander(aCandle) :
                                      new forkHandler(aCandle);




                                      Stolen from Martin Fowler http://martinfowler.com/bliki/FeatureToggle.html

Thursday, August 16, 12
Dark Launching


Thursday, August 16, 12
Thursday, August 16, 12
Thursday, August 16, 12
enterprise governance

   risk management

   SOX, ITIL, COBIT

   segregation of duties

   change management

   auditing and compliance

Thursday, August 16, 12
people are the key

                 Get everyone together at the beginning

                 Keep meeting

                 Make it easy for everyone to see what’s
                 happening

                 Continuous improvement (kaizen)


Thursday, August 16, 12
questions
        jez@thoughtworks.com
        http://continuousdelivery.com/

        @jezhumble #continuousdelivery




                                                             © 2011 ThoughtWorks, Inc.


                          http://thoughtworks-studios.com/
Thursday, August 16, 12

Contenu connexe

En vedette

Fb talk arch_summit
Fb talk arch_summitFb talk arch_summit
Fb talk arch_summitdrewz lin
 
Top100summit 芈珺七拼八凑搭建移动自动化测试框架
Top100summit 芈珺七拼八凑搭建移动自动化测试框架Top100summit 芈珺七拼八凑搭建移动自动化测试框架
Top100summit 芈珺七拼八凑搭建移动自动化测试框架drewz lin
 
低功耗服务器定制与绿色计算——章文嵩(淘宝)
低功耗服务器定制与绿色计算——章文嵩(淘宝)低功耗服务器定制与绿色计算——章文嵩(淘宝)
低功耗服务器定制与绿色计算——章文嵩(淘宝)drewz lin
 
Pragmatic notdogmatictdd agile2012
Pragmatic notdogmatictdd   agile2012Pragmatic notdogmatictdd   agile2012
Pragmatic notdogmatictdd agile2012drewz lin
 
Story mapstestplansandothercrosscutting
Story mapstestplansandothercrosscuttingStory mapstestplansandothercrosscutting
Story mapstestplansandothercrosscuttingdrewz lin
 
Via forensics appsecusa-nov-2013
Via forensics appsecusa-nov-2013Via forensics appsecusa-nov-2013
Via forensics appsecusa-nov-2013drewz lin
 
Web security-–-everything-we-know-is-wrong-eoin-keary
Web security-–-everything-we-know-is-wrong-eoin-kearyWeb security-–-everything-we-know-is-wrong-eoin-keary
Web security-–-everything-we-know-is-wrong-eoin-kearydrewz lin
 

En vedette (7)

Fb talk arch_summit
Fb talk arch_summitFb talk arch_summit
Fb talk arch_summit
 
Top100summit 芈珺七拼八凑搭建移动自动化测试框架
Top100summit 芈珺七拼八凑搭建移动自动化测试框架Top100summit 芈珺七拼八凑搭建移动自动化测试框架
Top100summit 芈珺七拼八凑搭建移动自动化测试框架
 
低功耗服务器定制与绿色计算——章文嵩(淘宝)
低功耗服务器定制与绿色计算——章文嵩(淘宝)低功耗服务器定制与绿色计算——章文嵩(淘宝)
低功耗服务器定制与绿色计算——章文嵩(淘宝)
 
Pragmatic notdogmatictdd agile2012
Pragmatic notdogmatictdd   agile2012Pragmatic notdogmatictdd   agile2012
Pragmatic notdogmatictdd agile2012
 
Story mapstestplansandothercrosscutting
Story mapstestplansandothercrosscuttingStory mapstestplansandothercrosscutting
Story mapstestplansandothercrosscutting
 
Via forensics appsecusa-nov-2013
Via forensics appsecusa-nov-2013Via forensics appsecusa-nov-2013
Via forensics appsecusa-nov-2013
 
Web security-–-everything-we-know-is-wrong-eoin-keary
Web security-–-everything-we-know-is-wrong-eoin-kearyWeb security-–-everything-we-know-is-wrong-eoin-keary
Web security-–-everything-we-know-is-wrong-eoin-keary
 

Similaire à Continuous delivery agile_2012

Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous DeliveryJez Humble
 
Automated tests workshop
Automated tests workshopAutomated tests workshop
Automated tests workshopdrewz lin
 
Creating Maintainable Automated Acceptance Tests
Creating Maintainable Automated Acceptance TestsCreating Maintainable Automated Acceptance Tests
Creating Maintainable Automated Acceptance TestsJez Humble
 
Mobile first service design
Mobile first service designMobile first service design
Mobile first service designUichong Dano Lee
 
JDD 2016 - Joseph W. Yoder - Deliver Fast "With Confidence"
JDD 2016 - Joseph W. Yoder - Deliver Fast "With Confidence"JDD 2016 - Joseph W. Yoder - Deliver Fast "With Confidence"
JDD 2016 - Joseph W. Yoder - Deliver Fast "With Confidence"PROIDEA
 
7 Deadly Sins of Agile Software Test Automation
7 Deadly Sins of Agile Software Test Automation7 Deadly Sins of Agile Software Test Automation
7 Deadly Sins of Agile Software Test AutomationAdrian Smith
 
SpeakerConf: my findings in trying to use this functional programming busines...
SpeakerConf: my findings in trying to use this functional programming busines...SpeakerConf: my findings in trying to use this functional programming busines...
SpeakerConf: my findings in trying to use this functional programming busines...Phil Calçado
 
Responsive Web Design &amp; Workflow
Responsive Web Design &amp; WorkflowResponsive Web Design &amp; Workflow
Responsive Web Design &amp; Workflowhouhr
 
Social ROI and Value modeling
Social ROI and Value modeling Social ROI and Value modeling
Social ROI and Value modeling Peter H. Reiser
 
Engineering Change
Engineering ChangeEngineering Change
Engineering ChangeKellan
 
How to be a Lean Product Developer? @Agile Riga Day 2012
How to be a Lean Product Developer? @Agile Riga Day 2012How to be a Lean Product Developer? @Agile Riga Day 2012
How to be a Lean Product Developer? @Agile Riga Day 2012Marko Taipale
 
Código Fácil De Testear
Código Fácil De TestearCódigo Fácil De Testear
Código Fácil De TestearAlvaro Videla
 
Html5 new sword for interactive app
Html5 new sword for interactive appHtml5 new sword for interactive app
Html5 new sword for interactive appYohan Totting
 
UX Basics: Build Better Products
UX Basics: Build Better ProductsUX Basics: Build Better Products
UX Basics: Build Better ProductsCate Kompare
 
Twenty Startups A Year Without Going Crazy
Twenty Startups A Year Without Going CrazyTwenty Startups A Year Without Going Crazy
Twenty Startups A Year Without Going CrazyCiklum Ukraine
 
Ux paper prototyping
Ux paper prototypingUx paper prototyping
Ux paper prototypingGrace Ng
 
Measuring Web Performance - HighEdWeb Edition
Measuring Web Performance - HighEdWeb EditionMeasuring Web Performance - HighEdWeb Edition
Measuring Web Performance - HighEdWeb EditionDave Olsen
 
First build the right thing
First build the right thingFirst build the right thing
First build the right thingAgileOnTheBeach
 

Similaire à Continuous delivery agile_2012 (20)

Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 
Automated tests workshop
Automated tests workshopAutomated tests workshop
Automated tests workshop
 
Creating Maintainable Automated Acceptance Tests
Creating Maintainable Automated Acceptance TestsCreating Maintainable Automated Acceptance Tests
Creating Maintainable Automated Acceptance Tests
 
Mobile first service design
Mobile first service designMobile first service design
Mobile first service design
 
JDD 2016 - Joseph W. Yoder - Deliver Fast "With Confidence"
JDD 2016 - Joseph W. Yoder - Deliver Fast "With Confidence"JDD 2016 - Joseph W. Yoder - Deliver Fast "With Confidence"
JDD 2016 - Joseph W. Yoder - Deliver Fast "With Confidence"
 
7 Deadly Sins of Agile Software Test Automation
7 Deadly Sins of Agile Software Test Automation7 Deadly Sins of Agile Software Test Automation
7 Deadly Sins of Agile Software Test Automation
 
SpeakerConf: my findings in trying to use this functional programming busines...
SpeakerConf: my findings in trying to use this functional programming busines...SpeakerConf: my findings in trying to use this functional programming busines...
SpeakerConf: my findings in trying to use this functional programming busines...
 
Responsive Web Design &amp; Workflow
Responsive Web Design &amp; WorkflowResponsive Web Design &amp; Workflow
Responsive Web Design &amp; Workflow
 
Social ROI and Value modeling
Social ROI and Value modeling Social ROI and Value modeling
Social ROI and Value modeling
 
Engineering Change
Engineering ChangeEngineering Change
Engineering Change
 
How to be a Lean Product Developer? @Agile Riga Day 2012
How to be a Lean Product Developer? @Agile Riga Day 2012How to be a Lean Product Developer? @Agile Riga Day 2012
How to be a Lean Product Developer? @Agile Riga Day 2012
 
Código Fácil De Testear
Código Fácil De TestearCódigo Fácil De Testear
Código Fácil De Testear
 
JavaScript QA Tools
JavaScript QA ToolsJavaScript QA Tools
JavaScript QA Tools
 
Html5 new sword for interactive app
Html5 new sword for interactive appHtml5 new sword for interactive app
Html5 new sword for interactive app
 
UX Basics: Build Better Products
UX Basics: Build Better ProductsUX Basics: Build Better Products
UX Basics: Build Better Products
 
Twenty Startups A Year Without Going Crazy
Twenty Startups A Year Without Going CrazyTwenty Startups A Year Without Going Crazy
Twenty Startups A Year Without Going Crazy
 
Ux paper prototyping
Ux paper prototypingUx paper prototyping
Ux paper prototyping
 
Measuring Web Performance - HighEdWeb Edition
Measuring Web Performance - HighEdWeb EditionMeasuring Web Performance - HighEdWeb Edition
Measuring Web Performance - HighEdWeb Edition
 
First build the right thing
First build the right thingFirst build the right thing
First build the right thing
 
User driven development
User driven developmentUser driven development
User driven development
 

Plus de drewz lin

Phu appsec13
Phu appsec13Phu appsec13
Phu appsec13drewz lin
 
Owasp2013 johannesullrich
Owasp2013 johannesullrichOwasp2013 johannesullrich
Owasp2013 johannesullrichdrewz lin
 
Owasp advanced mobile-application-code-review-techniques-v0.2
Owasp advanced mobile-application-code-review-techniques-v0.2Owasp advanced mobile-application-code-review-techniques-v0.2
Owasp advanced mobile-application-code-review-techniques-v0.2drewz lin
 
I mas appsecusa-nov13-v2
I mas appsecusa-nov13-v2I mas appsecusa-nov13-v2
I mas appsecusa-nov13-v2drewz lin
 
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolf
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolfDefeating xss-and-xsrf-with-my faces-frameworks-steve-wolf
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolfdrewz lin
 
Csrf not-all-defenses-are-created-equal
Csrf not-all-defenses-are-created-equalCsrf not-all-defenses-are-created-equal
Csrf not-all-defenses-are-created-equaldrewz lin
 
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21drewz lin
 
Appsec usa roberthansen
Appsec usa roberthansenAppsec usa roberthansen
Appsec usa roberthansendrewz lin
 
Appsec usa2013 js_libinsecurity_stefanodipaola
Appsec usa2013 js_libinsecurity_stefanodipaolaAppsec usa2013 js_libinsecurity_stefanodipaola
Appsec usa2013 js_libinsecurity_stefanodipaoladrewz lin
 
Appsec2013 presentation-dickson final-with_all_final_edits
Appsec2013 presentation-dickson final-with_all_final_editsAppsec2013 presentation-dickson final-with_all_final_edits
Appsec2013 presentation-dickson final-with_all_final_editsdrewz lin
 
Appsec2013 presentation
Appsec2013 presentationAppsec2013 presentation
Appsec2013 presentationdrewz lin
 
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitationsAppsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitationsdrewz lin
 
Appsec2013 assurance tagging-robert martin
Appsec2013 assurance tagging-robert martinAppsec2013 assurance tagging-robert martin
Appsec2013 assurance tagging-robert martindrewz lin
 
Amol scadaowasp
Amol scadaowaspAmol scadaowasp
Amol scadaowaspdrewz lin
 
Agile sdlc-v1.1-owasp-app sec-usa
Agile sdlc-v1.1-owasp-app sec-usaAgile sdlc-v1.1-owasp-app sec-usa
Agile sdlc-v1.1-owasp-app sec-usadrewz lin
 
Vulnex app secusa2013
Vulnex app secusa2013Vulnex app secusa2013
Vulnex app secusa2013drewz lin
 
基于虚拟化技术的分布式软件测试框架
基于虚拟化技术的分布式软件测试框架基于虚拟化技术的分布式软件测试框架
基于虚拟化技术的分布式软件测试框架drewz lin
 
新浪微博稳定性经验谈
新浪微博稳定性经验谈新浪微博稳定性经验谈
新浪微博稳定性经验谈drewz lin
 
无线App的性能分析和监控实践 rickyqiu
无线App的性能分析和监控实践 rickyqiu无线App的性能分析和监控实践 rickyqiu
无线App的性能分析和监控实践 rickyqiudrewz lin
 
网易移动自动化测试实践(孔庆云)
网易移动自动化测试实践(孔庆云)网易移动自动化测试实践(孔庆云)
网易移动自动化测试实践(孔庆云)drewz lin
 

Plus de drewz lin (20)

Phu appsec13
Phu appsec13Phu appsec13
Phu appsec13
 
Owasp2013 johannesullrich
Owasp2013 johannesullrichOwasp2013 johannesullrich
Owasp2013 johannesullrich
 
Owasp advanced mobile-application-code-review-techniques-v0.2
Owasp advanced mobile-application-code-review-techniques-v0.2Owasp advanced mobile-application-code-review-techniques-v0.2
Owasp advanced mobile-application-code-review-techniques-v0.2
 
I mas appsecusa-nov13-v2
I mas appsecusa-nov13-v2I mas appsecusa-nov13-v2
I mas appsecusa-nov13-v2
 
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolf
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolfDefeating xss-and-xsrf-with-my faces-frameworks-steve-wolf
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolf
 
Csrf not-all-defenses-are-created-equal
Csrf not-all-defenses-are-created-equalCsrf not-all-defenses-are-created-equal
Csrf not-all-defenses-are-created-equal
 
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21
 
Appsec usa roberthansen
Appsec usa roberthansenAppsec usa roberthansen
Appsec usa roberthansen
 
Appsec usa2013 js_libinsecurity_stefanodipaola
Appsec usa2013 js_libinsecurity_stefanodipaolaAppsec usa2013 js_libinsecurity_stefanodipaola
Appsec usa2013 js_libinsecurity_stefanodipaola
 
Appsec2013 presentation-dickson final-with_all_final_edits
Appsec2013 presentation-dickson final-with_all_final_editsAppsec2013 presentation-dickson final-with_all_final_edits
Appsec2013 presentation-dickson final-with_all_final_edits
 
Appsec2013 presentation
Appsec2013 presentationAppsec2013 presentation
Appsec2013 presentation
 
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitationsAppsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
 
Appsec2013 assurance tagging-robert martin
Appsec2013 assurance tagging-robert martinAppsec2013 assurance tagging-robert martin
Appsec2013 assurance tagging-robert martin
 
Amol scadaowasp
Amol scadaowaspAmol scadaowasp
Amol scadaowasp
 
Agile sdlc-v1.1-owasp-app sec-usa
Agile sdlc-v1.1-owasp-app sec-usaAgile sdlc-v1.1-owasp-app sec-usa
Agile sdlc-v1.1-owasp-app sec-usa
 
Vulnex app secusa2013
Vulnex app secusa2013Vulnex app secusa2013
Vulnex app secusa2013
 
基于虚拟化技术的分布式软件测试框架
基于虚拟化技术的分布式软件测试框架基于虚拟化技术的分布式软件测试框架
基于虚拟化技术的分布式软件测试框架
 
新浪微博稳定性经验谈
新浪微博稳定性经验谈新浪微博稳定性经验谈
新浪微博稳定性经验谈
 
无线App的性能分析和监控实践 rickyqiu
无线App的性能分析和监控实践 rickyqiu无线App的性能分析和监控实践 rickyqiu
无线App的性能分析和监控实践 rickyqiu
 
网易移动自动化测试实践(孔庆云)
网易移动自动化测试实践(孔庆云)网易移动自动化测试实践(孔庆云)
网易移动自动化测试实践(孔庆云)
 

Continuous delivery agile_2012

  • 1. Continuous Delivery @jezhumble #Agile2012, 15 August 2012 http://thoughtworks-studios.com/ Thursday, August 16, 12
  • 2. agile 101 "Agile" team Analysis + Design Centralized QA IT Operations Development Integration + QA Release and operation Customer Testing + Showcase Iteration 0 1 2 3 4 The "last mile" Thursday, August 16, 12
  • 3. web 2.0 disrupting traditional businesses http://code.flickr.com/ Thursday, August 16, 12
  • 4. releasing frequently build the right thing Customer developent Agile product development Eric Ries, “The Lean Startup” http://bit.ly/8ZoX5F Thursday, August 16, 12
  • 5. innovate You can't just ask customers what they want and then try to give that to them. By the time you get it built, they'll want something new. Steve Jobs Thursday, August 16, 12
  • 6. scientific method Ideas create hypothesis Learn Build deliver minimum viable product Data Code get feedback Measure (repeat) Eric Ries, “The Lean Startup” http://bit.ly/8ZoX5F Thursday, August 16, 12
  • 7. ask this question “How long would it take your organization to deploy a change that involved just one single line of code? Do you do this on a repeatable, reliable basis?” Mary and Tom Poppendieck, Implementing Lean Software Development, p59. Thursday, August 16, 12
  • 8. releasing frequently build the right thing reduce risk of release John Allspaw: “Ops Metametrics” http://slidesha.re/dsSZIr Thursday, August 16, 12
  • 10. optimize for mtrs MTBF MTRS Thursday, August 16, 12
  • 11. releasing frequently build the right thing reduce risk of release real project progress Thursday, August 16, 12
  • 12. agile manifesto Our highest priority is to satisfy the customer through early and continuous delivery of valuable software Thursday, August 16, 12
  • 13. production-ready software Fast, automated feedback on the production readiness of your applications every time there is a change - to code, infrastructure, or configuration Thursday, August 16, 12
  • 14. continuous delivery Software always production ready Releases tied to business needs, not operational constraints Thursday, August 16, 12
  • 15. continuous delivery automation patterns and practices collaboration Thursday, August 16, 12
  • 16. ingredients configuration management continuous integration automated testing Thursday, August 16, 12
  • 17. Local Develop Workstation Mainline Server Build pull Build Build ✔ Done! push Thursday, August 16, 12
  • 18. Local Develop Workstation Everyone Commits Mainline Server Build To the pull Mainline Build Every Day Build ✔ Done! push Thursday, August 16, 12
  • 19. build quality in “Cease dependence on mass inspection to achieve quality. Improve the process and build quality into the product in the first place” W. Edwards Deming Thursday, August 16, 12
  • 20. different kinds of testing Business facing AUTOMATED MANUAL Showcases Support programming Functional acceptance Usability testing tests Critique project Exploratory testing Unit tests Non-functional Integration tests acceptance tests System tests (performance, scaling, ...) AUTOMATED MANUAL / AUTOMATED Technology facing Diagram invented by Brian Marick Thursday, August 16, 12
  • 21. deployment pipeline an automated implementation of your system’s build, deploy, test, release process visibility feedback control Thursday, August 16, 12
  • 22. deployment pipeline Delivery team Version control Build & unit Automated User acceptance Release tests acceptance tests tests Check in Trigger Feedback Check in Trigger Feedback Trigger Feedback Check in Trigger Feedback Trigger Feedback Approval Feedback Approval Thursday, August 16, 12
  • 25. reducing release risk automate provisioning and deployment ensure devs, testers and ops collaborate throughout Thursday, August 16, 12
  • 26. reducing release risk devops incrementalism decoupling deployment and release Thursday, August 16, 12
  • 27. devops culture automation measurement sharing Thursday, August 16, 12
  • 28. feature toggles blue-green deployments canary releases low risk releases are incremental dark launching production immune system Thursday, August 16, 12
  • 29. DEPENDENT SERVICE 1.0 1.1 Database Abstraction layer Abstraction layer STATIC CONTENT /static/1.1 APPLICATION /static/1.0 Router / Load balancer Interwebs Thursday, August 16, 12
  • 30. blue-green deployments Thursday, August 16, 12
  • 31. router web app DB server server server Thursday, August 16, 12
  • 32. v1.1 v1.1 v1.1 router web app DB server server server Thursday, August 16, 12
  • 33. v1.1 v1.1 v1.1 router v1.2 v1.2 v1.2 web app DB server server server Thursday, August 16, 12
  • 34. v1.1 v1.1 v1.1 router v1.2 v1.2 v1.2 web app DB server server server Thursday, August 16, 12
  • 38. canary releasing Reduce risk of release Multi-variant testing Performance testing Thursday, August 16, 12
  • 39. immune system what if someone replaced your “buy” button with spacer.gif? T cells http://www.flickr.com/photos/gehealthcare/3326186490/ Thursday, August 16, 12
  • 40. release != deployment Thursday, August 16, 12
  • 41. feature toggles Config File [featureToggles] wobblyFoobars: true some.php flightyForkHandles: false <?if ($wobblyFoobars) {?> ... various UI elements <?}?> other.php $fork_handle = ($featureConfig->isOn(‘flightlyForkHandles)) ? new flightyForkHander(aCandle) : new forkHandler(aCandle); Stolen from Martin Fowler http://martinfowler.com/bliki/FeatureToggle.html Thursday, August 16, 12
  • 45. enterprise governance risk management SOX, ITIL, COBIT segregation of duties change management auditing and compliance Thursday, August 16, 12
  • 46. people are the key Get everyone together at the beginning Keep meeting Make it easy for everyone to see what’s happening Continuous improvement (kaizen) Thursday, August 16, 12
  • 47. questions jez@thoughtworks.com http://continuousdelivery.com/ @jezhumble #continuousdelivery © 2011 ThoughtWorks, Inc. http://thoughtworks-studios.com/ Thursday, August 16, 12