end-to-end deployment pipelines - avoiding pipeline fragmentation

26
End-to-end Deployment Pipelines: Avoiding Pipeline Fragmentation Matthew Skelton :: 13 June 2012

Upload: matthew-skelton

Post on 13-May-2015

2.033 views

Category:

Technology


0 download

DESCRIPTION

The deployment pipeline is a key feature of continuous delivery. Avoiding fragmentation of deployment pipelines is crucial if the maximum benefit is to be derived from pipelines. This presentation shows why pipeline fragmentation is bad, examines some of the reasons why pipeline fragmentation may occur, and explores some of the challenges involved in implementing end-to-end deployment pipelines.

TRANSCRIPT

Page 1: End-to-end deployment pipelines - avoiding pipeline fragmentation

End-to-end Deployment Pipelines:

Avoiding Pipeline Fragmentation

Matthew Skelton :: 13 June 2012

Page 2: End-to-end deployment pipelines - avoiding pipeline fragmentation

Introduction

Context: Continuous Delivery

Value stream mapping

What are deployment pipelines?

Pipeline fragmentation

Deriving value from end-to-end pipelines

Q&A

End-to-end Deployment PipelinesA

GE

ND

A

2End-to-end Deployment Pipelines :: Matthew Skelton

Page 3: End-to-end deployment pipelines - avoiding pipeline fragmentation

Introduction

Context: Continuous Delivery

Value stream mapping

What are deployment pipelines?

Pipeline fragmentation

Deriving value from end-to-end pipelines

Q&A

End-to-end Deployment PipelinesA

GE

ND

A

3End-to-end Deployment Pipelines :: Matthew Skelton

Page 4: End-to-end deployment pipelines - avoiding pipeline fragmentation

Continuous Delivery

End-to-end Deployment Pipelines :: Matthew Skelton4

Empowering product owners & the business to

choose when to deploy

Software always ready to go live

„One-click‟ deployments

Visibility of work-in-progress

Page 5: End-to-end deployment pipelines - avoiding pipeline fragmentation

Continuous Delivery

End-to-end Deployment Pipelines :: Matthew Skelton5

Context

http://continuousdelivery.com/

Jez Humble & David Farley

(ex-)ThoughtWorks

Chapter 5, Anatomy of the Deployment Pipeline, is free to download:

http://www.informit.com/articles/article.aspx?p=1621865

Read the book!

+ screen casts on InfoQ

Page 6: End-to-end deployment pipelines - avoiding pipeline fragmentation

Introduction

Context: Continuous Delivery

Value stream mapping

What are deployment pipelines?

Pipeline fragmentation

Deriving value from end-to-end pipelines

Q&A

End-to-end Deployment PipelinesA

GE

ND

A

6End-to-end Deployment Pipelines :: Matthew Skelton

Page 7: End-to-end deployment pipelines - avoiding pipeline fragmentation

Value Stream Maps

End-to-end Deployment Pipelines :: Matthew Skelton7

Identify stages in the release cycle

„Value-added‟ time

Elapsed time

Remove bottlenecks, eliminate waste

Further reading:

Lean Software Development, Mary & Tom Poppendieck

“How long would it take your organization to deploy a change that involves just one single line of code?”

Page 8: End-to-end deployment pipelines - avoiding pipeline fragmentation

Value Stream Maps

End-to-end Deployment Pipelines :: Matthew Skelton8

Example (from Continuous Delivery)

Where is this visible within the organisation?

Is the information up-to-date?

Page 9: End-to-end deployment pipelines - avoiding pipeline fragmentation

Introduction

Context: Continuous Delivery

Value stream mapping

What are deployment pipelines?

Pipeline fragmentation

Deriving value from end-to-end pipelines

Q&A

End-to-end Deployment PipelinesA

GE

ND

A

9End-to-end Deployment Pipelines :: Matthew Skelton

Page 10: End-to-end deployment pipelines - avoiding pipeline fragmentation

What are deployment pipelines?

End-to-end Deployment Pipelines :: Matthew Skelton10

Automated manifestations of value stream maps

Page 11: End-to-end deployment pipelines - avoiding pipeline fragmentation

The Deployment Pipeline tells us...

End-to-end Deployment Pipelines :: Matthew Skelton11

At what stage is version X of the software?

Which version is in environment Y?

Which versions made it to Production?

