Top Banner
http://thoughtworks-studios.com / Continuous Delivery Martin Fowler, Jez Humble YOW! Brisbane, 5 December 2011 Wednesday, December 7, 11
38

Continuous Delivery - Agile Alliance · Continuous Delivery Martin Fowler, Jez Humble YOW! Brisbane, 5 December 2011 ... Continuous improvement (kaizen) people are the key Wednesday,

May 07, 2018

Download

Documents

vuongthu
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Continuous Delivery - Agile Alliance · Continuous Delivery Martin Fowler, Jez Humble YOW! Brisbane, 5 December 2011 ... Continuous improvement (kaizen) people are the key Wednesday,

http://thoughtworks-studios.com/

Continuous DeliveryMartin Fowler, Jez HumbleYOW! Brisbane, 5 December 2011

Wednesday, December 7, 11

Page 2: Continuous Delivery - Agile Alliance · Continuous Delivery Martin Fowler, Jez Humble YOW! Brisbane, 5 December 2011 ... Continuous improvement (kaizen) people are the key Wednesday,

agile 101

Iteration 0 1 2 3 4

Analysis + Design

Development

Testing + Showcase

Integration + QA Release and operation

Customer

Centralized QA IT Operations

"Agile" team

The "last mile"

Wednesday, December 7, 11

Page 3: Continuous Delivery - Agile Alliance · Continuous Delivery Martin Fowler, Jez Humble YOW! Brisbane, 5 December 2011 ... Continuous improvement (kaizen) people are the key Wednesday,

web 2.0

disrupting traditional businesses

http://code.flickr.com/

Wednesday, December 7, 11

Page 4: Continuous Delivery - Agile Alliance · Continuous Delivery Martin Fowler, Jez Humble YOW! Brisbane, 5 December 2011 ... Continuous improvement (kaizen) people are the key Wednesday,

releasing frequently

1. build the right thingCustomer

developent

Agile productdevelopment

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

Wednesday, December 7, 11

Page 5: Continuous Delivery - Agile Alliance · Continuous Delivery Martin Fowler, Jez Humble YOW! Brisbane, 5 December 2011 ... Continuous improvement (kaizen) people are the key Wednesday,

innovateYou 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

Wednesday, December 7, 11

Page 6: Continuous Delivery - Agile Alliance · Continuous Delivery Martin Fowler, Jez Humble YOW! Brisbane, 5 December 2011 ... Continuous improvement (kaizen) people are the key Wednesday,

scienti!c method

create hypothesis

deliver minimumviable product

get feedback

(repeat)

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

Ideas

CodeData

Build

Measure

Learn

Wednesday, December 7, 11

Page 7: Continuous Delivery - Agile Alliance · Continuous Delivery Martin Fowler, Jez Humble YOW! Brisbane, 5 December 2011 ... Continuous improvement (kaizen) people are the key Wednesday,

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.

Wednesday, December 7, 11

Page 8: Continuous Delivery - Agile Alliance · Continuous Delivery Martin Fowler, Jez Humble YOW! Brisbane, 5 December 2011 ... Continuous improvement (kaizen) people are the key Wednesday,

releasing frequently

1. build the right thing2. reduce risk of release

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

Wednesday, December 7, 11

Page 9: Continuous Delivery - Agile Alliance · Continuous Delivery Martin Fowler, Jez Humble YOW! Brisbane, 5 December 2011 ... Continuous improvement (kaizen) people are the key Wednesday,

releasing frequently

1. build the right thing2. reduce risk of release3. real project progress

Wednesday, December 7, 11

Page 10: Continuous Delivery - Agile Alliance · Continuous Delivery Martin Fowler, Jez Humble YOW! Brisbane, 5 December 2011 ... Continuous improvement (kaizen) people are the key Wednesday,

agile manifesto

Our highest priority is to satisfy the customer through early and continuous delivery of valuable so"ware

Wednesday, December 7, 11

Page 11: Continuous Delivery - Agile Alliance · Continuous Delivery Martin Fowler, Jez Humble YOW! Brisbane, 5 December 2011 ... Continuous improvement (kaizen) people are the key Wednesday,

production-ready so"ware

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

Wednesday, December 7, 11

