+ All Categories
Home > Documents > Overcoming Impedance to Continuous Delivery

Overcoming Impedance to Continuous Delivery

Date post: 01-Jan-2017
Category:
Upload: nguyenthu
View: 226 times
Download: 5 times
Share this document with a friend
24
Overcoming Impedance to Continuous Delivery Mark Rendell [email protected] @markosrendell http://markosrendell.wordpress.com
Transcript
Page 1: Overcoming Impedance to Continuous Delivery

Overcoming Impedance

to Continuous Delivery Mark Rendell

[email protected]

@markosrendell

http://markosrendell.wordpress.com

Page 2: Overcoming Impedance to Continuous Delivery

@markosrendell 2

Agenda

• What is Continuous Delivery?

• Why would you want it?

• What do we have to get right?

• Impedance: People

• Impedance: Infrastructure

• Impedance: Software Products

• Impedance: Complexity

Page 3: Overcoming Impedance to Continuous Delivery

@markosrendell 3

What is Continuous Delivery?

An approach to industrialising your delivery

Page 4: Overcoming Impedance to Continuous Delivery

@markosrendell 4

What is Continuous Delivery?

http://markosrendell.wordpress.com

A focus on Flow

Page 5: Overcoming Impedance to Continuous Delivery

@markosrendell 5

Why would you want continuous delivery?

Happiness through a happy organisation

Page 6: Overcoming Impedance to Continuous Delivery

@markosrendell 6

Continuous Delivery Essentials

Whole Solution

Version: 48

Website

Version: 12

Order Service

Version: 1.0.3.19

Email Service

Version: 1.0.0.9

Payment Service

Version: 1.0.0.3

Deployment tools Version: 47

Platform

Version: 83

Cloud Foundry

Version: 23

MySQL

Version: 12

Cassandra

Version: 12

RabbitMQ

Version: 24

Infrastructure

Version 20

MicroBosh

Version: 24

Server template

Version: 5

Part 1: rock solid holistic Configuration Management

Page 7: Overcoming Impedance to Continuous Delivery

@markosrendell 7

Continuous Delivery Essentials

Part 2: Platform treated as an Application (PaaA)

Whole Solution

Version: 46

Website

Version: 12

Order Service

Version: 1.0.3.19

Email Service

Version: 1.0.0.9

Payment Service

Version: 1.0.0.3

Deployment tools Version: 47

Platform

Version: 83

Cloud Foundry

Version: 23

MySQL

Version: 12

Cassandra

Version: 12

RabbitMQ

Version: 24

Infrastructure

Version 20

MicroBosh

Version: 24

Server template

Version: 5

Page 8: Overcoming Impedance to Continuous Delivery

@markosrendell 8

Continuous Delivery Essentials

Compile

and package

Static Code

Analysis Unit Tests

Run Functional

Tests

Run Security

Tests PT env deploy

Run Tech

Tests

CT env

deploy

Production

deploy Check

in

Part 3: Automated Delivery Pipeline

Page 9: Overcoming Impedance to Continuous Delivery

@markosrendell 9

Continuous Delivery Essentials

Compile

and package

Static Code

Analysis Unit Tests

Run Functional

Tests

Run Security

Tests PT env deploy

Run Tech

Tests

CT env

deploy

Production

deploy Check

in

Compile

and package

Static Code

Analysis Unit Tests

Run Functional

Tests

Run Security

Tests PT env deploy

Run Tech

Tests

CT env

deploy

Production

deploy Check

in

Compile

and package

Static Code

Analysis Unit Tests

Run Functional

Tests

Run Security

Tests PT env deploy

Run Tech

Tests

CT env

deploy

Production

deploy Check

in

Compile

and package

Static Code

Analysis Unit Tests

Run Functional

Tests

Run Security

Tests PT env deploy

Run Tech

Tests

CT env

deploy

Production

deploy Check

in

Compile

and package Unit Tests

Platform env

deploy

Monitoring

tests Check

in

Compile

and package Unit Tests

Platform env

deploy

Monitoring

tests Check

in

Compile

and package Unit Tests

Platform env

deploy

Monitoring

tests Check

in

Compile

and package Unit Tests

Platform env

deploy

Monitoring

tests Check

in

Compile

and package Unit Tests

Platform env

deploy

Monitoring

tests Check

in

Pla

tform

