continuous delivery in practice

Post on 13-Apr-2017

140 Views

Category:

Software

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Continuous DeliveryIn 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

Agendawhy? what? how?

Why?

STATE of DevOps report

Higher IT performance

60x failures 168x recovery

30X deploys 200x lead times

Higher organisational performance2x profitability

market share productivity

Higher throughput & stability11.6 secs

amazon - may 2011

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

‒ Agile Manifesto

time

planspec

designcode

testdeploy

iteration 1 iteration 2iteration ...

iteration / sprint

idea

time

fall

planspec

testdeploy

SCRUM

ScrumWater

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

IDEAS

CODEDATA

learn build

measure

ReduceRISK

chan

ge

timech

ange

time

big change= big risk

small change= small risk

Mean Time To Recover168x

TRACK real

PROGRESS

What is real progress?

WHAt?

PracticesAutomation

Version ControlContinuous Integration

Deployment Pipeline

dev to release

Mindsetlean agile

devOps

HOw?

Value Stream Mapping

PROCESS A

PROCESS B

PROCESS C

PROCESS D

supplier customer

information flows

material flows

PROCESS A DEV RELEASE PROCESS

D

supplier customer

information flows

material flows

continuous deluvery

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

Deployment Pipeline

Build

commit

Acc.Tests Staging Prod

automaticpromotion gated

verify

store

time

time

Build Acc.Tests

Staging Prod

component X

Build Acc.Tests

component YSys.

Tests

http://arojgeorge.ghost.io/

time

Build

Acc.Tests: n

Staging ProdCDCTests

Sys.Tests

Acc.Tests: 1

PerfTests

70,000 tests 350 runs 700 days

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

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

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

VERSIONCONTROL

TEST

SYSTEM CONFIG

build scripts

APP CONFIGTOOLSgit

HG...

DB SCRIPTSCODE

DEPLOYMENT SCRIPTS

DEPS

INFRA CONFIG

DOCS

IDE CONFIG

ENCRYPTED (!!)SENSITIVE DATA

Continuous Integration

...is more often than you think.

develop

build

build

pull

push

time

time

commit

pull

build

build

pull

develop

build

push

pull

build

commit

build

pull

develop

build

push

pull

build

commit

BUILD Automation

FAST

GATE TO COmmit

AGREED W/TEAM

FEEDBACK

TOOLSMAKEBAZEL

GRADLERAKE ...

VERSION CONTROLLED

COMMANDLINE

SAME ON CI

COMPILE

TESTS

PACKAGE

CHECKS

...

test automation

find bugs prevent bugs

MANUAL TESTS

AUTOMATIONSUITES

UNIT

# tests# testscon

fiden

ce

FUNCTIONAL

SYS

INTEGRATION

UNIT

confid

ence

time

Unittests

inttests

acc.tests

trigger

feedback

infra & environment automation

Deployment automation

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

Week 12Week 1

RELEASING

Deployment != Release… Experiment

… Dark Launching

RECAP

don't ignore the data

Automate

Automate

Automate

it's stuff you do...

Thanks@patforna @mhoefi

top related