Lesson 10 / 25

A Ramp Schedule

Hold, check, advance.

Stages with holding periods

A ramp moves through stages, for example dogfood, opt-in beta, 1%, 5%, 25%, 50% and 100%. Each stage holds long enough to collect meaningful data (enough requests, a full weekly cycle for some products) and ends with a gate check against the guardrails. Advancing should be a deliberate decision, and pausing or stepping back must be easy. Early stages surface obvious problems; later stages reveal rarer issues and load and cost effects.

Small, observed steps

Exposure grows in stages, each with a holding period and a gate check.

Four ideas: ramp schedule, shadow mode, canary comparison, A/B sizing.
Figure 4.1 — Ramp, shadow, canary and A/B.

Printing a ramp schedule, run

I ran this with Python 3 (scipy 1.18.1 where imported) on example numbers, not data from a real product. Holding 7 days of dogfooding, 14 days of opt-in beta (about 1% of users) and 3 to 4 days at each later step gives an earliest full rollout on day 35, if every gate passes.

schedule = [("internal dogfood", 0, 7), ("opt-in beta", 1, 14), ("1%", 1, 3), ("5%", 5, 3),
            ("25%", 25, 4), ("50%", 50, 4), ("100%", 100, 0)]
day = 0
for name, pct, hold in schedule:
    print(f"day {day:>2}: {name:<17} exposure {pct:>3}%  hold {hold} days, then check gates")
    day += hold
print("earliest full rollout: day", day - schedule[-1][2])

Output:

day  0: internal dogfood  exposure   0%  hold 7 days, then check gates
day  7: opt-in beta       exposure   1%  hold 14 days, then check gates
day 21: 1%                exposure   1%  hold 3 days, then check gates
day 24: 5%                exposure   5%  hold 3 days, then check gates
day 27: 25%               exposure  25%  hold 4 days, then check gates
day 31: 50%               exposure  50%  hold 4 days, then check gates
day 35: 100%              exposure 100%  hold 0 days, then check gates
earliest full rollout: day 35

Hold through a full weekly cycle when usage varies

Weekend and weekday traffic can differ; a 2-day hold may miss problems that appear on Monday.

Quick check: What happens at the end of each ramp stage?

  • A gate check against guardrail metrics before advancing
  • Automatic jump to 100%
  • The feature is deleted
  • Metrics are reset without review
Answer

A gate check against guardrail metrics before advancing — Advance only on evidence.