Table of Contents
Production
Production is the live environment serving real users, distinguished from development (a developer's local machine), staging (a production-like test environment), and CI (automated build). Production has real user data, unpredictable load patterns, and consequences when something breaks.
Staging does not perfectly predict production because configuration, data, load, and OS versions differ. A bug in development costs nothing; a bug in production costs user trust, data integrity, or revenue.
Changes to production must go through a CI/CD pipeline, not manual deployments. Direct database access should be restricted and logged. Feature flags and canary releases limit blast radius from bad deployments. DevOps practices like infrastructure as code reduce environment discrepancies that cause “works on my machine” failures.
This flow ensures changes are tested before production and can be rolled back instantly if needed.
Development (safe to break) ↓ (commit) CI (automated lint, build, test) ↓ (all checks pass) Staging (matches production, safe testing) ↓ (approved) Production (behind feature flags, canary to 5%, then 100%) ↓ (if broken) Rollback (instant, fewest users affected)
