Beyond Continuous Delivery at Agile Tour Montreal 2012

54
Beyond Continuous Delivery Chris Hilton ThoughtWorks [email protected] @dirtyagile

Transcript of Beyond Continuous Delivery at Agile Tour Montreal 2012

Page 1: Beyond Continuous Delivery at Agile Tour Montreal 2012

Beyond Continuous Delivery

Chris Hilton

ThoughtWorks

[email protected]

@dirtyagile

Page 2: Beyond Continuous Delivery at Agile Tour Montreal 2012

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

Page 3: Beyond Continuous Delivery at Agile Tour Montreal 2012

Assumptions

• Trunk-based development

• Continuous

integration/delivery/deployment

• Cloud computing

– Cheap

– Unlimited

Page 4: Beyond Continuous Delivery at Agile Tour Montreal 2012

App WAR

A JAR

Common JAR

B JAR

Modular Development and

Dependency Management

Page 5: Beyond Continuous Delivery at Agile Tour Montreal 2012
Page 6: Beyond Continuous Delivery at Agile Tour Montreal 2012

App WAR

A JAR

Common JAR

B JAR

Dependency Management

and Modular Development

Page 7: Beyond Continuous Delivery at Agile Tour Montreal 2012

Base VM

Isolation Tests

IT Scripts

Env Scripts App WAR

A JAR

Common JAR

B JAR

Infrastructure as Code

Application InfrastructureIntegration

Page 8: Beyond Continuous Delivery at Agile Tour Montreal 2012

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

Page 9: Beyond Continuous Delivery at Agile Tour Montreal 2012

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

Page 10: Beyond Continuous Delivery at Agile Tour Montreal 2012

Semi-Fluid Dependencies

Page 11: Beyond Continuous Delivery at Agile Tour Montreal 2012

Semi-Fluid Dependencies

Page 12: Beyond Continuous Delivery at Agile Tour Montreal 2012

Semi-Fluid Dependencies

Page 13: Beyond Continuous Delivery at Agile Tour Montreal 2012

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

Page 14: Beyond Continuous Delivery at Agile Tour Montreal 2012

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

Page 15: Beyond Continuous Delivery at Agile Tour Montreal 2012

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

Page 16: Beyond Continuous Delivery at Agile Tour Montreal 2012

Pre-Flight Pipelines In Action

trunk

Page 17: Beyond Continuous Delivery at Agile Tour Montreal 2012

Pre-Flight Pipelines In Action

trunk

devops A

Page 18: Beyond Continuous Delivery at Agile Tour Montreal 2012

Pre-Flight Pipelines In Action

trunk

devops A

devops B

Page 19: Beyond Continuous Delivery at Agile Tour Montreal 2012

Pre-Flight Pipelines In Action

trunk

devops A

devops B

Page 20: Beyond Continuous Delivery at Agile Tour Montreal 2012

Pre-Flight Pipelines In Action

trunk

devops A

devops B

Page 21: Beyond Continuous Delivery at Agile Tour Montreal 2012

Pre-Flight Pipelines In Action

trunk

devops A

devops B

Page 22: Beyond Continuous Delivery at Agile Tour Montreal 2012

Pre-Flight Pipelines In Action

trunk

devops A

devops B

devops C

Page 23: Beyond Continuous Delivery at Agile Tour Montreal 2012

Pre-Flight Pipelines In Action

trunk

devops A

devops B

devops C

Page 24: Beyond Continuous Delivery at Agile Tour Montreal 2012

Evergreen Trunks

n

n + 1

Page 25: Beyond Continuous Delivery at Agile Tour Montreal 2012

Quantum Pipelines

n

n + 1

n + 2 n + 1 + 2

n + 2

Page 26: Beyond Continuous Delivery at Agile Tour Montreal 2012

Quantum Pipelines

n

n + 1

n + 2 n + 1 + 2

n + 2 -

Page 27: Beyond Continuous Delivery at Agile Tour Montreal 2012

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

-

--

Page 28: Beyond Continuous Delivery at Agile Tour Montreal 2012

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

-

--

-

Page 29: Beyond Continuous Delivery at Agile Tour Montreal 2012

Cross-Project Pipelines

Common JAR

WAR

Page 30: Beyond Continuous Delivery at Agile Tour Montreal 2012

Swarm Builds

Build Service

Common JAR

Common JAR(same revision)

Common JAR+ Change

Page 31: Beyond Continuous Delivery at Agile Tour Montreal 2012

Extreme Integration

trunk

extreme

workspace

Page 32: Beyond Continuous Delivery at Agile Tour Montreal 2012

Extreme Integration

trunk

extreme

workspace

Page 33: Beyond Continuous Delivery at Agile Tour Montreal 2012

Extreme Integration

trunk

extreme

workspace

Page 34: Beyond Continuous Delivery at Agile Tour Montreal 2012

Cloud IDE

IDE

Dev

QA

Ops

Page 35: Beyond Continuous Delivery at Agile Tour Montreal 2012

Prod

Project Manager

Page 36: Beyond Continuous Delivery at Agile Tour Montreal 2012

Prod

Project Manager

Page 37: Beyond Continuous Delivery at Agile Tour Montreal 2012

Prod

Project Manager

Page 38: Beyond Continuous Delivery at Agile Tour Montreal 2012

Infra

Prod

Operations

Page 39: Beyond Continuous Delivery at Agile Tour Montreal 2012

Infra

Prod

Operations

Page 40: Beyond Continuous Delivery at Agile Tour Montreal 2012

Infra

Prod

Operations

Page 41: Beyond Continuous Delivery at Agile Tour Montreal 2012

Infra

Prod

Operations

Page 42: Beyond Continuous Delivery at Agile Tour Montreal 2012

Infra

Prod

JAR

Back-end Developer

Page 43: Beyond Continuous Delivery at Agile Tour Montreal 2012

Infra

Prod

JAR

Back-end Developer

Page 44: Beyond Continuous Delivery at Agile Tour Montreal 2012

Infra

Prod

JAR

Back-end Developer

Page 45: Beyond Continuous Delivery at Agile Tour Montreal 2012

Infra

Prod

JAR

Back-end Developer

Page 46: Beyond Continuous Delivery at Agile Tour Montreal 2012

Infra WAR

Prod

JAR

Web Developer

Page 47: Beyond Continuous Delivery at Agile Tour Montreal 2012

Infra WAR

Prod

JAR

Web Developer

Page 48: Beyond Continuous Delivery at Agile Tour Montreal 2012

Infra WAR

Prod

JAR

Web Developer

Page 49: Beyond Continuous Delivery at Agile Tour Montreal 2012

Infra WAR

Prod

JAR

Web Developer

Page 50: Beyond Continuous Delivery at Agile Tour Montreal 2012

Infra WAR

Prod

JAR

Operations

Page 51: Beyond Continuous Delivery at Agile Tour Montreal 2012

Infra WAR

Prod

JAR

Operations

Page 52: Beyond Continuous Delivery at Agile Tour Montreal 2012

Infra WAR

Prod

JAR

Operations

Page 53: Beyond Continuous Delivery at Agile Tour Montreal 2012

Infra WAR

Prod

JAR

Operations

Page 54: Beyond Continuous Delivery at Agile Tour Montreal 2012

Beyond Continuous Delivery

Chris Hilton

[email protected]

@dirtyagile

Graphics: Matthew Tobiasz

[email protected]

WE’RE HIRING! SEND

RESUMES!