Continuous Delivery in the Enterprise - with IBM UrbanCode

Post on 09-Feb-2017

1.910 views 3 download

Transcript of Continuous Delivery in the Enterprise - with IBM UrbanCode

© IBM Corporation 1

Presented by:

Modern Continuous Delivery Keeping it all together

Eric Minick

Application Release

Automation Market

Manager

© IBM Corporation 2

Presenting Today

Eric Minick

eminick@us.ibm.com

@EricMinick

Eric is a Product Manager and DevOps

Evangelist with IBM.

Today he works with customers and

industry leaders to find the best ways of

adopting continuous delivery and DevOps.

© IBM Corporation 3

Why Waterfall Fails

Idea

Requirements

Development

Test

Release

Validate code

Matches Reqs

Learn if idea & requirements

Match the market need

© IBM Corporation 4 © IBM Corporation 4

Learning Faster

© IBM Corporation 5

Agenda

• Introduction to Continuous Delivery

• Continuous Delivery meets the Enterprise

• Adapting CD to Complex Apps

• Q&A

© IBM Corporation 6

text

What is Continuous Delivery?

Automated flow from Build to

“ready for prod”

Push button release to prod

Lots of feedback Emphasis on

always shippable

Themes

© IBM Corporation 7

text

“Classic” CD

build dev

test

system

test UAT sign-off staging prod

© IBM Corporation 8 © IBM Corporation 8

The Build Pipeline

build dev

test

system

test UAT sign-off staging prod

for (env in testEnvironments) {

deploy( build, env );

runTests (env.testType, env);

}

© IBM Corporation 9

Continuous Delivery is

a DevOps Strategy

• Successful implementation requires

assistance from developers, operations,

and others

• Cooperation and coordination between

developers and operations must improve

© IBM Corporation 10

Agenda

• Introduction to Continuous Delivery

• Continuous Delivery meets the Enterprise

• Adapting CD to Complex Apps

• Q&A

© IBM Corporation 11

What you need depends on how continuous

From “Lean Enterprise: How High Performance Organizations

Innovate at Scale” – Jez Humble

© IBM Corporation 12

What you need depends on how continuous

Today’s Focus 1 week to 1 quarter

From “Lean Enterprise: How High Performance Organizations

Innovate at Scale” – Jez Humble

© IBM Corporation 13

Enterprise Challenges

Complex, interconnected systems

?

Silos that need to work together

© IBM Corporation 14

The Hard Part is

Coordination

Image from wisc.edu

© IBM Corporation 15

Composite apps: many tiers & components

3rd Party

Services

© IBM Corporation 16

text

Composite apps: many tiers & components

An application might have

dozens of components

3rd Party

Services

© IBM Corporation 17

Composite apps: many tiers & components

An application might have

dozens of components

Delivered by Different Teams

3rd Party

Services

© IBM Corporation 18

Composite apps: many tiers & components

Which build does “Login” test?

3rd Party

Services

© IBM Corporation 19

What is the scope of a typical production deployment

effort?

These people

deploy one build

at a time to prod

88% deploy more than one

build to production a time

© IBM Corporation 20

Build pipelines in composite applications

build dev

test

system

test UAT sign-off staging prod

build dev

test

system

test UAT sign-off staging prod

build dev

test

system

test UAT sign-off staging prod

build dev

test

system

test UAT sign-off staging prod

build dev

test

system

test UAT sign-off staging prod

build dev

test

system

test UAT sign-off staging prod

build dev

test

system

test UAT sign-off staging prod

build dev

test

system

test UAT sign-off staging prod

build dev

test

system

test UAT sign-off staging prod

build dev

test

system

test UAT sign-off staging prod

build dev

test

system

test UAT sign-off staging prod

build dev

test

system

test UAT sign-off staging prod

© IBM Corporation 21 © IBM Corporation 21

Some pieces aren’t built

Databases

Infrastructure

Content

Reports / ETL

build dev

test

system

test UAT sign-off staging prod

build dev

test

system

test UAT sign-off staging prod

build dev

test

system

test UAT sign-off staging prod

build dev

test

system

test UAT sign-off staging prod

build dev

test

system

test UAT sign-off staging prod

