SlideShare a Scribd company logo
1 of 47
Download to read offline
continuous delivery
                           @jezhumble
                           Berlin, 4 october 2012




                         http://thoughtworks-studios.com/
Tuesday, October 9, 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"




Tuesday, October 9, 12
social



                 disrupting traditional businesses




                                                 http://code.flickr.com/




Tuesday, October 9, 12
releasing frequently



                 1. build the right thing
                                                         Customer
                                                        development


                                                         Agile product
                                                         development




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




Tuesday, October 9, 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

Tuesday, October 9, 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

Tuesday, October 9, 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.

Tuesday, October 9, 12
releasing frequently



                 1. build the right thing
                 2. reduce risk of release




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

Tuesday, October 9, 12
optimize for mtrs




Tuesday, October 9, 12
optimize for mtrs




                            MTBF                                                  MTRS

                                John Allspaw: “Building Resilience in Web Development and Operations”
                         http://www.usievents.com/en/conferences/8-paris-usi-2011/sessions/968-john-allspaw
Tuesday, October 9, 12
releasing frequently



                 1. build the right thing
                 2. reduce risk of release
                 3. real project progress




Tuesday, October 9, 12
agile manifesto



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




Tuesday, October 9, 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



Tuesday, October 9, 12
continuous delivery




                 Software always production ready
                 Releases tied to business needs, not
                 operational constraints
Tuesday, October 9, 12
continuous delivery

                 automation



                 patterns and practices



                 collaboration


Tuesday, October 9, 12
ingredients

                 configuration management



                 continuous integration



                 automated testing


Tuesday, October 9, 12
Local
               Develop
                           Workstation

                                            Mainline Server

                   Build

                                     pull


                   Build                        Build
                                                              ✔
                                                          Done!
                                  push

Tuesday, October 9, 12
Local
               Develop
                           Workstation

                Everyone Commits
                          Mainline Server

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

Tuesday, October 9, 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
Tuesday, October 9, 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

Tuesday, October 9, 12
deployment pipeline


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

                 visibility

                 feedback

                 control

Tuesday, October 9, 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




Tuesday, October 9, 12
deployment pipeline




Tuesday, October 9, 12
deployment pipeline




Tuesday, October 9, 12
reducing release risk



                 automate provisioning and deployment




                 ensure devs, testers and ops collaborate
                 throughout


Tuesday, October 9, 12
reducing release risk


                 devops


                 incrementalism


                 decoupling deployment and release


Tuesday, October 9, 12
devops
                            culture
                          automation
                         measurement
                            sharing




Tuesday, October 9, 12
feature toggles
                blue-green deployments

                                                 canary releases


               low risk releases
                are incremental
                         dark launching

                                          production immune system

Tuesday, October 9, 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




Tuesday, October 9, 12
blue-green
                         deployments


Tuesday, October 9, 12
router



                                   web      app       DB
                                  server   server   server
Tuesday, October 9, 12
v1.1     v1.1     v1.1

                         router



                                   web      app       DB
                                  server   server   server
Tuesday, October 9, 12
v1.1     v1.1     v1.1

                         router
                                   v1.2     v1.2     v1.2



                                   web      app       DB
                                  server   server   server
Tuesday, October 9, 12
v1.1     v1.1     v1.1

                         router
                                   v1.2     v1.2     v1.2



                                   web      app       DB
                                  server   server   server
Tuesday, October 9, 12
Canary Releasing


Tuesday, October 9, 12
Tuesday, October 9, 12
Tuesday, October 9, 12
canary releasing


                 Reduce risk of release


                 Multi-variant testing


                 Performance testing


Tuesday, October 9, 12
immune system


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




                                 T cells http://www.flickr.com/photos/gehealthcare/3326186490/
Tuesday, October 9, 12
release !=
                         deployment


Tuesday, October 9, 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

Tuesday, October 9, 12
Dark Launching


