Try free
9 min read Guide 816 of 877

Progressive Delivery Strategies

Deploy with confidence. GitScrum helps teams track progressive delivery releases, ensuring features reach users safely and incrementally.

Progressive Delivery Overview

Deployment Strategies

DEPLOYMENT STRATEGIES COMPARED:
┌─────────────────────────────────────────────────────────────┐
│                                                             │
│ BIG BANG DEPLOYMENT (Risky):                               │
│ ────────────────────────────                                │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Old Version ──────────────→ New Version                ││
│ │ 100% users                   100% users                ││
│ │                                                         ││
│ │ All at once, all or nothing                            ││
│ │ Risk: If broken, everyone affected                     ││
│ └─────────────────────────────────────────────────────────┘│
│                                                             │
│ ─────────────────────────────────────────────────────────── │
│                                                             │
│ BLUE-GREEN DEPLOYMENT:                                      │
│ ──────────────────────                                      │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ BLUE (Old) ◄── Traffic ──► GREEN (New)                 ││
│ │   v1.0          switch         v1.1                    ││
│ │                                                         ││
│ │ Two identical environments                             ││
│ │ Switch traffic instantly                               ││
│ │ Easy rollback (switch back)                            ││
│ └─────────────────────────────────────────────────────────┘│
│                                                             │
│ ─────────────────────────────────────────────────────────── │
│                                                             │
│ CANARY DEPLOYMENT:                                          │
│ ──────────────────                                          │
│ ┌─────────────────────────────────────────────────────────┐│
│ │                                                         ││
│ │ Traffic: ──┬──────────────────────────→ Old (95%)      ││
│ │            └────────────────────────→ New (5%)         ││
│ │                   "Canary"                              ││
│ │                                                         ││
│ │ Small percentage gets new version                      ││
│ │ Gradually increase if healthy                          ││
│ │ Detect problems early                                  ││
│ └─────────────────────────────────────────────────────────┘│
│                                                             │
│ ─────────────────────────────────────────────────────────── │
│                                                             │
│ FEATURE FLAGS:                                              │
│ ──────────────                                              │
│ ┌─────────────────────────────────────────────────────────┐│
│ │                                                         ││
│ │ Code deployed to all users                             ││
│ │ Feature enabled for subset                             ││
│ │                                                         ││
│ │ if (featureFlag.enabled("new-checkout")) {             ││
│ │   showNewCheckout();                                   ││
│ │ } else {                                                ││
│ │   showOldCheckout();                                   ││
│ │ }                                                       ││
│ │                                                         ││
│ │ Toggle without deployment                              ││
│ │ Target specific users/groups                           ││
│ └─────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────┘

Canary Releases

Gradual Rollout

CANARY ROLLOUT PROCESS:
┌─────────────────────────────────────────────────────────────┐
│                                                             │
│ ROLLOUT STAGES:                                             │
│ ───────────────                                             │
│                                                             │
│ STAGE 1: Canary (1-5%)                                     │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ █                                               (5%)   ││
│ │ ████████████████████████████████████████████████(95%)  ││
│ │                                                         ││
│ │ Duration: 15-30 minutes                                ││
│ │ Watch: Error rates, latency                            ││
│ │ Criteria: Errors <1%, latency <200ms                   ││
│ └─────────────────────────────────────────────────────────┘│
│                                                             │
│ STAGE 2: Early Adopters (10-25%)                           │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ █████████████                                  (25%)   ││
│ │ ██████████████████████████████████████████     (75%)   ││
│ │                                                         ││
│ │ Duration: 1-2 hours                                    ││
│ │ Watch: Business metrics, user behavior                 ││
│ │ Criteria: Conversion stable, no complaints             ││
│ └─────────────────────────────────────────────────────────┘│
│                                                             │
│ STAGE 3: Majority (50%)                                    │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ █████████████████████████                      (50%)   ││
│ │ █████████████████████████                      (50%)   ││
│ │                                                         ││
│ │ Duration: 2-4 hours                                    ││
│ │ Watch: All metrics stable                              ││
│ │ Criteria: No degradation                               ││
│ └─────────────────────────────────────────────────────────┘│
│                                                             │
│ STAGE 4: Complete (100%)                                   │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ ██████████████████████████████████████████████(100%)   ││
│ │                                                         ││
│ │ Full rollout                                           ││
│ │ Continue monitoring                                    ││
│ │ Keep rollback ready                                    ││
│ └─────────────────────────────────────────────────────────┘│
│                                                             │
│ ─────────────────────────────────────────────────────────── │
│                                                             │
│ AUTOMATED CANARY:                                           │
│ ─────────────────                                           │
│ • Automatic progression based on metrics                  │
│ • Automatic rollback on threshold breach                  │
│ • Human approval gates optional                           │
└─────────────────────────────────────────────────────────────┘