Page 12: Continuous Delivery - Agile Alliance · Continuous Delivery Martin Fowler, Jez Humble YOW! Brisbane, 5 December 2011 ... Continuous improvement (kaizen) people are the key Wednesday,

So"ware always production ready

Releases tied to business needs, not operational constraints

continuous delivery

Customer

Delivery teamConstant flow of new features into production

Wednesday, December 7, 11

Page 13: Continuous Delivery - Agile Alliance · Continuous Delivery Martin Fowler, Jez Humble YOW! Brisbane, 5 December 2011 ... Continuous improvement (kaizen) people are the key Wednesday,

automation

patterns and practices

collaboration

continuous delivery

Wednesday, December 7, 11

Page 14: Continuous Delivery - Agile Alliance · Continuous Delivery Martin Fowler, Jez Humble YOW! Brisbane, 5 December 2011 ... Continuous improvement (kaizen) people are the key Wednesday,

con!guration management

continuous integration

automated testing

ingredients

Wednesday, December 7, 11

Page 15: Continuous Delivery - Agile Alliance · Continuous Delivery Martin Fowler, Jez Humble YOW! Brisbane, 5 December 2011 ... Continuous improvement (kaizen) people are the key Wednesday,

Mainline Server

Develop

Build

Build

pull

Local Workstation

Buildpush

✔Done!

Wednesday, December 7, 11

Page 17: Continuous Delivery - Agile Alliance · Continuous Delivery Martin Fowler, Jez Humble YOW! Brisbane, 5 December 2011 ... Continuous improvement (kaizen) people are the key Wednesday,

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

W. Edwards Deming

Wednesday, December 7, 11

Page 18: Continuous Delivery - Agile Alliance · Continuous Delivery Martin Fowler, Jez Humble YOW! Brisbane, 5 December 2011 ... Continuous improvement (kaizen) people are the key Wednesday,

di#erent kinds of testing

Functional acceptance tests

ShowcasesUsability testing

Exploratory testing

Unit testsIntegration tests

System tests

Non-functional acceptance tests

(performance, scaling, ...)

Business facing

Technology facing

Critiq

ue p

roje

ct

Support

pro

gra

mm

ing

AUTOMATED

AUTOMATED

MANUAL

MANUAL / AUTOMATED

Diagram invented by Brian Marick

Wednesday, December 7, 11

Page 19: Continuous Delivery - Agile Alliance · Continuous Delivery Martin Fowler, Jez Humble YOW! Brisbane, 5 December 2011 ... Continuous improvement (kaizen) people are the key Wednesday,

visibility

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

control

feedback

deployment pipeline

Wednesday, December 7, 11

Page 20: Continuous Delivery - Agile Alliance · Continuous Delivery Martin Fowler, Jez Humble YOW! Brisbane, 5 December 2011 ... Continuous improvement (kaizen) people are the key Wednesday,

deployment pipelineDelivery team Version control Build & unit

testsAutomated

acceptance testsUser acceptance

testsRelease

Check in

Feedback

Trigger

Check in

Feedback

Trigger

Trigger

Check inTrigger

Trigger

ApprovalApproval

Feedback

Feedback

FeedbackFeedback

Wednesday, December 7, 11

Page 21: Continuous Delivery - Agile Alliance · Continuous Delivery Martin Fowler, Jez Humble YOW! Brisbane, 5 December 2011 ... Continuous improvement (kaizen) people are the key Wednesday,

deployment pipeline

Wednesday, December 7, 11

Page 22: Continuous Delivery - Agile Alliance · Continuous Delivery Martin Fowler, Jez Humble YOW! Brisbane, 5 December 2011 ... Continuous improvement (kaizen) people are the key Wednesday,

deployment pipeline

Wednesday, December 7, 11

Page 23: Continuous Delivery - Agile Alliance · Continuous Delivery Martin Fowler, Jez Humble YOW! Brisbane, 5 December 2011 ... Continuous improvement (kaizen) people are the key Wednesday,

incrementalism

devops

decoupling deployment and release

reducing release risk

Wednesday, December 7, 11

Page 24: Continuous Delivery - Agile Alliance · Continuous Delivery Martin Fowler, Jez Humble YOW! Brisbane, 5 December 2011 ... Continuous improvement (kaizen) people are the key Wednesday,

cultureautomation

measurementsharing

devops

Wednesday, December 7, 11