Tuesday, October 9, 12
Tuesday, October 9, 12
Tuesday, October 9, 12
enterprise governance

   risk management

   SOX, ITIL, COBIT

   segregation of duties

   change management

   auditing and compliance

Tuesday, October 9, 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)


Tuesday, October 9, 12
questions
        @jezhumble | jez@thoughtworks.com
        http://continuousdelivery.com/



        ThoughtWorks is hiring!
        http://jobs.thoughtworks.com/

        Australia | Brazil | Canada | China
        Germany | India | Singapore | South Africa
        Uganda | UK | USA


                                                            © 2012 ThoughtWorks, Inc.


                         http://thoughtworks-studios.com/
Tuesday, October 9, 12

More Related Content

What's hot

Deep Dive on Amazon EBS Elastic Volumes - March 2017 AWS Online Tech Talks
Deep Dive on Amazon EBS Elastic Volumes - March 2017 AWS Online Tech TalksDeep Dive on Amazon EBS Elastic Volumes - March 2017 AWS Online Tech Talks
Deep Dive on Amazon EBS Elastic Volumes - March 2017 AWS Online Tech TalksAmazon Web Services
 
Introduction to elasticsearch
Introduction to elasticsearchIntroduction to elasticsearch
Introduction to elasticsearchpmanvi
 
Executing a Large-Scale Migration to AWS
Executing a Large-Scale Migration to AWSExecuting a Large-Scale Migration to AWS
Executing a Large-Scale Migration to AWSAmazon Web Services
 
Introduction to Apache NiFi 1.11.4
Introduction to Apache NiFi 1.11.4Introduction to Apache NiFi 1.11.4
Introduction to Apache NiFi 1.11.4Timothy Spann
 
클라우드 기반 AWS 데이터베이스 선택 옵션 - AWS Summit Seoul 2017
클라우드 기반 AWS 데이터베이스 선택 옵션 - AWS Summit Seoul 2017 클라우드 기반 AWS 데이터베이스 선택 옵션 - AWS Summit Seoul 2017
클라우드 기반 AWS 데이터베이스 선택 옵션 - AWS Summit Seoul 2017 Amazon Web Services Korea
 
게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016
게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016
게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016Amazon Web Services Korea
 
클라우드 네이티브 데이터베이스 서비스로 Oracle RAC 전환 - 김지훈 :: AWS 클라우드 마이그레이션 온라인
클라우드 네이티브 데이터베이스 서비스로 Oracle RAC 전환 - 김지훈 :: AWS 클라우드 마이그레이션 온라인클라우드 네이티브 데이터베이스 서비스로 Oracle RAC 전환 - 김지훈 :: AWS 클라우드 마이그레이션 온라인
클라우드 네이티브 데이터베이스 서비스로 Oracle RAC 전환 - 김지훈 :: AWS 클라우드 마이그레이션 온라인Amazon Web Services Korea
 
Flexible and Real-Time Stream Processing with Apache Flink
Flexible and Real-Time Stream Processing with Apache FlinkFlexible and Real-Time Stream Processing with Apache Flink
Flexible and Real-Time Stream Processing with Apache FlinkDataWorks Summit
 
The Zen of DataOps – AWS Lake Formation and the Data Supply Chain Pipeline
The Zen of DataOps – AWS Lake Formation and the Data Supply Chain PipelineThe Zen of DataOps – AWS Lake Formation and the Data Supply Chain Pipeline
The Zen of DataOps – AWS Lake Formation and the Data Supply Chain PipelineAmazon Web Services
 
Disaster Recovery Options with AWS
Disaster Recovery Options with AWSDisaster Recovery Options with AWS
Disaster Recovery Options with AWSAmazon Web Services
 
Dynamically Scaling Data Streams across Multiple Kafka Clusters with Zero Fli...
Dynamically Scaling Data Streams across Multiple Kafka Clusters with Zero Fli...Dynamically Scaling Data Streams across Multiple Kafka Clusters with Zero Fli...
Dynamically Scaling Data Streams across Multiple Kafka Clusters with Zero Fli...Flink Forward
 