Blue-Green Deployments

Environment Switching

BLUE-GREEN PROCESS:
┌─────────────────────────────────────────────────────────────┐
│                                                             │
│ STEP 1: INITIAL STATE                                      │
│ ─────────────────────                                       │
│ ┌─────────────────────────────────────────────────────────┐│
│ │                                                         ││
│ │ LOAD BALANCER ────────────→ BLUE (v1.0) ◄─ ACTIVE      ││
│ │                                                         ││
│ │                              GREEN (v1.0) ◄─ IDLE      ││
│ │                                                         ││
│ └─────────────────────────────────────────────────────────┘│
│                                                             │
│ STEP 2: DEPLOY TO IDLE                                     │
│ ──────────────────────                                      │
│ ┌─────────────────────────────────────────────────────────┐│
│ │                                                         ││
│ │ LOAD BALANCER ────────────→ BLUE (v1.0) ◄─ ACTIVE      ││
│ │                                                         ││
│ │                              GREEN (v1.1) ◄─ DEPLOYING ││
│ │                                                         ││
│ │ • Deploy new version to GREEN                          ││
│ │ • Run smoke tests                                      ││
│ │ • No user traffic yet                                  ││
│ └─────────────────────────────────────────────────────────┘│
│                                                             │
│ STEP 3: SWITCH TRAFFIC                                     │
│ ──────────────────────                                      │
│ ┌─────────────────────────────────────────────────────────┐│
│ │                                                         ││
│ │ LOAD BALANCER ────────────→ GREEN (v1.1) ◄─ ACTIVE     ││
│ │                                                         ││
│ │                              BLUE (v1.0) ◄─ IDLE       ││
│ │                                                         ││
│ │ • Switch load balancer                                 ││
│ │ • All traffic now to GREEN                             ││
│ │ • BLUE ready for rollback                              ││
│ └─────────────────────────────────────────────────────────┘│
│                                                             │
│ STEP 4: IF PROBLEM - ROLLBACK                              │
│ ─────────────────────────────                               │
│ ┌─────────────────────────────────────────────────────────┐│
│ │                                                         ││
│ │ LOAD BALANCER ────────────→ BLUE (v1.0) ◄─ ACTIVE      ││
│ │                                                         ││
│ │                              GREEN (v1.1) ◄─ INVESTIGATE││
│ │                                                         ││
│ │ • Instant rollback: switch back to BLUE               ││
│ │ • Minimal downtime                                     ││
│ │ • Investigate GREEN at leisure                         ││
│ └─────────────────────────────────────────────────────────┘│
│                                                             │
│ BENEFITS:                                                   │
│ • Instant rollback                                        │
│ • Test in production environment before traffic          │
│ • Zero-downtime deployments                               │
└─────────────────────────────────────────────────────────────┘

Feature Flags

Flag Management

FEATURE FLAG STRATEGIES:
┌─────────────────────────────────────────────────────────────┐
│                                                             │
│ FLAG TYPES:                                                 │
│ ───────────                                                 │
│                                                             │
│ RELEASE FLAG:                                               │
│ Control feature availability                              │
│ • "Show new checkout"                                     │
│ • Short-lived (remove after full rollout)                 │
│                                                             │
│ EXPERIMENT FLAG:                                            │
│ A/B testing                                               │
│ • "Checkout button color test"                            │
│ • Measure impact on metrics                               │
│                                                             │
│ OPERATIONAL FLAG:                                           │
│ Control system behavior                                   │
│ • "Enable cache"                                          │
│ • "Use new API endpoint"                                  │
│                                                             │
│ KILL SWITCH:                                                │
│ Emergency disable                                          │
│ • "Disable payment processing"                            │
│ • Permanent, for emergencies                              │
│                                                             │
│ ─────────────────────────────────────────────────────────── │
│                                                             │
│ TARGETING OPTIONS:                                          │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ FLAG: new-checkout                                     ││
│ │                                                         ││
│ │ TARGETING RULES:                                        ││
│ │                                                         ││
│ │ 1. Internal users (email @company.com)    → ON        ││
│ │ 2. Beta users (opted in)                  → ON        ││
│ │ 3. Premium users                          → 50% ON    ││
│ │ 4. Everyone else                          → 10% ON    ││
│ │                                                         ││
│ │ FALLBACK: OFF                                          ││
│ │                                                         ││
│ │ METRICS: checkout_completion_rate                      ││
│ │ OWNER: @product-team                                   ││
│ │ CREATED: Jan 15, 2025                                  ││
│ │ REVIEW DATE: Feb 15, 2025                              ││
│ └─────────────────────────────────────────────────────────┘│
│                                                             │
│ FLAG LIFECYCLE:                                             │
│ ───────────────                                             │
│ Create → Test → Roll out → Clean up                       │
│                                                             │
│ ⚠️ Remove flags after rollout complete                     │
│ Old flags = technical debt                                │
└─────────────────────────────────────────────────────────────┘

