Day 36 of 60
·
Production & continuous
Blue-green & shadow traffic
The cleanest way to validate a rewrite: send the same real production traffic to both old and new, and diff. Behavioral parity, on production data, with zero user risk.
ProblemNew service version is "ready"; but how does it behave on real production traffic?
How it works
Run new version alongside old. Shadow real requests to both; serve only the old. Compare results. Cut over when satisfied.
What it catches
Behavioral regressions invisible in tests. The cleanest way to validate behaviorally identical rewrites.
Tools
Diffy · OSS Istio mirroring · OSS Envoy shadow · OSS
Verdict by project size
Small
Skip
Medium
Opt
Large
Rec
Extra-large
Must
Cost
| Project size | Setup | Maint / mo | Tool / mo | CI / run |
|---|---|---|---|---|
| Small <10k LOC | 0h | 0h | $0 | , |
| Medium 10–100k LOC | 5d | 5h | $0 | , |
| Large 100k–1M LOC | 20d | 25h | $1k | , |
| Extra-large >1M LOC | 80d | 120h | $10k | , |
Setup = engineer-days to first useful run ·
Maint = engineer-hours / month at steady state ·
Tool = out-of-pocket $ / month ·
CI = minutes added (or saved) per pipeline run
Lifecycle & ownership
When in lifecycle
Release Operate Observe
Continuous in prod · Always-on, observing real traffic.
Who owns it
SRE / DevOps / Platform
CI/CD, observability, reliability
Collaborates with: Developer
Reference implementations
-
Diffy
Shadow-traffic comparison service for validating behavioral equivalence.
-
Envoy traffic mirroring
Proxy-level shadow traffic pattern for validating new services.
-
Istio traffic mirroring
Service-mesh request mirroring for production-like validation.
Quick check
Shadow / blue-green traffic is the cleanest way to validate…
One question. Pick the best answer. Your streak is saved locally on this device.
Save the lesson
Download SVG ↓Screenshot for a 1:1, drop it in Slack, or download the SVG.