What is a safe way to shift traffic to a new endpoint variant?
Why B is the answer
Canary or linear traffic shifting with rollback
Gradual shifting limits the impact of a bad release.
In detail
- Canary or linear shifting moves traffic in steps, with rollback.
- Use alarms for automatic rollback.
Use case
An illustrative scenario, not a real incident.
A team moves 10% of traffic to a new variant, watches its alarms, and rolls back when errors rise.
See it in different ways
flowchart LR A["Production traffic"] --> B["Current model answers users"] A --> C["Shadow copy goes to the new model"] C --> D["Compare the results"]
sequenceDiagram participant R as Model Registry participant S as Shadow test participant C as Canary traffic participant P as Production R->>S: Approved version S->>C: Live traffic, with no user impact C->>P: Shift more traffic P-->>C: Roll back if alarms fire
stateDiagram-v2 state "Canary traffic" as s0 state "Full traffic" as s1 state "Rolled back" as s2 [*] --> s0 s0 --> s1: alarms quiet s0 --> s2: alarm fires s1 --> [*] s2 --> [*]
Key point: Shift traffic gradually.
Why the other options are wrong
- A. Ask users to pick a variant
- Users should not choose variants.
- C. All traffic at once, with no alarms
- All at once risks everyone.
- D. Delete the old variant first
- Deleting first removes rollback.

