continuous delivery in the enterprise

41
Continuous Delivery in the Enterprise

Upload: ibm-urbancode-products

Post on 10-May-2015

1.095 views

Category:

Technology


3 download

DESCRIPTION

Continuous delivery in larger shops can run into people and technological roadblocks related to complex systems and organizational structures. This presentation looks at some of those challenges and how to overcome them.

TRANSCRIPT

Page 1: Continuous Delivery in the Enterprise

Continuous Delivery in the Enterprise

Page 2: Continuous Delivery in the Enterprise

Why Waterfall Fails

Idea

Requirements

Development

Test

Release

Validate codeMatches Reqs

Learn if idea & requirementsMatch the market need

Page 3: Continuous Delivery in the Enterprise

Learning Faster

Page 4: Continuous Delivery in the Enterprise

Presenting Today

Eric is a DevOps Evangelist with IBM where he helps customers get the most out of their build, deploy and release processes.

Today he works with customers and industry leaders to find the best ways of adopting continuous delivery and DevOps.

Eric [email protected]@EricMinick

Page 5: Continuous Delivery in the Enterprise

Agenda

Introduction to Continuous Delivery

Continuous Delivery meets the Enterprise

People Changes

Adapting CD to Complex Apps

Q&A

Page 6: Continuous Delivery in the Enterprise

What is Continuous Delivery?

Automated flow from Build to

“ready for prod”

Push button release to prod

Lots of feedbackEmphasis on

always shippable

Themes

Page 7: Continuous Delivery in the Enterprise

“Classic” CD

builddev

test

system

testUAT sign-off staging prod

Page 8: Continuous Delivery in the Enterprise

The Build Pipeline

builddev

test

system

testUAT sign-off staging prod

for (env in testEnvironments) { deploy( build, env ); runTests (env.testType, env);}

Page 9: Continuous Delivery in the Enterprise

Continuous Delivery is a DevOps Strategy

Successful implementation requires assistance from developers, operations, and others

Cooperation and coordination between developers and operations must improve

Page 10: Continuous Delivery in the Enterprise

Agenda

Introduction to Continuous Delivery

Continuous Delivery & The Enterprise

People Changes

Adapting CD to complex apps

Q&A

Page 11: Continuous Delivery in the Enterprise

Enterprise Challenges

Complex, interconnected systems

Silos that need to work together.

Page 12: Continuous Delivery in the Enterprise

The Hard Part is Coordination

Image from wisc.edu

Page 13: Continuous Delivery in the Enterprise

Composite apps: many tiers & components

Page 14: Continuous Delivery in the Enterprise

Composite apps: many tiers & components

An Application might havedozens of components

Page 15: Continuous Delivery in the Enterprise

Composite apps: many tiers & components

An Application might havedozens of components

Delivered by Different Teams

Page 16: Continuous Delivery in the Enterprise

Composite apps: many tiers & components

Which build does “Login” test?

Page 17: Continuous Delivery in the Enterprise

These peopledeploy one buildat a time to prod

88% Deploy More than one build to production a time

√√

Page 18: Continuous Delivery in the Enterprise

Build pipelines in composite applications

builddev

test

system

testUAT sign-off staging prod

builddev

test

system

testUAT sign-off staging prod

builddev

test

system

testUAT sign-off staging prod

builddev

test

system

testUAT sign-off staging prod

builddev

test

system

testUAT sign-off staging prod

builddev

test

system

testUAT sign-off staging prod

builddev

test

system

testUAT sign-off staging prod

builddev

test

system

testUAT sign-off staging prod

builddev

test

system

testUAT sign-off staging prod

builddev

test

system

testUAT sign-off staging prod

builddev

test

system

testUAT sign-off staging prod

builddev

test

system

testUAT sign-off staging prod

Page 19: Continuous Delivery in the Enterprise

Some pieces aren’t built

Databases

Infrastructure

Content

Reports / ETL

builddev

test

system

testUAT sign-off staging prod

builddev

test

system

testUAT sign-off staging prod

builddev

test

system

testUAT sign-off staging prod

builddev

test

system

testUAT sign-off staging prod

builddev

test

system

testUAT sign-off staging prod

builddev

test

system

testUAT sign-off staging prod

Page 20: Continuous Delivery in the Enterprise

The Build Pipeline fails to:

Account for deployment time dependencies

Model things that aren’t built

Deal with incremental updates

X

X

X

Page 21: Continuous Delivery in the Enterprise

Agenda

Introduction to Continuous Delivery

Continuous Delivery & Complex Apps

People Changes

Adapting CD to complex apps

Q&A

Page 22: Continuous Delivery in the Enterprise

Delivery Spans Silos

A DevOps Culture Helps

Page 23: Continuous Delivery in the Enterprise

23

