Continuous Delivery in the Enterprise - with IBM UrbanCode

41
© IBM Corporation 1 Presented by: Modern Continuous Delivery Keeping it all together Eric Minick Application Release Automation Market Manager

Transcript of Continuous Delivery in the Enterprise - with IBM UrbanCode

Page 1: 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

Page 2: Continuous Delivery in the Enterprise - with IBM UrbanCode

© IBM Corporation 2

Presenting Today

Eric Minick

[email protected]

@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.

Page 3: Continuous Delivery in the Enterprise - with IBM UrbanCode

© IBM Corporation 3

Why Waterfall Fails

Idea

Requirements

Development

Test

Release

Validate code

Matches Reqs

Learn if idea & requirements

Match the market need

Page 4: Continuous Delivery in the Enterprise - with IBM UrbanCode

© IBM Corporation 4 © IBM Corporation 4

Learning Faster

Page 5: Continuous Delivery in the Enterprise - with IBM UrbanCode

© IBM Corporation 5

Agenda

• Introduction to Continuous Delivery

• Continuous Delivery meets the Enterprise

• Adapting CD to Complex Apps

• Q&A

Page 6: Continuous Delivery in the Enterprise - with IBM UrbanCode

© 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

Page 7: Continuous Delivery in the Enterprise - with IBM UrbanCode

© IBM Corporation 7

text

“Classic” CD

build dev

test

system

test UAT sign-off staging prod

Page 8: Continuous Delivery in the Enterprise - with IBM UrbanCode

© 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);

}

Page 9: Continuous Delivery in the Enterprise - with IBM UrbanCode

© 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

Page 10: Continuous Delivery in the Enterprise - with IBM UrbanCode

© IBM Corporation 10

Agenda

• Introduction to Continuous Delivery

• Continuous Delivery meets the Enterprise

• Adapting CD to Complex Apps

• Q&A

Page 11: Continuous Delivery in the Enterprise - with IBM UrbanCode

© IBM Corporation 11

What you need depends on how continuous

From “Lean Enterprise: How High Performance Organizations

Innovate at Scale” – Jez Humble

Page 12: Continuous Delivery in the Enterprise - with IBM UrbanCode

© 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

Page 13: Continuous Delivery in the Enterprise - with IBM UrbanCode

© IBM Corporation 13

Enterprise Challenges

Complex, interconnected systems

?

Silos that need to work together

Page 14: Continuous Delivery in the Enterprise - with IBM UrbanCode

© IBM Corporation 14

The Hard Part is

Coordination

Image from wisc.edu

Page 15: Continuous Delivery in the Enterprise - with IBM UrbanCode

© IBM Corporation 15

Composite apps: many tiers & components

3rd Party

Services

Page 16: Continuous Delivery in the Enterprise - with IBM UrbanCode

© IBM Corporation 16

text

Composite apps: many tiers & components

An application might have

dozens of components

3rd Party

Services

Page 17: Continuous Delivery in the Enterprise - with IBM UrbanCode

© IBM Corporation 17

Composite apps: many tiers & components

An application might have

dozens of components

Delivered by Different Teams

3rd Party

Services

Page 18: Continuous Delivery in the Enterprise - with IBM UrbanCode

© IBM Corporation 18

Composite apps: many tiers & components

Which build does “Login” test?

3rd Party

Services

Page 19: Continuous Delivery in the Enterprise - with IBM UrbanCode

© 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

Page 20: Continuous Delivery in the Enterprise - with IBM UrbanCode

© 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

Page 21: Continuous Delivery in the Enterprise - with IBM UrbanCode

© 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

Page 22: Continuous Delivery in the Enterprise - with IBM UrbanCode

© IBM Corporation 22

The Build Pipeline

fails to....

Account for deployment time

dependencies

Model things that aren’t built

Deal with incremental updates

Page 23: Continuous Delivery in the Enterprise - with IBM UrbanCode

© IBM Corporation 23

Agenda

• Introduction to Continuous Delivery

• Continuous Delivery meets the Enterprise

• Adapting CD to Complex Apps

• Q&A

Page 24: Continuous Delivery in the Enterprise - with IBM UrbanCode

© 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

Page 25: Continuous Delivery in the Enterprise - with IBM UrbanCode

© IBM Corporation 25

Transitions of a Snapshot

Snapshot

Snapshots

Transitions of Components

Dev Prod QA

?

?

Snapshot Snapshot

QA Dev Prod

Page 26: Continuous Delivery in the Enterprise - with IBM UrbanCode

© 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

Page 27: Continuous Delivery in the Enterprise - with IBM UrbanCode

© 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.

Page 28: Continuous Delivery in the Enterprise - with IBM UrbanCode

© 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.

Page 29: Continuous Delivery in the Enterprise - with IBM UrbanCode

© 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

Page 30: Continuous Delivery in the Enterprise - with IBM UrbanCode

© 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

Page 31: Continuous Delivery in the Enterprise - with IBM UrbanCode

© IBM Corporation 31

In story form

A change to a component, creates a new

version (often by doing a build).

Page 32: Continuous Delivery in the Enterprise - with IBM UrbanCode

© 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.

Page 33: Continuous Delivery in the Enterprise - with IBM UrbanCode

© 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.

Page 34: Continuous Delivery in the Enterprise - with IBM UrbanCode

© 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

Page 35: Continuous Delivery in the Enterprise - with IBM UrbanCode

© 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.

Page 36: Continuous Delivery in the Enterprise - with IBM UrbanCode

© 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

Page 37: Continuous Delivery in the Enterprise - with IBM UrbanCode

© 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

Page 38: Continuous Delivery in the Enterprise - with IBM UrbanCode

© 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

Page 39: Continuous Delivery in the Enterprise - with IBM UrbanCode

© 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…

Page 40: Continuous Delivery in the Enterprise - with IBM UrbanCode

© 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

Page 41: Continuous Delivery in the Enterprise - with IBM UrbanCode

© IBM Corporation 41 © IBM Corporation 41

Accelerating Digital Business