Defining servers, databases, and networking in version-controlled files, so environments are created by running the code rather than by clicking through a console.
It makes infrastructure reviewable, repeatable, and recoverable. Hand-built environments drift apart until staging stops predicting production and nobody can rebuild either.
We keep environments in code from the first deploy, review infrastructure changes like application changes, and verify that a full environment can be recreated from the repository alone.