• Common Business Objectives • Vision Statement

• Common measures of Success

Product Owner

Team Member

Team Lead

Team Member

Team Member

Senior Executives

UsersDomain Experts

Auditors

Gold Owner

Support Staff

External System Team

OperationsStaff

Adopting DevOps in the Enterprise: People/Culture

Page 24: Continuous Delivery in the Enterprise

24

• The case for and against ‘DevOps Team’• The DevOps Liaison Team

• No overlay layer of bureaucracy

Adopting DevOps in the Enterprise: People/Culture

Page 25: Continuous Delivery in the Enterprise

25

• Building a DevOps Culture• There is no Silver Bullet

• Right People are needed

Product Owner

Team Member

Team Lead

Team Member

Team Member

Senior Executives

UsersDomain Experts

Auditors

Gold Owner

Support Staff

External System Team

OperationsStaff

Adopting DevOps in the Enterprise: People/Culture

Page 26: Continuous Delivery in the Enterprise

Agenda

Introduction to Continuous Delivery

Continuous Delivery & The Enterprise

People Changes

Adapting CD to complex apps

Q&A

Page 27: Continuous Delivery in the Enterprise

Adapting CD to our Apps

Account for deployment time dependencies

Model things that aren’t built

Deal with incremental updates

Page 28: Continuous Delivery in the Enterprise

Use the “Build of Builds” model as a start

Mega Build

system

testUAT sign-off staging prod

dev

test

Comp.

Build

dev

test

Comp.

Build

dev

test

Comp.

Build

Page 29: Continuous Delivery in the Enterprise

Shift to “Release Sets” or “Snapshots”

We don’t need a new build

– we need a name for a collection of builds.

Delay the creation of these until integration tests pass, and create based on the successful integration tests

builddev

test

system

test

builddev

test

system

test

builddev

test

system

test

UATSign-

offStagin

g Prod

Snapshots at “Application” or “System” level.

Page 30: Continuous Delivery in the Enterprise

Don’t require “build”

Extracts from existing systems, artifact repos, or source control are OK to get deployable version.

Builddev

test

system

test

Config Extract

dev

test

system

test

Fetch from SCM

dev

test

system

test

UATSign-

offStagin

g Prod

Snapshots at “Application” or “System” level.

Page 31: Continuous Delivery in the Enterprise

Support multiple incremental moves

Incremental requires:

–Multiple versions of a component in snapshots

–Awareness when tracking what is where

–Order awareness when performing rollbacks.

Page 32: Continuous Delivery in the Enterprise

Pipeline with Snapshots

Fetch from SCM

dev

test

system

test

Config Extract

dev

test

system

test

Fetch from SCM

dev

test

system

test

UATSign-

offStage Prod

Builddev

test

system

test

Web

Mid. Code

Mid. Config

DB

Page 33: Continuous Delivery in the Enterprise

In story form

A change to a component, creates a new version (often by doing a build).

Page 34: Continuous Delivery in the Enterprise

In story form

A change to a component, creates a new version (often by doing a build). The new version is vetted, and then tested in an integration environment.

Page 35: Continuous Delivery in the Enterprise

In story form

A change to a component, creates a new version (often by doing a build).The new version is vetted, and then tested in an integration environment. When the integrated system passes tests, a snapshot of all the component versions in the system is created.

Page 36: Continuous Delivery in the Enterprise

In story form

A change to a component, creates a new version (often by doing a build).The new version is vetted, and then tested in an integration environment. When the integrated system passes tests, a snapshot of all the component versions in the system is created. Snapshot deployments don’t redeploy unchanged components

Page 37: Continuous Delivery in the Enterprise

In story form

A change to a component, creates a new version (often by doing a build). The new version is vetted, and then tested in an integration environment. When the integrated system passes tests, a snapshot of all the component versions in the system is created. Snapshot deployments don’t redeploy unchanged components. The snapshot is promoted & released. Yay.

Page 38: Continuous Delivery in the Enterprise

In Summary

Continuous Delivery can be Hard in the Enterprise

–People are trained not to work together

–Simple build pipelines don’t work for composite applications

Plan of Attack

–Embrace a DevOps culture. Collaborate like crazy.

–Use release sets to promote components that are tested together

Page 39: Continuous Delivery in the Enterprise

Yes, we sell products that help

IBM UrbanCode Deploy

–Application Deployment Automation

IBM UrbanCode Release

–Coordination across many applications

Page 40: Continuous Delivery in the Enterprise

Learn more

Ibmdw.net/urbancode Enterprise CD Maturity Model

Death to Manual Deployments!

Build & Deployment Automation for the Lean Economy

ITIL Release Management and Automation

Page 41: Continuous Delivery in the Enterprise

Questions?

IBMDW.net/[email protected]@EricMinick