Part 3: Automated Delivery Pipeline

Page 10: Overcoming Impedance to Continuous Delivery

@markosrendell 10

All too familiar?

Whole

Solution

COTS

Product

UI Code APIs Core

components Database Platform

WS Product + Patches

Middleware

OS

ESB

Integration services

Queues Platform

Middleware

OS

Business Rules Engine

Application Batch jobs Database Rule

definitions Platform

WCS Product + Patches

Middleware

OS

Deployment tools

Physical infrastructure configuration

Network devices

Servers

Version ???

Compile

and package

Static Code

Analysis Unit Tests

Run Functional

Tests

Run Security

Tests PT env deploy

Run Tech

Tests

CT env

deploy

Production

deploy Check

in

CO

TS

In

frastru

ctu

re

ES

B Package

Static Code

Analysis Unit Tests PT env deploy

Production

deploy

CT env

deploy Check

in

Package Unit Tests CT env

deploy

Production

deploy PT env deploy Check

in

Page 11: Overcoming Impedance to Continuous Delivery

@markosrendell 11

Impedance: People

Ignorance? Ambivalence?

Page 12: Overcoming Impedance to Continuous Delivery

@markosrendell 12

Impedance: People

Obedience? Disobedience?

Page 13: Overcoming Impedance to Continuous Delivery

@markosrendell 13

Impedance: People and Governance

Who “owns” these lovely things?

Page 14: Overcoming Impedance to Continuous Delivery

@markosrendell 14

Dev Ops

UI

agency

Cloud

“Ops”

(possibly

shadow!)

Traditional

operations

“Heritage

System”

owner Mobile

partners

ERP owner CMS

vendor

CRM

owner

SaaS

(possibly

shadow!)

“Operations”

Impedance: People and Organisational Complexity

Get a DevOps team if that helps you

Page 15: Overcoming Impedance to Continuous Delivery

@markosrendell 15

Impedance: Infrastructure

Best infrastructure team quarter ever – no new servers given out?

Page 16: Overcoming Impedance to Continuous Delivery

@markosrendell 16

Impedance: Infrastructure

Demand “public cloud” equivalent levels of capability and service (or use public cloud!)

Page 17: Overcoming Impedance to Continuous Delivery

@markosrendell 17

Impedance: Infrastructure Code quality

Infra-as-code == Infra-is-code {

Give it the Jenkins treatment!

}

e.g. MySQL

Chef cookbook

e.g. RabbitMQ

Bosh release

Treat you Platform as an Application and engineer it accordingly

Page 18: Overcoming Impedance to Continuous Delivery

@markosrendell 18

Impedance: Software Products

Tame the COTS products – it IS possible!

Build Static Code

Analysis

Deploy

Code

Load Test

Data

Run Test

Harness

Deploy

Code

SCM Repo

Page 19: Overcoming Impedance to Continuous Delivery

@markosrendell 19

Impedance: Software Products

Tame the COTS products – it IS possible!

Build Static Code

Analysis

Deploy

Code

Load Test

Data

Run Test

Harness

Deploy

Code

SCM Repo

Plain text

(easy)

Anything

you like!

Native

concept

SonarQube

PMD

Checkstyle

Findbugs

Lint

FxCop

etc.

Options,

options,

options

...

etc.

Page 20: Overcoming Impedance to Continuous Delivery

@markosrendell 20

Impedance: Software Products

Tame the COTS products – it IS possible!

Build Static Code

Analysis

Deploy

Code

Load Test

Data

Run Test

Harness

Deploy

Code

SCM Repo

Binary or

proprietary

XML

Can you

even

flatten

CLI?

Headlless

IDE

Write your

own

CLI? etc.

Page 21: Overcoming Impedance to Continuous Delivery

@markosrendell 21

Impedance: Complexity

Have a strategy for tracking component integration

Page 22: Overcoming Impedance to Continuous Delivery

@markosrendell 22

Integrated Pipelines

CI pipelines

Integrated pipelines work really well

Page 23: Overcoming Impedance to Continuous Delivery

@markosrendell 23

Integrated Pipelines

CI pipelines

Integration pipeline

Integrated pipelines work really well

Page 24: Overcoming Impedance to Continuous Delivery

@markosrendell 24

Got for it!

[email protected]

@markosrendell

http://markosrendell.wordpress.com


Recommended