430 likes | 564 Views
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.
E N D
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.
Hot Deploy • Rollback Strategy • Cadence • Good Testing
Feature Toggles • Stateless SOA • Backward • Compatible • Protocols • Independent Deployment • Cadence?
Feature Toggles Goal: Delight customer with frequent high-quality production releases. Mainline (no toggles) Mainline (with toggles) Feature A Feature A Feature B Feature B If( cfg.isFeatureAEnabled() ) { //new behavior } else { //old behavior }
Stateless Services Goal: Delight customer with frequent high-quality production releases. Server Node 1 Req. 1 Node Affinity Req. 2 Client Server Node 2 Load Balancer Server Node 3
Wire Protocols V5 Older Server (v5) Older Client (v5) V5 Goal: Delight customer with frequent high-quality production releases.
V5 Older Server (v5) Older Client (v5) V5 V6 Newer Server (v6) Newer Client (v6) V6 Goal: Delight customer with frequent high-quality production releases.
V5 Older Server (v5) Older Client (v5) V5 V5 V6 V5 Newer Server (v5&6) Newer Client (v6) V6 Goal: Delight customer with frequent high-quality production releases.
Scrum Team 1 Scrum Team 2 System B Code System A Code Goal: Delight customer with frequent high-quality production releases.
Mainline System A Mainline System B DC-A 2.3 Scrum Team 1 & 2 DC-A 2.2 DC-A 2.1 DC-A 1.2 DC-A 1.1 DC-B 1.2 DC-B 1.1 Goal: Delight customer with frequent high-quality production releases.
Team 2 (Scrum) Team 4 (Waterfall) Team 1 (Scrum) Team 3 (Kanban) System A Code System B Code 3rd Party 2 (RUP) Remote (XP) Team 8 (RUP) 3rd Party 1 (Crazy)
Automated Load Tests (1 day) Manual Smoke Test (3 hours) Automated GUI Tests (2 hours) Automated Integration Tests (1 hour) Automated Unit Tests (5 minutes)
Mainline System A Mainline System B DC-A 2.3 All Teams DC-A 2.2 DC-A 2.1 DC-A 1.2 RIP RIP RIP DC-B 1.2 DC-A 1.1 DC-B 1.1 Goal: Delight customer with frequent high-quality production releases.
Mainline System A Mainline System A DC-A 2.3 DC-A 2.3 DC-A 2.2 DC-A 2.2 DC-A 2.1 DC-A 2.1 DC-A 1.2 RIP RIP DC-A 1.2 DC-A 1.1 DC-A 1.1 Goal: Delight customer with frequent high-quality production releases.
Goal: Delight customer with frequent high-quality production releases. Y1 Client Y2 DB-Y LB X1 Z1 Y3 X2 Z2 DB-X DB-Z LB LB X3 Z3
Goal: Delight customer with frequent high-quality production releases. System is Online With Old Version X1 X2 DB-X Client LB X3
Goal: Delight customer with frequent high-quality production releases. X1 Define Feature Toggle in Off Position X2 DB-X Client LB X3
Goal: Delight customer with frequent high-quality production releases. Execute Pre-Deploy DB Script X1 X2 DB-X Client LB X3
Goal: Delight customer with frequent high-quality production releases. Remove X1 From Rotation X1 X2 DB-X Client LB X3
Goal: Delight customer with frequent high-quality production releases. Shutdown X1 X1 X2 DB-X Client LB X3
Goal: Delight customer with frequent high-quality production releases. Upgrade X1 X1 X2 DB-X Client LB X3
Goal: Delight customer with frequent high-quality production releases. Startup X1 X1 X2 DB-X Client LB X3
Goal: Delight customer with frequent high-quality production releases. Place X1 Back Into Rotation X1 X2 DB-X Client LB X3
Goal: Delight customer with frequent high-quality production releases. Remove X2 From Rotation X1 X2 DB-X Client LB X3
Goal: Delight customer with frequent high-quality production releases. X1 Shutdown X2 X2 DB-X Client LB X3
Goal: Delight customer with frequent high-quality production releases. X1 Upgrade X2 X2 DB-X Client LB X3
Goal: Delight customer with frequent high-quality production releases. X1 Startup X2 X2 DB-X Client LB X3
Goal: Delight customer with frequent high-quality production releases. Place X2 Back Into Rotation X1 X2 DB-X Client LB X3
Goal: Delight customer with frequent high-quality production releases. Remove X3 From Rotation X1 X2 DB-X Client LB X3
Goal: Delight customer with frequent high-quality production releases. X1 X2 DB-X Client LB Shutdown X3 X3
Goal: Delight customer with frequent high-quality production releases. X1 X2 DB-X Client LB Upgrade X3 X3
Goal: Delight customer with frequent high-quality production releases. X1 X2 DB-X Client LB Startup X3 X3
Goal: Delight customer with frequent high-quality production releases. Place X3 Back Into Rotation X1 X2 DB-X Client LB X3
Goal: Delight customer with frequent high-quality production releases. Execute Post-Deploy DB Script X1 X2 DB-X Client LB X3
Goal: Delight customer with frequent high-quality production releases. X1 Flip Feature Toggle to On Position X2 DB-X Client LB X3
Goal: Delight customer with frequent high-quality production releases. System is Online With New Version X1 X2 DB-X Client LB X3
Define Feature Toggles (Toggles: Off) • Execute Pre-Deploy DB Script • Per-Node Deployment • Remove from rotation • Shutdown • Upgrade • Startup • Return to rotation • Execute Post-Deploy DB Script • Feature Toggles On
Partial Deployment • Minimize Permutations • Rollback • Automation • Momentum • Abandoned Toggles
Questions? James Carpenter jcarpenter621@yahoo.com http://www.linkedin.com/in/jamescarpenter1