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

Goal: Delight customer with frequent high-quality production releases

  • Upload
    kinsey

  • View
    42

  • Download
    0

Embed Size (px)

DESCRIPTION

Goal: Delight customer with frequent high-quality production releases. Scaled Agile Release Strategy. Presented By: James Carpenter. Goal: Delight customer with frequent high-quality production releases. Focus On the Goal. Hot Deploy Rollback Strategy Cadence Good Testing. - PowerPoint PPT Presentation

Citation preview

Page 1: Goal: Delight customer with frequent high-quality production releases

Goal: Delight customer with frequent high-quality

production releases.

Scaled Agile Release StrategyPresented By:

James Carpenter

Page 2: Goal: Delight customer with frequent high-quality production releases

Goal: Delight customer with frequent high-quality

production releases.

Page 3: Goal: Delight customer with frequent high-quality production releases

Focus On the Goal

Page 4: Goal: Delight customer with frequent high-quality production releases

• Hot Deploy• Rollback Strategy• Cadence• Good Testing

Page 5: Goal: Delight customer with frequent high-quality production releases

• Feature Toggles• Stateless SOA• Backward

CompatibleProtocols

• Independent DeploymentCadence?

Page 6: Goal: Delight customer with frequent high-quality production releases

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}

Page 7: Goal: Delight customer with frequent high-quality production releases

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

Stateless Services

LoadBalancer

Req. 1

Req. 2

NodeAffinity

Client

ServerNode 1

ServerNode 2

ServerNode 3

Page 8: Goal: Delight customer with frequent high-quality production releases

Wire ProtocolsV5

V5

OlderServer

(v5)

OlderClient(v5)

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

Page 9: 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.

Page 10: 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.

Page 11: Goal: Delight customer with frequent high-quality production releases

Deployment Cadence

Page 12: Goal: Delight customer with frequent high-quality production releases

Scrum Team 1 Scrum Team 2

System A Code

System B Code

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

Page 13: 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.

Page 14: 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)

Page 15: Goal: Delight customer with frequent high-quality production releases

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)

Page 16: 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.3All Teams

MainlineSystem B

DC-B 1.1

DC-B 1.2RIP

RIP

RIP

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

Page 17: 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.

Page 18: Goal: Delight customer with frequent high-quality production releases
Page 19: 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

Page 20: 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

System is OnlineWith Old Version

Page 21: 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

DefineFeature Toggle in Off Position

Page 22: 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

ExecutePre-Deploy DB Script

Page 23: 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

Remove X1 From Rotation

Page 24: 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

Shutdown X1

Page 25: 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

Upgrade X1

Page 26: 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

Startup X1

Page 27: 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

Place X1 Back IntoRotation

Page 28: 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

Remove X2 From Rotation

Page 29: 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

Shutdown X2

Page 30: 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

Upgrade X2

Page 31: 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

Startup X2

Page 32: 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

Place X2 Back IntoRotation

Page 33: 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

Remove X3 From Rotation

Page 34: 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

Shutdown X3

Page 35: 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

Upgrade X3

Page 36: 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

Startup X3

Page 37: 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

Place X3 Back IntoRotation

Page 38: 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

ExecutePost-Deploy DB Script

Page 39: 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

FlipFeature Toggle to On Position

Page 40: 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

System is OnlineWith New Version

Page 41: Goal: Delight customer with frequent high-quality production releases

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

Page 42: Goal: Delight customer with frequent high-quality production releases

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

Page 43: Goal: Delight customer with frequent high-quality production releases

Questions?

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