What version should I test next?

...and so on.

Page 12: End-to-end deployment pipelines - avoiding pipeline fragmentation

The Deployment Pipeline tells us...

End-to-end Deployment Pipelines :: Matthew Skelton12

At what stage is version X of the software?

Which version is in environment Y?

Which versions made it to Production?

What version should I test next?

Page 15: End-to-end deployment pipelines - avoiding pipeline fragmentation

Introduction

Context: Continuous Delivery

Value stream mapping

What are deployment pipelines?

Pipeline fragmentation

Deriving value from end-to-end pipelines

Q&A

End-to-end Deployment PipelinesA

GE

ND

A

15End-to-end Deployment Pipelines :: Matthew Skelton

Page 17: End-to-end deployment pipelines - avoiding pipeline fragmentation

Pipeline Fragmentation

End-to-end Pipeline Fragmented Pipeline

End-to-end Deployment Pipelines :: Matthew Skelton17

From Dev to Production Multiple separate isolated steps

Page 18: End-to-end deployment pipelines - avoiding pipeline fragmentation

Pipeline Fragmentation

End-to-end Deployment Pipelines :: Matthew Skelton18

Questions (again): At what stage is version X of the software?

Which version is in environment Y?

Which versions made it to Production?

What version should I test next? ?

Page 19: End-to-end deployment pipelines - avoiding pipeline fragmentation

Problems with Pipeline Fragmentation

End-to-end Deployment Pipelines :: Matthew Skelton19

Difficult to get the overall picture

Multiple places to look

Limited traceability

Difficult to answer the common questions: At what stage is version X of the software?

Which version is in environment Y?

Which versions made it to Production?

What version should I test next?

What should be automated becomes manual

Page 20: End-to-end deployment pipelines - avoiding pipeline fragmentation

Causes of Pipeline Fragmentation

End-to-end Deployment Pipelines :: Matthew Skelton20

Teams and Roles Each team responsible for a single GO server

GO servers organised around responsibilities

Location Teams in different locations

Tricky to achieve inter-site view

Performance Slow-downs when > 200 pipelines

„Misuse‟ of pipelines

Page 21: End-to-end deployment pipelines - avoiding pipeline fragmentation

Introduction

Context: Continuous Delivery

Value stream mapping

What are deployment pipelines?

Pipeline fragmentation

Deriving value from end-to-end pipelines

Q&A

End-to-end Deployment PipelinesA

GE

ND

A

21End-to-end Deployment Pipelines :: Matthew Skelton

Page 22: End-to-end deployment pipelines - avoiding pipeline fragmentation

Deriving value from end-to-end pipelines

End-to-end Deployment Pipelines :: Matthew Skelton22

Challenges:

Versioning and dependency management

Separating subsystems can be tricky

A product- or service-centric view makes this easier Goal is one pipeline per product or subsystem

Design of deployment pipelines Triggers, build dependencies, re-using components as test harnesses

Multiple test environments complicate pipelines One environment per product better than one per team?

New „diamond dependencies‟ in GO 12.2 might help here

Optimising the automated test suites is essential

Page 23: End-to-end deployment pipelines - avoiding pipeline fragmentation

Deriving value from end-to-end pipelines

End-to-end Deployment Pipelines :: Matthew Skelton23

Choose small, simple products to begin with Limited or no dependency on other components

Involve the business sponsor

Aim for a “walking skeleton”, end-to-end Forces some tricky problems to be solved

For example: Change the text on a button

Commit, test, deploy to Production within a day

More complex scenarios can follow later

Page 24: End-to-end deployment pipelines - avoiding pipeline fragmentation

Deriving value from end-to-end pipelines

End-to-end Deployment Pipelines :: Matthew Skelton24

Answer questions from: Product owners

The Business

QA team

Developers

Visible progress

Take more informed decisions, more rapidly

Reduce cycle time

Page 25: End-to-end deployment pipelines - avoiding pipeline fragmentation

Introduction

Context: Continuous Delivery

Value stream mapping

What are deployment pipelines?

Pipeline fragmentation

Deriving value from end-to-end pipelines

Q&A

End-to-end Deployment PipelinesA

GE

ND

A

25End-to-end Deployment Pipelines :: Matthew Skelton

Page 26: End-to-end deployment pipelines - avoiding pipeline fragmentation

Any questions?

http://matthewskelton.net/