Continuous Delivery Jez Humble, ThoughtWorks Studios @jezhumble - - PowerPoint PPT Presentation

continuous delivery
SMART_READER_LITE
LIVE PREVIEW

Continuous Delivery Jez Humble, ThoughtWorks Studios @jezhumble - - PowerPoint PPT Presentation

Continuous Delivery Jez Humble, ThoughtWorks Studios @jezhumble #continuousdelivery JAOO 2010, rhus Agile 101 "Agile" team Centralized QA IT Operations Analysis + Design Development Integration + QA Release and operation


slide-1
SLIDE 1

Continuous Delivery

Jez Humble, ThoughtWorks Studios @jezhumble #continuousdelivery JAOO 2010, Århus

slide-2
SLIDE 2

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"

slide-3
SLIDE 3

web 2.0

disrupting traditional businesses

http://code.flickr.com/

slide-4
SLIDE 4

releasing frequently

feedback from users

Customer developent Agile product development

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

slide-5
SLIDE 5

releasing frequently

feedback from users reduce risk of release

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

slide-6
SLIDE 6

releasing frequently

feedback from users reduce risk of release real project progress

slide-7
SLIDE 7

agile manifesto

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

slide-8
SLIDE 8

production-ready software

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

slide-9
SLIDE 9

Software always production ready Releases tied to business needs, not

  • perational constraints

continuous delivery

Customer Delivery team Constant flow of new features into production

slide-10
SLIDE 10

value stream mapping

Product

  • pportunity

assessment Product discovery Development Final testing and approval Release Product planning and estimation Elapsed time Value-added time 3 days 1 week 10 days 7 weeks 1 week 2 hours 1 week 10 days 3 days 5 days 2 days

slide-11
SLIDE 11

deployment pipeline

Delivery team Version control Build & unit tests Automated acceptance tests User acceptance tests Release Check in Feedback Trigger Check in Feedback Trigger Trigger Check in Trigger Trigger Approval Approval Feedback Feedback Feedback Feedback

slide-12
SLIDE 12

deployment pipeline

slide-13
SLIDE 13

deployment pipeline

slide-14
SLIDE 14

principles

  • create a repeatable, reliable process for releasing software
  • automate almost everything
  • keep everything in version control
  • if it hurts, do it more often, and bring the pain forward
  • build quality in
  • done means released
  • everybody is responsible for delivery
  • continuous improvement
slide-15
SLIDE 15

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?”

  • What gets in the way of getting software out of the door?

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

slide-16
SLIDE 16

smoke test your deployments

  • nly build your binaries once

deploy the same way to every environment if anything fails, stop the line keep your environments similar

practices

slide-17
SLIDE 17

everybody checks in to mainline use branch by abstraction for architectural change use feature bits to switch off incomplete features

continuous integration

P1 P2 G2 G3 G1 G4 P3 P4 P5 G5 G6 B1 B2 G1 G1 P1 P1 B1 P2 B1 P1-2 G2 G2 P3 G2 P3 B2 P4 B2 G3 P3 G3 G3 P4 P4 P5 P4-5 G4 G4 G5 G6 P2 Professor Plum Reverend Green Mainline

Diagram invented by Martin Fowler

slide-18
SLIDE 18

different kinds of testing

Functional acceptance tests Showcases Usability testing Exploratory testing Unit tests Integration tests System tests Non-functional acceptance tests (performance, scaling, ...) Business facing Technology facing Critique project Support programming

AUTOMATED AUTOMATED MANUAL MANUAL / AUTOMATED

Diagram invented by Brian Marick

slide-19
SLIDE 19

canary releasing

slide-20
SLIDE 20

data migration

slide-21
SLIDE 21

Auditing - see who does what Visibility and control over locking down Compliance - automation over documentation Make it easy to remediate outages

  • bjections
slide-22
SLIDE 22

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

slide-23
SLIDE 23

http://continuousdelivery.com/ http://studios.thoughtworks.com/go http://thoughtworks.com/

thank you!