Promotion, GitOps, and “Build Once, Deploy Many”
The vocabulary of modern Continuous Delivery
Modern delivery tries to guarantee one thing:
the same artifact behaves the same everywhere.
That’s why teams talk about “promotion,” “desired state,” and “drift.”
CD vocabulary
Continuous Delivery vs Continuous Deployment
Delivery: always deployable, often requires approval to prod
Deployment: changes go to prod automatically
Gate
A checkpoint before promotion/deploy (tests, approvals, security checks).
Desired state (GitOps)
Git is the source of truth for what should be running.
A controller reconciles reality to match Git.
Drift
When reality differs from desired state.
GitOps teams treat drift as a bug.
IaC (Infrastructure as Code)
Infra defined in code (Terraform, Pulumi, CloudFormation).
Promotion (again, because it matters)
Moving the same artifact forward:
staging → prod, without rebuilding differently.
Why teams love GitOps (in one line)
Instead of “who deployed what,” you get:
“This is the commit that defines production.”
It makes audits, rollbacks, and incident timelines cleaner.
A communication upgrade for deployments
Instead of:
“Deployed latest.”
Say:
“Promoted image 1.9.3 (sha256:…) to prod via ArgoCD sync.”
Clarity scales. Vagueness doesn’t.
Cheat sheet
Gate = must-pass checkpoint
Desired state = what Git says should run
Drift = reality differs
GitOps = controllers reconcile to Git
IaC = infra in code
Promote = same artifact moves forward

