goal: delight customer with frequent high-quality production releases. scaled agile release strategy...
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.
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.
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