continuous delivery at oracle database insights

Post on 12-Jan-2017

110 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

CONTINOUSD E L I V E R Y

ENTERPRISE

DEVOPS

Databases?!?!

MICHAEL MEDIN

LOVE TO BUILD

TWO GIRLS

NOOoOoOoOoOo!

PINK LEGOs!

R2M

Amazing!

THEORY

waterfallRequirements

Specification

Build

Test

Deliver

Done

AGILE

RESCUEto the

Gather Requirements

Write Specification

Build softwareTest software

Deliver Software

Acceptance Test

Agile

Frontend

Business logic

Backend

3-tier

Gather Requirements

Write Specification

Build softwareTest software

Deliver Software

Acceptance Test

…but how?

Frontend

Business logic

Backend

waterfalls

INTEGRATIONCONTINUOUS

RESCUEto the

Code

IntegrateBuild

Test

INTEGRATIONCONTINUOUS

complexity++

WEB/APP

DB

WEB/APP WEB/APP

LB

APPESB

complexity++DEV

WEB/APP

DB

WEB/APP WEB/APP

LB

APPESB

DEV2

WEB/APP

DB

WEB/APP WEB/APP

LB

APPESB

TEST

WEB/APP

DB

WEB/APP WEB/APP

LB

APPESB

AT

WEB/APP

DB

WEB/APP WEB/APP

LB

APPESB

ST

WEB/APP

DB

WEB/APP WEB/APP

LB

APPESB

PRE PROD

WEB/APP

DB

WEB/APP WEB/APP

LB

APPESB

PROD

WEB/APP

DB

WEB/APP WEB/APP

LB

APPESB

Code

IntegrateBuild

Test

…but how?

Development

Installation

Testing

waterfalls

DELIVERYCONTINUOUS

RESCUEto the

Code

Integrate

Build

Unit-test

Deploy

Acceptance/Integration

test

Release

DELIVERYCONTINUOUS

.NET Oracle

JavaSAP

distributed

…but how?

Code

Integrate

Build

Unit-test

Deploy

Acceptance/Integration

test

Release

Code

Integrate

Build

Unit-test

Deploy

Acceptance/Integration

test

Release Code

Integrate

Build

Unit-test

Deploy

Acceptance/Integration

test

Release

Code

Integrate

Build

Unit-test

Deploy

Acceptance/Integration

test

ReleaseCode

Integrate

Build

Unit-test

Deploy

Acceptance/Integration

test

Release

.NET EBS

JavaSAP

waterfalls

Agile Enterprise

RESCUEto the

Code

Integrate

Build

Unit-test

Deploy

Acceptance/Integration

test

Release Code

Integrate

Build

Unit-test

Deploy

Acceptance/Integration

test

Release

Code

Integrate

Build

Unit-test

Deploy

Acceptance/Integration

test

ReleaseCode

Integrate

Build

Unit-test

Deploy

Acceptance/Integration

test

Release

Code

Integrate

Build

Unit-test

Deploy

Acceptance/Integration

test

Release

no such thing…

DELIVERYCONTINUOUS

DIFFICULTDELIVERYCONTINUOUS

…to spell…UOU…

DIFFICULTDELIVERYCONTINUOUSCONTINUS

AUTOMATE

CodeTest

Release

Install Configuration

DeployAcceptance Test

Migration Everything

Regression Test Build

people say:

…this is very hard…

…it’s impossible

LIES!

…we use product X…

people say:

…it’s impossible

LIES!

…we don’t have time…

people say:

…it’s impossible

LIES!

http://blog.gardeviance.org/2012/07/adoption-cycles.html

AUTOMATE

Code

Test

Release

InstallConfiguration

DeployAcc. Test Migration

EverythingAUTOMATION

…back to

PIPELINE

DEPLOYWORKFLOW

AUTOMATE

Code

Test

Release

InstallConfiguration

DeployAcc. Test Migration

EverythingBUILD ITwe need to

Pirates vs. Ninjas

DevOps

DevOpsNot about working together

It’s about working together

remember

Javasource• Edit

• Compile

build• Test

• Package

package• Archive

• Version

runtime• Deploy

• Manage

Database • Edit

• Compile

Agresso

Agresso

Database • Edit

• Compile

Change management

Reverting

Your not alone!

Code

Integrate

Build

Unit-test

Deploy

Acceptance/Integration

test

Release Code

Integrate

Build

Unit-test

Deploy

Acceptance/Integration

test

Release

Code

Integrate

Build

Unit-test

Deploy

Acceptance/Integration

test

ReleaseCode

Integrate

Build