Deep Dive on Amazon EC2 Instances & Performance Optimization Best Practices (...
Deep Dive on Amazon EC2 Instances & Performance Optimization Best Practices (...Deep Dive on Amazon EC2 Instances & Performance Optimization Best Practices (...
Deep Dive on Amazon EC2 Instances & Performance Optimization Best Practices (...Amazon Web Services
 
Creating Maintainable Automated Acceptance Tests
Creating Maintainable Automated Acceptance TestsCreating Maintainable Automated Acceptance Tests
Creating Maintainable Automated Acceptance TestsJez Humble
 
(BDT404) Large-Scale ETL Data Flows w/AWS Data Pipeline & Dataduct
(BDT404) Large-Scale ETL Data Flows w/AWS Data Pipeline & Dataduct(BDT404) Large-Scale ETL Data Flows w/AWS Data Pipeline & Dataduct
(BDT404) Large-Scale ETL Data Flows w/AWS Data Pipeline & DataductAmazon Web Services
 
SaaS Reference Architectures: Review of Real-World Patterns & Strategies (GPS...
SaaS Reference Architectures: Review of Real-World Patterns & Strategies (GPS...SaaS Reference Architectures: Review of Real-World Patterns & Strategies (GPS...
SaaS Reference Architectures: Review of Real-World Patterns & Strategies (GPS...Amazon Web Services
 
Amazon Elasticsearch Service Deep Dive - AWS Online Tech Talks
Amazon Elasticsearch Service Deep Dive - AWS Online Tech TalksAmazon Elasticsearch Service Deep Dive - AWS Online Tech Talks
Amazon Elasticsearch Service Deep Dive - AWS Online Tech TalksAmazon Web Services
 

What's hot (20)

Deep Dive on Amazon EBS Elastic Volumes - March 2017 AWS Online Tech Talks
Deep Dive on Amazon EBS Elastic Volumes - March 2017 AWS Online Tech TalksDeep Dive on Amazon EBS Elastic Volumes - March 2017 AWS Online Tech Talks
Deep Dive on Amazon EBS Elastic Volumes - March 2017 AWS Online Tech Talks
 
ElastiCache & Redis
ElastiCache & RedisElastiCache & Redis
ElastiCache & Redis
 
Amazon Aurora
Amazon AuroraAmazon Aurora
Amazon Aurora
 
Introduction to elasticsearch
Introduction to elasticsearchIntroduction to elasticsearch
Introduction to elasticsearch
 
Executing a Large-Scale Migration to AWS
Executing a Large-Scale Migration to AWSExecuting a Large-Scale Migration to AWS
Executing a Large-Scale Migration to AWS
 
Introduction to Apache NiFi 1.11.4
Introduction to Apache NiFi 1.11.4Introduction to Apache NiFi 1.11.4
Introduction to Apache NiFi 1.11.4
 
Introduction to AWS Batch
Introduction to AWS BatchIntroduction to AWS Batch
Introduction to AWS Batch
 
클라우드 기반 AWS 데이터베이스 선택 옵션 - AWS Summit Seoul 2017
클라우드 기반 AWS 데이터베이스 선택 옵션 - AWS Summit Seoul 2017 클라우드 기반 AWS 데이터베이스 선택 옵션 - AWS Summit Seoul 2017
클라우드 기반 AWS 데이터베이스 선택 옵션 - AWS Summit Seoul 2017
 
Deep Dive on Amazon Redshift
Deep Dive on Amazon RedshiftDeep Dive on Amazon Redshift
Deep Dive on Amazon Redshift
 
게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016
게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016
게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016
 
클라우드 네이티브 데이터베이스 서비스로 Oracle RAC 전환 - 김지훈 :: AWS 클라우드 마이그레이션 온라인
클라우드 네이티브 데이터베이스 서비스로 Oracle RAC 전환 - 김지훈 :: AWS 클라우드 마이그레이션 온라인클라우드 네이티브 데이터베이스 서비스로 Oracle RAC 전환 - 김지훈 :: AWS 클라우드 마이그레이션 온라인
클라우드 네이티브 데이터베이스 서비스로 Oracle RAC 전환 - 김지훈 :: AWS 클라우드 마이그레이션 온라인
 
Flexible and Real-Time Stream Processing with Apache Flink
Flexible and Real-Time Stream Processing with Apache FlinkFlexible and Real-Time Stream Processing with Apache Flink
Flexible and Real-Time Stream Processing with Apache Flink
 
The Zen of DataOps – AWS Lake Formation and the Data Supply Chain Pipeline
The Zen of DataOps – AWS Lake Formation and the Data Supply Chain PipelineThe Zen of DataOps – AWS Lake Formation and the Data Supply Chain Pipeline
The Zen of DataOps – AWS Lake Formation and the Data Supply Chain Pipeline
 
Disaster Recovery Options with AWS
Disaster Recovery Options with AWSDisaster Recovery Options with AWS
Disaster Recovery Options with AWS
 
Dynamically Scaling Data Streams across Multiple Kafka Clusters with Zero Fli...
Dynamically Scaling Data Streams across Multiple Kafka Clusters with Zero Fli...Dynamically Scaling Data Streams across Multiple Kafka Clusters with Zero Fli...
Dynamically Scaling Data Streams across Multiple Kafka Clusters with Zero Fli...
 
Deep Dive on Amazon EC2 Instances & Performance Optimization Best Practices (...
Deep Dive on Amazon EC2 Instances & Performance Optimization Best Practices (...Deep Dive on Amazon EC2 Instances & Performance Optimization Best Practices (...
Deep Dive on Amazon EC2 Instances & Performance Optimization Best Practices (...
 
Creating Maintainable Automated Acceptance Tests
Creating Maintainable Automated Acceptance TestsCreating Maintainable Automated Acceptance Tests
Creating Maintainable Automated Acceptance Tests
 
(BDT404) Large-Scale ETL Data Flows w/AWS Data Pipeline & Dataduct
(BDT404) Large-Scale ETL Data Flows w/AWS Data Pipeline & Dataduct(BDT404) Large-Scale ETL Data Flows w/AWS Data Pipeline & Dataduct
(BDT404) Large-Scale ETL Data Flows w/AWS Data Pipeline & Dataduct
 
SaaS Reference Architectures: Review of Real-World Patterns & Strategies (GPS...
SaaS Reference Architectures: Review of Real-World Patterns & Strategies (GPS...SaaS Reference Architectures: Review of Real-World Patterns & Strategies (GPS...
SaaS Reference Architectures: Review of Real-World Patterns & Strategies (GPS...
 
Amazon Elasticsearch Service Deep Dive - AWS Online Tech Talks
Amazon Elasticsearch Service Deep Dive - AWS Online Tech TalksAmazon Elasticsearch Service Deep Dive - AWS Online Tech Talks
Amazon Elasticsearch Service Deep Dive - AWS Online Tech Talks
 

Similar to Continuous Delivery

Continuous delivery agile_2012
Continuous delivery agile_2012Continuous delivery agile_2012
Continuous delivery agile_2012drewz lin
 
Continuous delivery a happier, safer alternative to release trains
Continuous delivery   a happier, safer alternative to release trainsContinuous delivery   a happier, safer alternative to release trains
Continuous delivery a happier, safer alternative to release trainsThoughtworks
 
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
 
Social ROI and Value modeling
Social ROI and Value modeling Social ROI and Value modeling
Social ROI and Value modeling Peter H. Reiser
 
Cloud4all Architecture Overview
Cloud4all Architecture OverviewCloud4all Architecture Overview
Cloud4all Architecture Overviewicchp2012
 
The Software Debt Bubble: Is It About to Burst
The Software Debt Bubble: Is It About to BurstThe Software Debt Bubble: Is It About to Burst
The Software Debt Bubble: Is It About to BurstChris Sterling
 
PM Connect - Agile Workshop
PM Connect - Agile WorkshopPM Connect - Agile Workshop
PM Connect - Agile WorkshopMassInnov8
 
Architecture In An Agile World
Architecture In An Agile WorldArchitecture In An Agile World
Architecture In An Agile WorldJames Cooper
 
First build the right thing
First build the right thingFirst build the right thing
First build the right thingAgileOnTheBeach
 
Lean Startup Dojo: MVP
Lean Startup Dojo: MVPLean Startup Dojo: MVP
Lean Startup Dojo: MVPRich Collins
 
Applying the Lean Startup Model to the Enterprise
Applying the Lean Startup Model to the EnterpriseApplying the Lean Startup Model to the Enterprise
Applying the Lean Startup Model to the EnterpriseJez Humble
 
Managing Technical Debt
Managing Technical DebtManaging Technical Debt
Managing Technical Debtspullara
 
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
 
Craftsmanship - Technical Disciplines vs. Agile - Business Practises
Craftsmanship - Technical Disciplines vs. Agile - Business PractisesCraftsmanship - Technical Disciplines vs. Agile - Business Practises
Craftsmanship - Technical Disciplines vs. Agile - Business PractisesMatt Harasymczuk
 
Unlocked London - General Session
Unlocked London - General SessionUnlocked London - General Session
Unlocked London - General SessionWayne Walls
 
30 days or less: New Features to Production
30 days or less: New Features to Production30 days or less: New Features to Production
30 days or less: New Features to ProductionKarthik Gaekwad
 
Discovery delivery agiletour-xian
Discovery delivery agiletour-xianDiscovery delivery agiletour-xian
Discovery delivery agiletour-xianQiao Liang
 

Similar to Continuous Delivery (20)

Continuous delivery agile_2012
Continuous delivery agile_2012Continuous delivery agile_2012
Continuous delivery agile_2012
 
Continuous delivery a happier, safer alternative to release trains
Continuous delivery   a happier, safer alternative to release trainsContinuous delivery   a happier, safer alternative to release trains
Continuous delivery a happier, safer alternative to release trains
 
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
 
Social ROI and Value modeling
Social ROI and Value modeling Social ROI and Value modeling
Social ROI and Value modeling
 
Running a Lean Startup with AWS
Running a Lean Startup with AWSRunning a Lean Startup with AWS
Running a Lean Startup with AWS
 
Cloud4all Architecture Overview
Cloud4all Architecture OverviewCloud4all Architecture Overview
Cloud4all Architecture Overview
 
The Software Debt Bubble: Is It About to Burst
The Software Debt Bubble: Is It About to BurstThe Software Debt Bubble: Is It About to Burst
The Software Debt Bubble: Is It About to Burst
 
PM Connect - Agile Workshop
PM Connect - Agile WorkshopPM Connect - Agile Workshop
PM Connect - Agile Workshop
 
Architecture In An Agile World
Architecture In An Agile WorldArchitecture In An Agile World
Architecture In An Agile World
 
First build the right thing
First build the right thingFirst build the right thing
First build the right thing
 
Lean Startup Dojo: MVP
Lean Startup Dojo: MVPLean Startup Dojo: MVP
Lean Startup Dojo: MVP
 
Applying the Lean Startup Model to the Enterprise
Applying the Lean Startup Model to the EnterpriseApplying the Lean Startup Model to the Enterprise
Applying the Lean Startup Model to the Enterprise
 
Continuous Innovation
Continuous InnovationContinuous Innovation
Continuous Innovation
 
Getting to MVP on AWS
Getting to MVP on AWSGetting to MVP on AWS
Getting to MVP on AWS
 
Managing Technical Debt
Managing Technical DebtManaging Technical Debt
Managing Technical Debt
 
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"
 
Craftsmanship - Technical Disciplines vs. Agile - Business Practises
Craftsmanship - Technical Disciplines vs. Agile - Business PractisesCraftsmanship - Technical Disciplines vs. Agile - Business Practises
Craftsmanship - Technical Disciplines vs. Agile - Business Practises
 
Unlocked London - General Session
Unlocked London - General SessionUnlocked London - General Session
Unlocked London - General Session
 
30 days or less: New Features to Production
30 days or less: New Features to Production30 days or less: New Features to Production
30 days or less: New Features to Production
 
Discovery delivery agiletour-xian
Discovery delivery agiletour-xianDiscovery delivery agiletour-xian
Discovery delivery agiletour-xian
 

More from Jez Humble

My slides have moved
My slides have movedMy slides have moved
My slides have movedJez Humble
 
On Damore's Manifestbro
On Damore's ManifestbroOn Damore's Manifestbro
On Damore's ManifestbroJez Humble
 
Continuous Delivery Sounds Great but it Won't Work Here
Continuous Delivery Sounds Great but it Won't Work HereContinuous Delivery Sounds Great but it Won't Work Here
Continuous Delivery Sounds Great but it Won't Work HereJez Humble
 
Why Scaling Agile Doesn't Work (and What to Do About It)
Why Scaling Agile Doesn't Work (and What to Do About It)Why Scaling Agile Doesn't Work (and What to Do About It)
Why Scaling Agile Doesn't Work (and What to Do About It)Jez Humble
 
Devops Scorecard
Devops ScorecardDevops Scorecard
Devops ScorecardJez Humble
 
The Realist-Idealist Debate in Buddhist Philosophy
The Realist-Idealist Debate in Buddhist PhilosophyThe Realist-Idealist Debate in Buddhist Philosophy
The Realist-Idealist Debate in Buddhist PhilosophyJez Humble
 
The Development of Rhythmic Organisation in Indian Classical Music
The Development of Rhythmic Organisation in Indian Classical MusicThe Development of Rhythmic Organisation in Indian Classical Music
The Development of Rhythmic Organisation in Indian Classical MusicJez Humble
 

More from Jez Humble (7)

My slides have moved
My slides have movedMy slides have moved
My slides have moved
 
On Damore's Manifestbro
On Damore's ManifestbroOn Damore's Manifestbro
On Damore's Manifestbro
 
Continuous Delivery Sounds Great but it Won't Work Here
Continuous Delivery Sounds Great but it Won't Work HereContinuous Delivery Sounds Great but it Won't Work Here
Continuous Delivery Sounds Great but it Won't Work Here
 
Why Scaling Agile Doesn't Work (and What to Do About It)
Why Scaling Agile Doesn't Work (and What to Do About It)Why Scaling Agile Doesn't Work (and What to Do About It)
Why Scaling Agile Doesn't Work (and What to Do About It)
 
Devops Scorecard
Devops ScorecardDevops Scorecard
Devops Scorecard
 
The Realist-Idealist Debate in Buddhist Philosophy
The Realist-Idealist Debate in Buddhist PhilosophyThe Realist-Idealist Debate in Buddhist Philosophy
The Realist-Idealist Debate in Buddhist Philosophy
 
The Development of Rhythmic Organisation in Indian Classical Music
The Development of Rhythmic Organisation in Indian Classical MusicThe Development of Rhythmic Organisation in Indian Classical Music
The Development of Rhythmic Organisation in Indian Classical Music
 

Recently uploaded

Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
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
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
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
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 

Recently uploaded (20)

Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
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
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
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
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 

Continuous Delivery

  • 1. continuous delivery @jezhumble Berlin, 4 october 2012 http://thoughtworks-studios.com/ Tuesday, October 9, 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" Tuesday, October 9, 12
  • 3. social disrupting traditional businesses http://code.flickr.com/ Tuesday, October 9, 12
  • 4. releasing frequently 1. build the right thing Customer development Agile product development Eric Ries, “The Lean Startup” http://bit.ly/8ZoX5F Tuesday, October 9, 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 Tuesday, October 9, 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 Tuesday, October 9, 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. Tuesday, October 9, 12
  • 8. releasing frequently 1. build the right thing 2. reduce risk of release John Allspaw: “Ops Metametrics” http://slidesha.re/dsSZIr Tuesday, October 9, 12
  • 10. optimize for mtrs MTBF MTRS John Allspaw: “Building Resilience in Web Development and Operations” http://www.usievents.com/en/conferences/8-paris-usi-2011/sessions/968-john-allspaw Tuesday, October 9, 12
  • 11. releasing frequently 1. build the right thing 2. reduce risk of release 3. real project progress Tuesday, October 9, 12
  • 12. agile manifesto Our highest priority is to satisfy the customer through early and continuous delivery of valuable software Tuesday, October 9, 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 Tuesday, October 9, 12
  • 14. continuous delivery Software always production ready Releases tied to business needs, not operational constraints Tuesday, October 9, 12
  • 15. continuous delivery automation patterns and practices collaboration Tuesday, October 9, 12
  • 16. ingredients configuration management continuous integration automated testing Tuesday, October 9, 12
  • 17. Local Develop Workstation Mainline Server Build pull Build Build ✔ Done! push Tuesday, October 9, 12
  • 18. Local Develop Workstation Everyone Commits Mainline Server Build To the pull Mainline Build Every Day Build ✔ Done! push Tuesday, October 9, 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 Tuesday, October 9, 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 Tuesday, October 9, 12
  • 21. deployment pipeline an automated implementation of your system’s build, deploy, test, release process visibility feedback control Tuesday, October 9, 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 Tuesday, October 9, 12
  • 25. reducing release risk automate provisioning and deployment ensure devs, testers and ops collaborate throughout Tuesday, October 9, 12
  • 26. reducing release risk devops incrementalism decoupling deployment and release Tuesday, October 9, 12
  • 27. devops culture automation measurement sharing Tuesday, October 9, 12
  • 28. feature toggles blue-green deployments canary releases low risk releases are incremental dark launching production immune system Tuesday, October 9, 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 Tuesday, October 9, 12
  • 30. blue-green deployments Tuesday, October 9, 12
  • 31. router web app DB server server server Tuesday, October 9, 12
  • 32. v1.1 v1.1 v1.1 router web app DB server server server Tuesday, October 9, 12
  • 33. v1.1 v1.1 v1.1 router v1.2 v1.2 v1.2 web app DB server server server Tuesday, October 9, 12
  • 34. v1.1 v1.1 v1.1 router v1.2 v1.2 v1.2 web app DB server server server Tuesday, October 9, 12
  • 38. canary releasing Reduce risk of release Multi-variant testing Performance testing Tuesday, October 9, 12
  • 39. immune system what if someone replaced your “buy” button with spacer.gif? T cells http://www.flickr.com/photos/gehealthcare/3326186490/ Tuesday, October 9, 12
  • 40. release != deployment Tuesday, October 9, 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 Tuesday, October 9, 12
  • 45. enterprise governance risk management SOX, ITIL, COBIT segregation of duties change management auditing and compliance Tuesday, October 9, 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) Tuesday, October 9, 12
  • 47. questions @jezhumble | jez@thoughtworks.com http://continuousdelivery.com/ ThoughtWorks is hiring! http://jobs.thoughtworks.com/ Australia | Brazil | Canada | China Germany | India | Singapore | South Africa Uganda | UK | USA © 2012 ThoughtWorks, Inc. http://thoughtworks-studios.com/ Tuesday, October 9, 12