Progressive Delivery | Canary & Blue-Green Deployments
Deploy safely with canary releases, blue-green deployments, and feature flags. Learn rollback strategies and gradual rollout patterns for low-risk releases.
9 min read
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 ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