Rollback Strategies

When to Roll Back

ROLLBACK DECISION:
┌─────────────────────────────────────────────────────────────┐
│                                                             │
│ PRE-DEFINE CRITERIA:                                        │
│ ────────────────────                                        │
│                                                             │
│ Set BEFORE deployment, not during incident                │
│                                                             │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ RELEASE: v2.4.0                                        ││
│ │                                                         ││
│ │ ROLLBACK TRIGGERS:                                       ││
│ │                                                         ││
│ │ AUTOMATIC ROLLBACK IF:                                   ││
│ │ • Error rate > 1% (baseline: 0.1%)                    ││
│ │ • p95 latency > 500ms (baseline: 200ms)               ││
│ │ • 5xx responses > 0.5%                                 ││
│ │                                                         ││
│ │ MANUAL REVIEW IF:                                        ││
│ │ • Conversion drops > 5%                                ││
│ │ • Unusual traffic patterns                             ││
│ │ • Customer complaints spike                            ││
│ │                                                         ││
│ │ ACCEPTABLE (No action):                                  ││
│ │ • Metrics within 10% of baseline                       ││
│ │ • Known expected behavior changes                      ││
│ └─────────────────────────────────────────────────────────┘│
│                                                             │
│ ─────────────────────────────────────────────────────────── │
│                                                             │
│ ROLLBACK PLAYBOOK:                                          │
│ ──────────────────                                          │
│                                                             │
│ 1. DETECT: Metric exceeds threshold                       │
│ 2. ALERT: Pager/Slack notification                        │
│ 3. DECIDE: Verify not false positive (1-2 min)           │
│ 4. EXECUTE: Run rollback (automated preferred)            │
│ 5. VERIFY: Confirm metrics recovering                     │
│ 6. COMMUNICATE: Update stakeholders                       │
│ 7. INVESTIGATE: Root cause (after stable)                 │
│                                                             │
│ RULE: Rollback first, investigate later                   │
│ Don't debug in production during outage                   │
└─────────────────────────────────────────────────────────────┘

Tracking Releases

Release Tracking

RELEASE TRACKING IN GITSCRUM:
┌─────────────────────────────────────────────────────────────┐
│                                                             │
│ RELEASE BOARD:                                              │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ PLANNED │ DEPLOYING │ CANARY  │ ROLLING  │ COMPLETE   ││
│ │         │           │         │ OUT      │            ││
│ │ ┌─────┐ │           │ ┌─────┐ │          │ ┌─────┐    ││
│ │ │v2.5 │ │           │ │v2.4 │ │          │ │v2.3 │    ││
│ │ │Jan28│ │           │ │ 25% │ │          │ │Done │    ││
│ │ └─────┘ │           │ └─────┘ │          │ └─────┘    ││
│ │         │           │         │          │            ││
│ └─────────────────────────────────────────────────────────┘│
│                                                             │
│ ─────────────────────────────────────────────────────────── │
│                                                             │
│ RELEASE DETAILS:                                            │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ RELEASE: v2.4.0                                        ││
│ │ STATUS: Canary (25%)                                   ││
│ │                                                         ││
│ │ ROLLOUT PROGRESS:                                        ││
│ │ ████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░  25%          ││
│ │                                                         ││
│ │ METRICS:                                                 ││
│ │ • Error rate: 0.08% (baseline: 0.1%) ✅                ││
│ │ • Latency p95: 185ms (baseline: 200ms) ✅              ││
│ │ • Conversion: 4.2% (baseline: 4.1%) ✅                 ││
│ │                                                         ││
│ │ INCLUDED FEATURES:                                       ││
│ │ • STORY-234: New checkout flow                        ││
│ │ • STORY-245: Payment retry logic                      ││
│ │ • BUG-678: Fix cart calculation                       ││
│ │                                                         ││
│ │ TIMELINE:                                                ││
│ │ 10:00 - Deployed to canary (5%)                       ││
│ │ 10:30 - Metrics healthy, increased to 25%             ││
│ │ 12:00 - Review, plan 50% rollout                      ││
│ │                                                         ││
│ │ OWNER: @jordan                                          ││
│ │ NEXT: Increase to 50% at 12:00 if healthy             ││
│ └─────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────┘