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 opera...
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 Startu...
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...
scientific method
Ideas

create hypothesis
deliver minimum
viable product
get feedback
(repeat)
Tuesday, October 9, 12

Le...
ask this question

“How long would it take your
organization to deploy a change that
involved just one single line of code...
releasing frequently

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

John Allspaw: “Ops Metametrics” http://slidesha....
optimize for mtrs

Tuesday, October 9, 12
optimize for mtrs

MTBF

MTRS

John Allspaw: “Building Resilience in Web Development and Operations”
http://www.usievents....
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 softwar...
production-ready software

Fast, automated feedback on
the production readiness of
your applications every time
there is a...
continuous delivery

Software always production ready
Releases tied to business needs, not
operational constraints
Tuesday...
continuous delivery
automation

patterns and practices

collaboration

Tuesday, October 9, 12
ingredients
configuration management

continuous integration

automated testing

Tuesday, October 9, 12
Develop

Local
Workstation
Mainline Server

Build

pull

Build

Build
push

Tuesday, October 9, 12

✔
Done!
Develop

Local
Workstation

Mainline Server
Everyone Commits
Build

To the pull
Mainline

Build

Every Day
Build
push

Tue...
build quality in
“Cease dependence on
mass inspection to
achieve quality.
Improve the process
and build quality into
the p...
different kinds of testing

Business facing

Functional acceptance
tests

Showcases
Usability testing
Exploratory testing

...
deployment pipeline
an automated implementation of your
system’s build, deploy, test, release process
visibility
feedback
...
deployment pipeline
Delivery team

Version control

Check in

Build & unit
tests

Automated
acceptance tests

User accepta...
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,...
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...
DEPENDENT SERVICE

1.0

1.1

Database

Abstraction layer

Abstraction layer

STATIC CONTENT
/static/1.1

APPLICATION

/sta...
blue-green
deployments

Tuesday, October 9, 12
router

web
server
Tuesday, October 9, 12

app
server

DB
server
v1.1

v1.1

v1.1

web
server

app
server

DB
server

router

Tuesday, October 9, 12
v1.1

Tuesday, October 9, 12

v1.1

v1.2

v1.2

v1.2

web
server

router

v1.1

app
server

DB
server
v1.1

Tuesday, October 9, 12

v1.1

v1.2

v1.2

v1.2

web
server

router

v1.1

app
server

DB
server
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/gehealthca...
release !=
deployment

Tuesday, October 9, 12
feature toggles
Config File
[featureToggles]
wobblyFoobars: true
flightyForkHandles: false

some.php
<?if ($wobblyFoobars)...
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
Tue...
people are the key
Get everyone together at the beginning
Keep meeting
Make it easy for everyone to see what’s
happening
C...
questions
@jezhumble | jez@thoughtworks.com
http://continuousdelivery.com/

ThoughtWorks is hiring!
http://jobs.thoughtwor...
Upcoming SlideShare
Loading in...5
×

Continuous delivery a happier, safer alternative to release trains

2,198
-1

Published on

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,198
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
103
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Continuous delivery a happier, safer alternative to release trains

  1. 1. continuous delivery @jezhumble Berlin, 4 october 2012 http://thoughtworks-studios.com/ Tuesday, October 9, 12
  2. 2. agile 101 "Agile" team Analysis + Design Centralized QA IT Operations Development Integration + QA Release and operation Testing + Showcase Customer Iteration Tuesday, October 9, 12 0 1 2 3 4 The "last mile"
  3. 3. social disrupting traditional businesses http://code.flickr.com/ Tuesday, October 9, 12
  4. 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. 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. 6. scientific method Ideas create hypothesis deliver minimum viable product get feedback (repeat) Tuesday, October 9, 12 Learn Build Code Data Measure Eric Ries, “The Lean Startup” http://bit.ly/8ZoX5F
  7. 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. 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
  9. 9. optimize for mtrs Tuesday, October 9, 12
  10. 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. 11. releasing frequently 1. build the right thing 2. reduce risk of release 3. real project progress Tuesday, October 9, 12
  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. 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. 14. continuous delivery Software always production ready Releases tied to business needs, not operational constraints Tuesday, October 9, 12
  15. 15. continuous delivery automation patterns and practices collaboration Tuesday, October 9, 12
  16. 16. ingredients configuration management continuous integration automated testing Tuesday, October 9, 12
  17. 17. Develop Local Workstation Mainline Server Build pull Build Build push Tuesday, October 9, 12 ✔ Done!
  18. 18. Develop Local Workstation Mainline Server Everyone Commits Build To the pull Mainline Build Every Day Build push Tuesday, October 9, 12 ✔ Done!
  19. 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. 20. different kinds of testing Business facing Functional acceptance tests Showcases Usability testing Exploratory testing Unit tests Integration tests System tests Non-functional acceptance tests (performance, scaling, ...) AUTOMATED Support programming MANUAL MANUAL / AUTOMATED Critique project AUTOMATED Technology facing Diagram invented by Brian Marick Tuesday, October 9, 12
  21. 21. deployment pipeline an automated implementation of your system’s build, deploy, test, release process visibility feedback control Tuesday, October 9, 12
  22. 22. deployment pipeline Delivery team Version control Check in Build & unit tests Automated acceptance tests User acceptance tests Trigger Feedback Check in Trigger Trigger Feedback Feedback Check in Trigger Feedback Trigger Feedback Approval Feedback Tuesday, October 9, 12 Approval Release
  23. 23. deployment pipeline Tuesday, October 9, 12
  24. 24. deployment pipeline Tuesday, October 9, 12
  25. 25. reducing release risk automate provisioning and deployment ensure devs, testers and ops collaborate throughout Tuesday, October 9, 12
  26. 26. reducing release risk devops incrementalism decoupling deployment and release Tuesday, October 9, 12
  27. 27. devops culture automation measurement sharing Tuesday, October 9, 12
  28. 28. feature toggles blue-green deployments canary releases low risk releases are incremental dark launching production immune system Tuesday, October 9, 12
  29. 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. 30. blue-green deployments Tuesday, October 9, 12
  31. 31. router web server Tuesday, October 9, 12 app server DB server
  32. 32. v1.1 v1.1 v1.1 web server app server DB server router Tuesday, October 9, 12
  33. 33. v1.1 Tuesday, October 9, 12 v1.1 v1.2 v1.2 v1.2 web server router v1.1 app server DB server
  34. 34. v1.1 Tuesday, October 9, 12 v1.1 v1.2 v1.2 v1.2 web server router v1.1 app server DB server
  35. 35. Canary Releasing Tuesday, October 9, 12
  36. 36. Tuesday, October 9, 12
  37. 37. Tuesday, October 9, 12
  38. 38. canary releasing Reduce risk of release Multi-variant testing Performance testing Tuesday, October 9, 12
  39. 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. 40. release != deployment Tuesday, October 9, 12
  41. 41. feature toggles Config File [featureToggles] wobblyFoobars: true flightyForkHandles: false some.php <?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
  42. 42. Dark Launching Tuesday, October 9, 12
  43. 43. Tuesday, October 9, 12
  44. 44. Tuesday, October 9, 12
  45. 45. enterprise governance risk management SOX, ITIL, COBIT segregation of duties change management auditing and compliance Tuesday, October 9, 12
  46. 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. 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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×