Beyond Continuous Delivery at Agile Tour Montreal 2012

Post on 13-Jul-2015

1,654 views 1 download

Tags:

transcript

Beyond Continuous Delivery

Chris Hilton

ThoughtWorks

chilton@thoughtworks.com

@dirtyagile

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

Modular Development and

Dependency Management

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

Semi-Fluid Dependencies

Semi-Fluid Dependencies

Semi-Fluid Dependencies

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

@dirtyagile

Graphics: Matthew Tobiasz

mtobiasz@thoughtworks.com

WE’RE HIRING! SEND

RESUMES!