continuous delivery in practice

65
Continuous Delivery In Practice

Upload: patforna

Post on 13-Apr-2017

139 views

Category:

Software


1 download

TRANSCRIPT

Page 1: Continuous Delivery in Practice

Continuous DeliveryIn Practice

Page 2: Continuous Delivery in Practice

Patric Fornasier

Marc Hofer

Software Engineer ThoughtWorks・Springer・Yelp・Swisscom ♥ people and building stuff

Software Engineer Zühlke ・ThoughtWorks・effective Agile

♥ to learn from mistakes

Page 3: Continuous Delivery in Practice

Agendawhy? what? how?

Page 4: Continuous Delivery in Practice

Why?

Page 5: Continuous Delivery in Practice

STATE of DevOps report

Page 6: Continuous Delivery in Practice

Higher IT performance

60x failures 168x recovery

30X deploys 200x lead times

Page 7: Continuous Delivery in Practice

Higher organisational performance2x profitability

market share productivity

Page 8: Continuous Delivery in Practice

Higher throughput & stability11.6 secs

amazon - may 2011

Page 9: Continuous Delivery in Practice

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

‒ Agile Manifesto

Page 10: Continuous Delivery in Practice

time

planspec

designcode

testdeploy

iteration 1 iteration 2iteration ...

Page 11: Continuous Delivery in Practice

iteration / sprint

idea

Page 12: Continuous Delivery in Practice

time

fall

planspec

testdeploy

SCRUM

ScrumWater

Page 13: Continuous Delivery in Practice

When I come in one day and tell you the project will end in one week, you have to be ready to package up and deliver what you’ve got as the final product.

‒ Tom DeMarco

IEEE Software, 2009

Page 14: Continuous Delivery in Practice
Page 15: Continuous Delivery in Practice

IDEAS

CODEDATA

learn build

measure

Page 16: Continuous Delivery in Practice

ReduceRISK

Page 17: Continuous Delivery in Practice

chan

ge

timech

ange

time

big change= big risk

small change= small risk

Page 18: Continuous Delivery in Practice

Mean Time To Recover168x

Page 19: Continuous Delivery in Practice

TRACK real

PROGRESS

Page 20: Continuous Delivery in Practice

What is real progress?

Page 21: Continuous Delivery in Practice

WHAt?

Page 22: Continuous Delivery in Practice

PracticesAutomation

Version ControlContinuous Integration

Page 23: Continuous Delivery in Practice

Deployment Pipeline

dev to release

Page 24: Continuous Delivery in Practice

Mindsetlean agile

devOps

Page 25: Continuous Delivery in Practice

HOw?

Page 26: Continuous Delivery in Practice

Value Stream Mapping

Page 27: Continuous Delivery in Practice

PROCESS A

PROCESS B

PROCESS C

PROCESS D

supplier customer

information flows

material flows

Page 28: Continuous Delivery in Practice

PROCESS A DEV RELEASE PROCESS

D

supplier customer

information flows

material flows

continuous deluvery

Page 29: Continuous Delivery in Practice

How long would it take your organization to deploy a change that involved just one single line of code [...] on a repeatable, reliable basis?

‒ Mary and Tom Poppendieck

Implementing Lean Software Development, 2006

Page 30: Continuous Delivery in Practice

Deployment Pipeline

Page 31: Continuous Delivery in Practice

Build

commit

Acc.Tests Staging Prod

automaticpromotion gated

verify

store

time

Page 32: Continuous Delivery in Practice
Page 33: Continuous Delivery in Practice
Page 34: Continuous Delivery in Practice

time

Build Acc.Tests

Staging Prod

component X

Build Acc.Tests

component YSys.

Tests

Page 35: Continuous Delivery in Practice
Page 36: Continuous Delivery in Practice

http://arojgeorge.ghost.io/

Page 37: Continuous Delivery in Practice

time

Build

Acc.Tests: n

Staging ProdCDCTests

Sys.Tests

Acc.Tests: 1

PerfTests

Page 38: Continuous Delivery in Practice

70,000 tests 350 runs 700 days

3,000 concurrent tests 200 machines1.5M docker containers

Page 39: Continuous Delivery in Practice

time

Build Acc.Tests

Staging Prod

Build Acc.Tests

Staging Prod

Build Acc.Tests

Staging Prod

Build Acc.Tests

Staging Prod

Build Acc.Tests

Staging Prod#5

#4

#3

#2

#1

Page 40: Continuous Delivery in Practice

https://medium.com/continuous-delivery/architecting-for-continuous-delivery-77890e139ef6

Page 41: Continuous Delivery in Practice

VERSIONCONTROL

TEST

SYSTEM CONFIG

build scripts

APP CONFIGTOOLSgit

HG...

DB SCRIPTSCODE

DEPLOYMENT SCRIPTS

DEPS

INFRA CONFIG

DOCS

IDE CONFIG

ENCRYPTED (!!)SENSITIVE DATA

Page 42: Continuous Delivery in Practice

Continuous Integration

...is more often than you think.

Page 43: Continuous Delivery in Practice

develop

build

build

pull

push

time

Page 44: Continuous Delivery in Practice

time

commit

pull

build

Page 45: Continuous Delivery in Practice

build

pull

develop

build

push

pull

build

commit

Page 46: Continuous Delivery in Practice

build

pull

develop

build

push

pull

build

commit

Page 47: Continuous Delivery in Practice

BUILD Automation

FAST

GATE TO COmmit

AGREED W/TEAM

FEEDBACK

TOOLSMAKEBAZEL

GRADLERAKE ...

VERSION CONTROLLED

COMMANDLINE

SAME ON CI

COMPILE

TESTS

PACKAGE

CHECKS

...

Page 48: Continuous Delivery in Practice

test automation

Page 49: Continuous Delivery in Practice

find bugs prevent bugs

MANUAL TESTS

AUTOMATIONSUITES

UNIT

# tests# testscon

fiden

ce

FUNCTIONAL

SYS

INTEGRATION

UNIT

confid

ence

Page 50: Continuous Delivery in Practice

time

Unittests

inttests

acc.tests

trigger

feedback

Page 51: Continuous Delivery in Practice
Page 52: Continuous Delivery in Practice
Page 53: Continuous Delivery in Practice

infra & environment automation

Page 54: Continuous Delivery in Practice

Deployment automation

Page 55: Continuous Delivery in Practice

1) install and boot new version 2) run health checks 3) route traffic 4) monitor 5) repeat

App B

App C

App A

App A'

routeLOADBALANCER/

DNS

inboundtraffic

Page 56: Continuous Delivery in Practice

Week 12Week 1

Page 57: Continuous Delivery in Practice

RELEASING

Page 58: Continuous Delivery in Practice

Deployment != Release… Experiment

… Dark Launching

Page 59: Continuous Delivery in Practice

RECAP

Page 60: Continuous Delivery in Practice

don't ignore the data

Page 61: Continuous Delivery in Practice

Automate

Page 62: Continuous Delivery in Practice

Automate

Page 63: Continuous Delivery in Practice

Automate

Page 64: Continuous Delivery in Practice

it's stuff you do...

Page 65: Continuous Delivery in Practice

Thanks@patforna @mhoefi