build dev

test

system

test UAT sign-off staging prod

© IBM Corporation 22

The Build Pipeline

fails to....

Account for deployment time

dependencies

Model things that aren’t built

Deal with incremental updates

© IBM Corporation 23

Agenda

• Introduction to Continuous Delivery

• Continuous Delivery meets the Enterprise

• Adapting CD to Complex Apps

• Q&A

© IBM Corporation 24 © IBM Corporation 24

Adapting CD to our

Apps

• Account for deployment time dependencies

• Model things that aren’t built

• Deal with incremental updates

© IBM Corporation 25

Transitions of a Snapshot

Snapshot

Snapshots

Transitions of Components

Dev Prod QA

?

?

Snapshot Snapshot

QA Dev Prod

© IBM Corporation 26

Use the “Build of Builds” model as a start

Mega Build

system

test UAT sign-off staging prod

dev

test

Comp.

Build

dev

test

Comp.

Build

dev

test

Comp.

Build

© IBM Corporation 27

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

build dev

test

system

test

build dev

test

system

test

build dev

test

system

test

UAT Sign-

off

Staging

Prod

Snapshots at “Application”

or “System” level.

© IBM Corporation 28

Don’t require “build”

– Extracts from existing systems, artifact repos, or source control are OK to

get deployable version.

Build dev

test

system

test

Config Extract

dev

test

system

test

Fetch from SCM

dev

test

system

test

UAT Sign-

off

Staging

Prod

Snapshots at “Application”

or “System” level.

© IBM Corporation 29

Support multiple incremental moves

Incremental requires:

• Multiple versions of a component in snapshots

• Awareness when tracking what is where

• Order awareness when performing rollbacks.

Creating a Snapshot

Component Versions / Builds

1

1

2

2

3

3

321Web

Mid. Code

DB

Snapshot

3

2

1

Mid. Config 1 2 3 3

2

© IBM Corporation 30

Snapshot

3

2

1

3

2

Pipeline with Snapshots

Fetch from SCM

dev

test

system

test

Config Extract

dev

test

system

test

Fetch from SCM

dev

test

system

test

UAT Sign-

off Stage Prod

Build dev

test

system

test

Web

Mid.

Code

Mid. Config

DB

© IBM Corporation 31

In story form

A change to a component, creates a new

version (often by doing a build).

© IBM Corporation 32

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.

© IBM Corporation 33

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.

© IBM Corporation 34

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

© IBM Corporation 35

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.

© IBM Corporation 36 © IBM Corporation 36

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

© IBM Corporation 37 © IBM Corporation 37

Yes, we sell

products that help

– IBM UrbanCode Build

• Continuous Integration that Scales

– IBM UrbanCode Deploy

• Application Deployment Automation

– IBM UrbanCode Release

• Coordination across many applications

© IBM Corporation 38

UrbanCode Deploy: Press a button, a complex app is deployed to an environment

• Offer secure‘self-service’capabilities

• Manage configurations across

environments.

Automated Tracks Parts of Apps

• Know all the pieces of the app

tested together.

• Increase transparency

• Ensure governance and

compliance

© IBM Corporation 39

UrbanCode Release: Manage Related Applications Quick Qualifying Question: When you release, do you do just one app or

do you coordinate changes to several?

Customer Portal

Inventory System

Customer Accounts

Credit Services

Planning is complex Development work must be coordinated

across teams. Release schedules aligned.

Development is complex. Interfaces understood, developed &

configured appropriately. Environments

composed & connected.

Testing complex. Are the correct versions of all applications in

my environment? In which application did

the bug occur? Is the bug a code issue or

misconfiguration of the multi-application

environment?

Change Management is

complex. If we pull an application from the Release

what will what other applications or projects

will be affected? and dozens or hundreds more…

© IBM Corporation 40

Learn more • Developer.ibm.com/urbancode

• Webinar - Death to Manual Deployments!

• eBook - Application Release and

Deployment For Dummies

• Analysts Study - The Total Economic

Impact of IBM UrbanCode Deploy

• Request Personal Demo of UrbanCode

Deploy

© IBM Corporation 41 © IBM Corporation 41

Accelerating Digital Business