goal: delight customer with frequent high-quality production releases. scaled agile release strategy...

43
Goal: Delight customer with frequent high- quality production Scaled Agile Release Strategy Presented By: James Carpenter

Upload: damion-ursery

Post on 14-Dec-2015

214 views

Category:

Documents


0 download

TRANSCRIPT

Goal: Delight customer with frequent high-quality

production releases.

Scaled Agile Release StrategyPresented By:

James Carpenter

Goal: Delight customer with frequent high-quality

production releases.

Focus On the Goal

• Hot Deploy• Rollback Strategy• Cadence• Good Testing

• Feature Toggles• Stateless SOA• Backward

CompatibleProtocols

• Independent DeploymentCadence?

Goal: Delight customer with frequent high-quality production releases.

Feature TogglesMainline

(no toggles)

Feature B

Feature A

Feature BFeature A

Mainline(with toggles)

If( cfg.isFeatureAEnabled() ) { //new behavior} else { //old behavior}

Goal: Delight customer with frequent high-quality production releases.

Stateless Services

LoadBalancer

Req. 1

Req. 2

NodeAffinity

Client

ServerNode 1

ServerNode 2

ServerNode 3

Wire ProtocolsV5

V5

OlderServer

(v5)

OlderClient(v5)

Goal: Delight customer with frequent high-quality production releases.

V5

V5

OlderServer

(v5)

OlderClient(v5)

NewerServer

(v6)

NewerClient(v6)

V6

V6

Goal: Delight customer with frequent high-quality production releases.

V5

V5

OlderServer

(v5)

OlderClient(v5)

NewerServer(v5&6)

NewerClient(v6)

V5

V5V6

V6

Goal: Delight customer with frequent high-quality production releases.

Deployment Cadence

Scrum Team 1 Scrum Team 2

System A Code

System B Code

Goal: Delight customer with frequent high-quality production releases.

MainlineSystem A

DC-A 1.1DC-A 1.2

DC-A 2.1DC-A 2.2DC-A 2.3 Scrum Team 1 & 2

MainlineSystem B

DC-B 1.1DC-B 1.2

Goal: Delight customer with frequent high-quality production releases.

Team 2(Scrum)

System A Code

System B Code

Team 3(Kanban)

Team 1(Scrum)

Team 4(Waterfall)

3rd Party 1(Crazy)

3rd Party 2(RUP)

Remote(XP)

Team 8(RUP)

Automated Unit Tests (5 minutes)

Automated Integration Tests (1 hour)

Automated GUI Tests (2 hours)

Manual Smoke Test (3 hours)

Automated Load Tests (1 day)

MainlineSystem A

DC-A 1.1

DC-A 1.2

DC-A 2.1DC-A 2.2

DC-A 2.3All Teams

MainlineSystem B

DC-B 1.1

DC-B 1.2RIP

RIP

RIP

Goal: Delight customer with frequent high-quality production releases.

MainlineSystem A

DC-A 1.1

DC-A 1.2

DC-A 2.1DC-A 2.2

DC-A 2.3

RIP

RIP

MainlineSystem A

DC-A 1.1DC-A 1.2

DC-A 2.1DC-A 2.2DC-A 2.3

Goal: Delight customer with frequent high-quality production releases.

Goal: Delight customer with frequent high-quality production releases.

Client LB

X1

X2

X3

DB-X

LB

Y1

Y2

Y3

DB-Y

LB

Z1

Z2

Z3

DB-Z

Goal: Delight customer with frequent high-quality production releases.

Client LB

X1

X2

X3

DB-X

System is OnlineWith Old Version

Goal: Delight customer with frequent high-quality production releases.

Client LB

X1

X2

X3

DB-X

DefineFeature Toggle in Off Position

Goal: Delight customer with frequent high-quality production releases.

Client LB

X1

X2

X3

DB-X

ExecutePre-Deploy DB Script

Goal: Delight customer with frequent high-quality production releases.

Client LB

X1

X2

X3

DB-X

Remove X1 From Rotation

Goal: Delight customer with frequent high-quality production releases.

Client LB

X1

X2

X3

DB-X

Shutdown X1

Goal: Delight customer with frequent high-quality production releases.

Client LB

X1

X2

X3

DB-X

Upgrade X1

Goal: Delight customer with frequent high-quality production releases.

Client LB

X1

X2

X3

DB-X

Startup X1

Goal: Delight customer with frequent high-quality production releases.

Client LB

X1

X2

X3

DB-X

Place X1 Back IntoRotation

Goal: Delight customer with frequent high-quality production releases.

Client LB

X1

X2

X3

DB-X

Remove X2 From Rotation

Goal: Delight customer with frequent high-quality production releases.

Client LB

X1

X2

X3

DB-X

Shutdown X2

Goal: Delight customer with frequent high-quality production releases.

Client LB

X1

X2

X3

DB-X

Upgrade X2

Goal: Delight customer with frequent high-quality production releases.

Client LB

X1

X2

X3

DB-X

Startup X2

Goal: Delight customer with frequent high-quality production releases.

Client LB

X1

X2

X3

DB-X

Place X2 Back IntoRotation

Goal: Delight customer with frequent high-quality production releases.

Client LB

X1

X2

X3

DB-X

Remove X3 From Rotation

Goal: Delight customer with frequent high-quality production releases.

Client LB

X1

X2

X3

DB-X

Shutdown X3

Goal: Delight customer with frequent high-quality production releases.

Client LB

X1

X2

X3

DB-X

Upgrade X3

Goal: Delight customer with frequent high-quality production releases.

Client LB

X1

X2

X3

DB-X

Startup X3

Goal: Delight customer with frequent high-quality production releases.

Client LB

X1

X2

X3

DB-X

Place X3 Back IntoRotation

Goal: Delight customer with frequent high-quality production releases.

Client LB

X1

X2

X3

DB-X

ExecutePost-Deploy DB Script

Goal: Delight customer with frequent high-quality production releases.

Client LB

X1

X2

X3

DB-X

FlipFeature Toggle to On Position

Goal: Delight customer with frequent high-quality production releases.

Client LB

X1

X2

X3

DB-X

System is OnlineWith New Version

1. Define Feature Toggles (Toggles: Off)2. Execute Pre-Deploy DB Script3. Per-Node Deployment

a. Remove from rotationb. Shutdownc. Upgraded. Startupe. Return to rotation

4. Execute Post-Deploy DB Script5. Feature Toggles On

• Partial Deployment• Minimize Permutations• Rollback• Automation• Momentum• Abandoned Toggles

Questions?

James [email protected]://www.linkedin.com/in/jamescarpenter1