Page 25: Continuous Delivery - Agile Alliance · Continuous Delivery Martin Fowler, Jez Humble YOW! Brisbane, 5 December 2011 ... Continuous improvement (kaizen) people are the key Wednesday,

low risk releases are incremental

blue-green deployments

canary releases

dark launching

production immune system

feature toggles

Wednesday, December 7, 11

Page 26: Continuous Delivery - Agile Alliance · Continuous Delivery Martin Fowler, Jez Humble YOW! Brisbane, 5 December 2011 ... Continuous improvement (kaizen) people are the key Wednesday,

STATIC CONTENT

/static/1.1

/static/1.0

DEPENDENT SERVICE

1.0 1.1

Abstraction layer Abstraction layer

APPLICATION

Database

Router /Load balancer

Interwebs

Wednesday, December 7, 11

Page 27: Continuous Delivery - Agile Alliance · Continuous Delivery Martin Fowler, Jez Humble YOW! Brisbane, 5 December 2011 ... Continuous improvement (kaizen) people are the key Wednesday,

blue-green deployments

Wednesday, December 7, 11

Page 28: Continuous Delivery - Agile Alliance · Continuous Delivery Martin Fowler, Jez Humble YOW! Brisbane, 5 December 2011 ... Continuous improvement (kaizen) people are the key Wednesday,

router

web server

app server

DB server

Wednesday, December 7, 11

Page 29: Continuous Delivery - Agile Alliance · Continuous Delivery Martin Fowler, Jez Humble YOW! Brisbane, 5 December 2011 ... Continuous improvement (kaizen) people are the key Wednesday,

router

v1.1 v1.1 v1.1

web server

app server

DB server

Wednesday, December 7, 11

Page 30: Continuous Delivery - Agile Alliance · Continuous Delivery Martin Fowler, Jez Humble YOW! Brisbane, 5 December 2011 ... Continuous improvement (kaizen) people are the key Wednesday,

router

v1.1 v1.1 v1.1

web server

app server

DB server

v1.2 v1.2 v1.2

Wednesday, December 7, 11

Page 31: Continuous Delivery - Agile Alliance · Continuous Delivery Martin Fowler, Jez Humble YOW! Brisbane, 5 December 2011 ... Continuous improvement (kaizen) people are the key Wednesday,

router

v1.1 v1.1 v1.1

web server

app server

DB server

v1.2 v1.2 v1.2

Wednesday, December 7, 11

Page 32: Continuous Delivery - Agile Alliance · Continuous Delivery Martin Fowler, Jez Humble YOW! Brisbane, 5 December 2011 ... Continuous improvement (kaizen) people are the key Wednesday,

release != deployment

Wednesday, December 7, 11

Page 33: Continuous Delivery - Agile Alliance · Continuous Delivery Martin Fowler, Jez Humble YOW! Brisbane, 5 December 2011 ... Continuous improvement (kaizen) people are the key Wednesday,

feature toggles

[featureToggles]wobblyFoobars: trueflightyForkHandles: false

Config File

<?if ($wobblyFoobars) {?> ... various UI elements<?}?>

some.php

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

other.php

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

Wednesday, December 7, 11

Page 34: Continuous Delivery - Agile Alliance · Continuous Delivery Martin Fowler, Jez Humble YOW! Brisbane, 5 December 2011 ... Continuous improvement (kaizen) people are the key Wednesday,

Dark Launching

Wednesday, December 7, 11

Page 35: Continuous Delivery - Agile Alliance · Continuous Delivery Martin Fowler, Jez Humble YOW! Brisbane, 5 December 2011 ... Continuous improvement (kaizen) people are the key Wednesday,

Wednesday, December 7, 11

Page 36: Continuous Delivery - Agile Alliance · Continuous Delivery Martin Fowler, Jez Humble YOW! Brisbane, 5 December 2011 ... Continuous improvement (kaizen) people are the key Wednesday,

Wednesday, December 7, 11

Page 37: Continuous Delivery - Agile Alliance · Continuous Delivery Martin Fowler, Jez Humble YOW! Brisbane, 5 December 2011 ... Continuous improvement (kaizen) people are the key Wednesday,

Make it easy for everyone to see what’s happening

Get everyone together at the beginning

Keep meeting

Continuous improvement (kaizen)

people are the key

Wednesday, December 7, 11