Beyond Continuous Delivery at DevOpsDays Rome 2012

Preview:

DESCRIPTION

My Beyond Continuous Delivery presentation as delivered at DevOpsDays Rome 2012

Citation preview

Beyond Continuous Delivery

Chris Hilton

ThoughtWorks

chilton@thoughtworks.com

Continuous Delivery

• Frequent, automated releases

• Every check-in is a potential release

• Every change triggers feedback

• Feedback must be received as soon

as possible

• Automate almost everything

• Build quality in

Assumptions

• Trunk-based development

• Continuous

integration/delivery/deployment

• Cloud computing

– Cheap

– Unlimited

App WAR

A JAR

Common JAR

B JAR

Dependency Management

and Modular Development

App WAR

A JAR

Common JAR

B JAR

Dependency Management

and Modular Development

Base VM

Isolation Tests

IT Scripts

Env Scripts App WAR

A JAR

Common JAR

B JAR

Infrastructure as Code

Application InfrastructureIntegration

Base VM

Isolation Tests Isolation Tests

Integration Tests

Other App Env Scripts

IT Scripts

Env Scripts App WAR

A JAR

Common JAR

B JAR

Infrastructure as Code

Application InfrastructureIntegration

Base VM

Isolation Tests Isolation Tests

Production

Staging

Integration Tests

Other App Env Scripts

IT Scripts

Env Scripts App WAR

A JAR

Common JAR

B JAR

Infrastructure as Code

Application InfrastructureIntegration

Base VM

Isolation Tests Isolation Tests

Production

Staging

Integration Tests

Other App Env Scripts

IT Scripts

Env Scripts App WAR3.5

A JAR2.1

Common JAR4.1

B JAR1.3

2.1 : 2.0+ 1.3 : 1.0+

4.1 : 4.0+ 4.1 : 4.0+

Semi-Fluid Dependencies

Application InfrastructureIntegration

Base VM

Isolation Tests Isolation Tests

Production

Staging

Integration Tests

Other App Env Scripts

IT Scripts

Env Scripts App WAR3.5

A JAR2.2

Common JAR4.2

B JAR1.3

2.1 : 2.0+ 1.3 : 1.0+

4.2 : 4.0+ 4.1 : 4.0+

2.2

4.2

Semi-Fluid Dependencies

Application InfrastructureIntegration

Semi-Fluid Dependencies

Base VM

Isolation Tests Isolation Tests

Production

Staging

Integration Tests

Other App Env Scripts

IT Scripts

Env Scripts App WAR3.6

A JAR2.3

Common JAR4.3

B JAR1.4

2.3 : 2.0+ 1.4 : 1.0+

4.3 : 4.0+ 4.3 : 4.0+

Application InfrastructureIntegration

Cloneable Pipelines

Application InfrastructureIntegration

Base VM

Isolation Tests Isolation Tests

Production

Staging

Integration Tests

Other App Env Scripts

IT Scripts

Env Scripts App WAR3.6

A JAR2.3

Common JAR4.3

B JAR1.4

2.3 : 2.0+ 1.4 : 1.0+

4.3 : 4.0+ 4.3 : 4.0+

Staging

Integration Tests

Isolation Tests

App WAR

A JAR B JAR

Common JAR

Pre-Flight Pipelines

Base VM

Isolation Tests Isolation Tests

Production

Staging

Integration Tests

Other App Env Scripts

IT Scripts

Env Scripts App WAR3.6

A JAR2.3

Common JAR4.3

B JAR1.4

2.3 : 2.0+ 1.4 : 1.0+

4.3 : 4.0+ 4.3 : 4.0+

Staging

Integration Tests

Isolation Tests

App WAR

A JAR B JAR

Common JAR

Application InfrastructureIntegration

Pre-Flight Pipelines

Base VM

Isolation Tests Isolation Tests

Production

Staging

Integration Tests

Other App Env Scripts

IT Scripts

Env Scripts App WAR3.6

A JAR2.3

Common JAR4.3

B JAR1.4

2.3 : 2.0+ 1.4 : 1.0+

4.3 : 4.0+ 4.3 : 4.0+

Staging

Integration Tests

Isolation Tests

App WAR

A JAR B JAR

Common JAR

Application InfrastructureIntegration

Pre-Flight Pipelines In Action

trunk

Pre-Flight Pipelines In Action

trunk

devops A

Pre-Flight Pipelines In Action

trunk

devops A

devops B

Pre-Flight Pipelines In Action

trunk

devops A

devops B

Pre-Flight Pipelines In Action

trunk

devops A

devops B

Pre-Flight Pipelines In Action

trunk

devops A

devops B

Pre-Flight Pipelines In Action

trunk

devops A

devops B

devops C

Pre-Flight Pipelines In Action

trunk

devops A

devops B

devops C

Evergreen Trunks

n

n + 1

Quantum Pipelines

n

n + 1

n + 2 n + 1 + 2

n + 2

Quantum Pipelines

n

n + 1

n + 2 n + 1 + 2

n + 2 -

Quantum Pipelines

n

n + 1

n + 2 n + 1 + 2

n + 2

n + 3 n + 1 + 2 + 3

n + 2 + 3

n + 1 + 3

n + 3

-

--

Evergreen Trunks

n

n + 1

n + 2 n + 1 + 2

n + 2

n + 3 n + 1 + 2 + 3

n + 2 + 3

n + 1 + 3

n + 3

-

--

-

Cross-Project Pipelines

Common JAR

WAR

Swarm Builds

Build Service

Common JAR

Common JAR(same revision)

Common JAR+ Change

Extreme Integration

trunk

extreme

workspace

Extreme Integration

trunk

extreme

workspace

Extreme Integration

trunk

extreme

workspace

Cloud IDE

IDE

Dev

QA

Ops

Prod

Project Manager

Prod

Project Manager

Prod

Project Manager

Infra

Prod

Operations

Infra

Prod

Operations

Infra

Prod

Operations

Infra

Prod

Operations

Infra

Prod

JAR

Back-end Developer

Infra

Prod

JAR

Back-end Developer

Infra

Prod

JAR

Back-end Developer

Infra

Prod

JAR

Back-end Developer

Infra WAR

Prod

JAR

Web Developer

Infra WAR

Prod

JAR

Web Developer

Infra WAR

Prod

JAR

Web Developer

Infra WAR

Prod

JAR

Web Developer

Infra WAR

Prod

JAR

Operations

Infra WAR

Prod

JAR

Operations

Infra WAR

Prod

JAR

Operations

Infra WAR

Prod

JAR

Operations

Beyond Continuous Delivery

Chris Hilton

chilton@thoughtworks.com

Graphics: Matthew Tobiasz

mtobiasz@thoughtworks.com

WE’RE HIRING!

SEND RESUMES!