overcoming continuous delivery impedance

24
Overcoming Impedance to Continuous Delivery Mark Rendell [email protected] @markosrendell http://markosrendell.wordpress.com

Upload: mark-rendell

Post on 12-Feb-2017

572 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Overcoming Continuous Delivery Impedance

Overcoming Impedance to Continuous DeliveryMark [email protected]@markosrendellhttp://markosrendell.wordpress.com

Page 2: Overcoming Continuous Delivery Impedance

@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 Continuous Delivery Impedance

@markosrendell 3

What is Continuous Delivery?

An approach to industrialising your delivery

Page 4: Overcoming Continuous Delivery Impedance

@markosrendell 4

What is Continuous Delivery?

http://markosrendell.wordpress.com

A focus on Flow

Page 5: Overcoming Continuous Delivery Impedance

@markosrendell 5

Why would you want continuous delivery?

Happiness through a happy organisation

Page 6: Overcoming Continuous Delivery Impedance

@markosrendell 6

Continuous Delivery Essentials

Whole Solution

Version: 48

Website

Version: 12

Order ServiceVersion: 1.0.3.19

Email ServiceVersion: 1.0.0.9

Payment Service

Version: 1.0.0.3

Deployment toolsVersion: 47

Platform

Version: 83

Cloud Foundry

Version: 23

MySQLVersion: 12

CassandraVersion: 12

RabbitMQVersion: 24

InfrastructureVersion 20

MicroBoshVersion: 24

Server template

Version: 5

Part 1: rock solid holistic Configuration Management

Page 7: Overcoming Continuous Delivery Impedance

@markosrendell 7

Continuous Delivery Essentials

Part 2: Platform treated as an Application (PaaA)

Whole Solution

Version: 46

WebsiteVersion: 12

Order ServiceVersion: 1.0.3.19

Email ServiceVersion: 1.0.0.9

Payment Service

Version: 1.0.0.3

Deployment toolsVersion: 47

Platform

Version: 83

Cloud Foundry

Version: 23

MySQLVersion: 12

CassandraVersion: 12

RabbitMQVersion: 24

InfrastructureVersion 20

MicroBoshVersion: 24

Server template

Version: 5

Page 8: Overcoming Continuous Delivery Impedance

@markosrendell 8

Continuous Delivery Essentials

Compileand package

Static Code Analysis Unit Tests Run Functional

TestsRun Security

Tests PT env deploy Run Tech TestsCT envdeploy

Production deploy

Check in

Part 3: Automated Delivery Pipeline

Page 9: Overcoming Continuous Delivery Impedance

@markosrendell 9

Continuous Delivery Essentials

Compileand package

Static Code Analysis Unit Tests Run Functional

TestsRun Security

Tests PT env deploy Run Tech TestsCT envdeploy

Production deploy

Check in

Compileand package

Static Code Analysis Unit Tests Run Functional

TestsRun Security

Tests PT env deploy Run Tech TestsCT envdeploy

Production deploy

Check in

Compileand package

Static Code Analysis Unit Tests Run Functional

TestsRun Security

Tests PT env deploy Run Tech TestsCT envdeploy

Production deploy

Check in

Compileand package

Static Code Analysis Unit Tests Run Functional

TestsRun Security

Tests PT env deploy Run Tech TestsCT envdeploy

Production deploy

Check in

Compileand package Unit Tests Platform env

deployMonitoring

testsCheck

in

Compileand package Unit Tests Platform env

deployMonitoring

testsCheck

in

Compileand package Unit Tests Platform env

deployMonitoring

testsCheck

in

Compileand package Unit Tests Platform env

deployMonitoring

testsCheck

in

Compileand package Unit Tests Platform env

deployMonitoring

testsCheck

in

Platform

Part 3: Automated Delivery Pipeline

Page 10: Overcoming Continuous Delivery Impedance

@markosrendell 10

All too familiar?

Whole Solution

COTSProduct

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

Compileand package

Static Code Analysis Unit Tests Run Functional

TestsRun Security

Tests PT env deploy Run Tech TestsCT envdeploy

Production deploy

Check in

CO

TS

InfrastructureE

SB Package Static Code

Analysis Unit Tests PT env deploy Production deploy

CT envdeploy

Check in

Package Unit Tests CT envdeploy

Production deployPT env deployCheck

in

Page 11: Overcoming Continuous Delivery Impedance

@markosrendell 11

Impedance: People

Ignorance? Ambivalence?

Page 12: Overcoming Continuous Delivery Impedance

@markosrendell 12

Impedance: People

Obedience? Disobedience?

Page 13: Overcoming Continuous Delivery Impedance

@markosrendell 13

Version control

Configuration

ManagementRelease

Management

EnvironmentManagement

Pipelineorchestration

Automated

infrastructure

Automateddeployment

Impedance: People and Governance

Who “owns” these lovely things?

Page 14: Overcoming Continuous Delivery Impedance

@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 Continuous Delivery Impedance

@markosrendell 15

Impedance: Infrastructure

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

Page 16: Overcoming Continuous Delivery Impedance

@markosrendell 16

Impedance: Infrastructure

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

Page 17: Overcoming Continuous Delivery Impedance

@markosrendell 17

Impedance: Infrastructure Code quality

Infra-as-code == Infra-is-code {Give it the Jenkins treatment!

}

e.g. MySQLChef cookbook

e.g. RabbitMQBosh release

Treat you Platform as an Application and engineer it accordingly

Page 18: Overcoming Continuous Delivery Impedance

@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 Continuous Delivery Impedance

@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

SonarQubePMD

CheckstyleFindbugs

LintFxCop

etc.

Options, options,options

...

etc.

Page 20: Overcoming Continuous Delivery Impedance

@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 Continuous Delivery Impedance

@markosrendell 21

Impedance: Complexity

What versions were

tested together?

What should

we release?

How do we control flow?

Have a strategy for tracking component integration

Page 22: Overcoming Continuous Delivery Impedance

@markosrendell 22

Integrated Pipelines

CI pipelines

Integrated pipelines work really well

Page 23: Overcoming Continuous Delivery Impedance

@markosrendell 23

Integrated Pipelines

CI pipelines

Integration pipeline

Integrated pipelines work really well

Page 24: Overcoming Continuous Delivery Impedance

@markosrendell 24

Got for it!

[email protected]

@markosrendell

http://markosrendell.wordpress.com