← Selected work
Case study · Release engineering · forward-deployed

Per-request canary deployment

A canary rollout for a multi-tenant backend: promote or roll back the whole release with a single command. Built from inside a codebase I'd never seen before.

Role: deployment design + runbook·Mode: forward-deployed·Stack: Kubernetes · nginx-ingress · Kustomize

The assignment

Drop into an unfamiliar Kubernetes codebase and make releases safe: a way to ship a new version to a slice of real traffic, watch it, and either promote it to everyone or pull it fast — no 20-step checklist that only one person knows.

The key decision

There are two common ways to split traffic for a canary, and they are not equivalent:

I chose per-request splitting using nginx-ingress canary annotations, with a Kustomize stable/canary overlay. The split is a number you set, not an emergent property of the cluster, so it stays correct when pods scale up or down.

What I built

Promote
One command. Canary becomes stable; no hand-edited manifests.
Roll back
One command. After logs are captured, not before.
Traffic split
Decoupled from pod count. Survives autoscaling.
Operator load
A runbook, not tribal knowledge.

The hardening plan I left behind

Shipping the mechanism is half the job; the other half is making it boring and safe to run repeatedly:

Forward-deployed work is judged on one thing: can the team operate what you built after you leave? That's why the runbook mattered as much as the rollout.
Kubernetesnginx-ingressKustomize overlaysMakefile release flowIncident runbook