Reproducible and Reviewable Infrastructure
coreintermediateInfrastructure as code means the definition of your infrastructure lives in version control, and changes reach production by changing that definition. Two properties follow. Reproducible: you can rebuild the environment from the file, in another Region or another account. Reviewable: a change is a diff someone can read before it happens, not an action someone took in a console.
Think of it as
Console clicks are verbal instructions; a template is a written contract. Both get the work done today. Only one of them can be re-read next year, applied twice with the same result, or disagreed with before it takes effect.
What we're doing: See what "reproducible" buys the first time you need a second environment.
- 1
- Nothing here is wrong on day one. The cost is entirely deferred to the first time someone needs a second copy or a rebuild.
- 5
- The dangerous part is not the effort — it is that the environments differ in ways nobody can enumerate, so testing in staging stops meaning anything.
Why this works: Reproducibility is not an aesthetic preference. It is what makes staging a valid test of production, what makes disaster recovery a rehearsal instead of an improvisation, and what makes a Region migration a parameter change instead of a project.
Making an emergency change in the console and not backporting it
Wrong
Better
What you see: The next stack update silently reverts the emergency fix, because the template still says the old value and CloudFormation applies what the template says.
Why: An IaC tool reconciles reality toward the definition. A hand-made change that is not reflected in the definition is not preserved — it is scheduled for deletion at the next deployment, at a moment nobody will connect to the change.
- Console change
- Reviewed after the fact, if at all
- Reproducible only from memory
- Rollback means remembering the old value
- Environments drift apart silently
- Infrastructure as code
- Reviewed as a diff before it applies
- Rebuildable in another account or Region
- Rollback is reverting a commit
- Drift is detectable, because there is a definition to compare against
Remember: Infrastructure as code buys two things: reproducibility (rebuild it elsewhere from the file) and reviewability (read the diff before it applies). Both depend on the code being the only path to production — otherwise the definition drifts into fiction.
See also: cloudformation fundamentals · choosing one tool deeply · instance replacement over hand tuning