Unit-test

Deploy

Acceptance/Integration

test

Release

Code

Integrate

Build

Unit-test

Deploy

Acceptance/Integration

test

Release

Remember this!

DELIVERY

CONTINUOUS

Deploy:

Time per week:

Consultants:

1 per week

3-4

20h

Every week!

Accumulated cost

0

20

40

60

80

100

120

140

0 1 2 3 4 5 6

Manual Automated

Accumulated cost

0

20

40

60

80

100

120

140

1 2 3 4 5 6 7

Manual Automated

Re invest in CD

Practice Build management and CI Environments and deployment

Release management Testing Data management Configuration Management

Level 3 – Optimizing: Focus on process

improvement

Teams regularly meet to discuss integration problems and resolve

them with automation, faster feedback, and better visibility

All environments managed effectively. Provisioning

fully automated. Virtualization used if

applicable.

Operations and delivery teams regularly collaborate to

manage risks and reduce cycle time.

Production rollbacks rare. Defects found and fixed

immediately.

Release to release feedback loop of database performance and

deployment process

Regular validation that CM policy supports effective

collaboration, rapid development, and auditable

change management processes.

Level 2 –Quantitatively

managed: Process measured and

controlled

Build metrics gathered, made visible, and acted on. Build s are

not left broken.

Orchestrated deployments managed. Release and

rollback processes tested.

Environment and application health monitored and

proactively managed. Cycle time monitored.

Quality metrics and trends tracked. Non

functional requirements defined and measured.

Database upgrades and rollbacks tested with every

deployment. Database performance monitored and

optimized.

Developers check in to mainlined at least once a day.

Branching only used for releases.

Level 1 – ConsistentAutomated processes applied across whole application lifecycle

Automated build and test cycle very time a change is committed. Dependencies managed, Re-use

of scripts and tools.

Fully automated, self-service push-button process

for deploying software. Same process to deploy to

every environment.

Change management and approvals processes defined

and enforced. Regulatory and compliance conditions met.

Automated unit and acceptance tests, the

latter written with testers. Testing part of development process.

Database changes performed automatically as part of

deployment process.

Libraries and dependenciesmanaged. Version control

usage policies determined by change management process.

Level 0 – Repeatable: Process documented and partly automated

Regular automated build and testing. Any build can be re-

created from source control using automated process.

Automated deployment to some environments.

Creation of new environments is cheap. All

configuration externalized / versioned

Painful and infrequent, but reliable, releases. Limited

traceability from requirements to release.

Automated tests written as part of story development.

Changes to databases done with automated scripts

versioned with application.

Version control in use for everything required to

recreate software: source code, configuration, build and

deploy scripts, data migrations.

Level -1 – RegressiveProcesses

unrepeatable, poorly controlled, and

reactive

Manual process for building software. No management of

artifacts and reports.

Manual process for deploying software.

Environment-specificbinaries. Environments provisioned manually

Infrequent and unreliable releases.

Manual testing after development.

Data migration unversionedand performed manually.

Version control either not used, or check-in happens

infrequently.

Capability Maturity ModelLevel 1ConsistentAutomated

processes applied across whole

application lifecycle

Automated build and test cycle very time a change is committed.

Dependencies managed, Re-use of scripts and tools.

Fully automated, self-service push-button process for

deploying software. Same process to deploy to every

environment.

Level 0Repeatable:

Process documented and partly automated

Regular automated build and testing. Any build can be re-created from source control using automated

process.

Automated deployment to some environments.

Creation of new environments is cheap. All

configuration externalized / versioned

Level -1RegressiveProcesses

unrepeatable, poorly controlled, and

reactive

Manual process for building software. No management of

artifacts and reports.

Manual process for deploying software.

Environment-specificbinaries. Environments provisioned manually

Level 1ConsistentAutomated

processes applied across whole

application lifecycle

Automated build and test cycle very time a change is committed.

Dependencies managed, Re-use of scripts and tools.

Fully automated, self-service push-button process for

deploying software. Same process to deploy to every

environment.

Level 0Repeatable:

Process documented and partly automated

Regular automated build and testing. Any build can be re-created from source control using automated

process.

Automated deployment to some environments.

Creation of new environments is cheap. All

configuration externalized / versioned

Level -1RegressiveProcesses

unrepeatable, poorly controlled, and

reactive

Manual process for building software. No management of

artifacts and reports.

Manual process for deploying software.

Environment-specificbinaries. Environments provisioned manually

DELIVERY

CONTINUOUS

Our job is to automatebusiness processes.

Why do we do this

manually?

Photo by Olga Berrios

top related