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

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.

thinkbridge THE VALIDATION ATLAS DAY 36 OF 60 PRODUCTION & CONTINUOUS Blue-green & shadowtraffic The cleanest way to validate a rewrite: send the same realproduction traffic to both old and new, and diff. Behavioralparity, on production data, with zero user risk. FIVE-MINUTE LESSON · ONE QUICK-CHECK QUESTION There’s a new way there
All 60 days →