continuous delivery at oracle database insights

63
CONTINOUS DELIVERY ENTERPRISE DEV OPS Databases?!?!

Upload: michael-medin

Post on 12-Jan-2017

110 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Continuous Delivery at Oracle Database Insights

CONTINOUSD E L I V E R Y

ENTERPRISE

DEVOPS

Databases?!?!

Page 2: Continuous Delivery at Oracle Database Insights

MICHAEL MEDIN

Page 3: Continuous Delivery at Oracle Database Insights

LOVE TO BUILD

Page 4: Continuous Delivery at Oracle Database Insights

TWO GIRLS

Page 5: Continuous Delivery at Oracle Database Insights

NOOoOoOoOoOo!

Page 6: Continuous Delivery at Oracle Database Insights

PINK LEGOs!

Page 7: Continuous Delivery at Oracle Database Insights

R2M

Amazing!

Page 8: Continuous Delivery at Oracle Database Insights

THEORY

Page 9: Continuous Delivery at Oracle Database Insights

waterfallRequirements

Specification

Build

Test

Deliver

Done

Page 10: Continuous Delivery at Oracle Database Insights
Page 11: Continuous Delivery at Oracle Database Insights

AGILE

RESCUEto the

Page 12: Continuous Delivery at Oracle Database Insights

Gather Requirements

Write Specification

Build softwareTest software

Deliver Software

Acceptance Test

Agile

Page 13: Continuous Delivery at Oracle Database Insights

Frontend

Business logic

Backend

3-tier

Page 14: Continuous Delivery at Oracle Database Insights

Gather Requirements

Write Specification

Build softwareTest software

Deliver Software

Acceptance Test

…but how?

Page 15: Continuous Delivery at Oracle Database Insights

Frontend

Business logic

Backend

waterfalls

Page 16: Continuous Delivery at Oracle Database Insights
Page 17: Continuous Delivery at Oracle Database Insights

INTEGRATIONCONTINUOUS

RESCUEto the

Page 18: Continuous Delivery at Oracle Database Insights

Code

IntegrateBuild

Test

INTEGRATIONCONTINUOUS

Page 19: Continuous Delivery at Oracle Database Insights

complexity++

WEB/APP

DB

WEB/APP WEB/APP

LB

APPESB

Page 20: Continuous Delivery at Oracle Database Insights

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

Page 21: Continuous Delivery at Oracle Database Insights

Code

IntegrateBuild

Test

…but how?

Page 22: Continuous Delivery at Oracle Database Insights

Development

Installation

Testing

waterfalls

Page 23: Continuous Delivery at Oracle Database Insights
Page 24: Continuous Delivery at Oracle Database Insights

DELIVERYCONTINUOUS

RESCUEto the

Page 25: Continuous Delivery at Oracle Database Insights

Code

Integrate

Build

Unit-test

Deploy

Acceptance/Integration

test

Release

DELIVERYCONTINUOUS

Page 26: Continuous Delivery at Oracle Database Insights

.NET Oracle

JavaSAP

distributed

Page 27: Continuous Delivery at Oracle Database Insights

…but how?

Code

Integrate

Build

Unit-test

Deploy

Acceptance/Integration

test

Release

Page 28: Continuous Delivery at Oracle Database Insights

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

Page 29: Continuous Delivery at Oracle Database Insights
Page 30: Continuous Delivery at Oracle Database Insights

Agile Enterprise

RESCUEto the

Page 31: Continuous Delivery at Oracle Database Insights

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

Page 32: Continuous Delivery at Oracle Database Insights

no such thing…

Page 33: Continuous Delivery at Oracle Database Insights
Page 34: Continuous Delivery at Oracle Database Insights

DELIVERYCONTINUOUS

Page 35: Continuous Delivery at Oracle Database Insights

DIFFICULTDELIVERYCONTINUOUS

Page 36: Continuous Delivery at Oracle Database Insights

…to spell…UOU…

DIFFICULTDELIVERYCONTINUOUSCONTINUS

Page 37: Continuous Delivery at Oracle Database Insights

AUTOMATE

CodeTest

Release

Install Configuration

DeployAcceptance Test

Migration Everything

Regression Test Build

Page 38: Continuous Delivery at Oracle Database Insights

people say:

…this is very hard…

…it’s impossible

Page 39: Continuous Delivery at Oracle Database Insights

LIES!

Page 40: Continuous Delivery at Oracle Database Insights

…we use product X…

people say:

…it’s impossible

Page 41: Continuous Delivery at Oracle Database Insights

LIES!

Page 42: Continuous Delivery at Oracle Database Insights

…we don’t have time…

people say:

…it’s impossible

Page 43: Continuous Delivery at Oracle Database Insights

LIES!

Page 44: Continuous Delivery at Oracle Database Insights

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

Page 45: Continuous Delivery at Oracle Database Insights

AUTOMATE

Code

Test

Release

InstallConfiguration

DeployAcc. Test Migration

EverythingAUTOMATION

…back to

Page 46: Continuous Delivery at Oracle Database Insights

PIPELINE

DEPLOYWORKFLOW

Page 47: Continuous Delivery at Oracle Database Insights

AUTOMATE

Code

Test

Release

InstallConfiguration

DeployAcc. Test Migration

EverythingBUILD ITwe need to

Page 48: Continuous Delivery at Oracle Database Insights

Pirates vs. Ninjas

Page 49: Continuous Delivery at Oracle Database Insights

DevOps

Page 50: Continuous Delivery at Oracle Database Insights

DevOpsNot about working together

It’s about working together

remember

Page 51: Continuous Delivery at Oracle Database Insights

Javasource• Edit

• Compile

build• Test

• Package

package• Archive

• Version

runtime• Deploy

• Manage

Page 52: Continuous Delivery at Oracle Database Insights

Database • Edit

• Compile

Agresso

Page 53: Continuous Delivery at Oracle Database Insights

Agresso

Database • Edit

• Compile

Change management

Reverting

Your not alone!

Page 54: Continuous Delivery at Oracle Database Insights

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!

Page 55: Continuous Delivery at Oracle Database Insights

DELIVERY

CONTINUOUS

Page 56: Continuous Delivery at Oracle Database Insights

Deploy:

Time per week:

Consultants:

1 per week

3-4

20h

Every week!

Page 57: Continuous Delivery at Oracle Database Insights

Accumulated cost

0

20

40

60

80

100

120

140

0 1 2 3 4 5 6

Manual Automated

Page 58: Continuous Delivery at Oracle Database Insights

Accumulated cost

0

20

40

60

80

100

120

140

1 2 3 4 5 6 7

Manual Automated

Re invest in CD

Page 59: Continuous Delivery at Oracle Database Insights
Page 60: Continuous Delivery at Oracle Database Insights

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

Page 61: Continuous Delivery at Oracle Database Insights

DELIVERY

CONTINUOUS

Page 62: Continuous Delivery at Oracle Database Insights

Our job is to automatebusiness processes.

Why do we do this

manually?

Page 63: Continuous Delivery at Oracle Database Insights

Photo by Olga Berrios