Environments: development, testing and production
Why it matters
“It worked on my machine” is almost always an environment difference: a different version, a missing variable, an existing permission. When the environments are built from the same source, the differences shrink to configuration only.
What differs and what's identical
Identical: versions, structure, the deployment process, the database schema. Different: addresses, secrets, resource size, and data.
Production data isn't copied to test environments as-is. If realistic data is needed — mask it or generate synthetic data. That's both a privacy requirement and hygiene.
Ephemeral environments
An environment created for every change and deleted after the merge dramatically shortens reviews: you can see and not just imagine. It pays off from the second team member onward.
Going deeper
Manage the environments as code so an environment can be reproduced from scratch. The test: if all the servers were deleted this morning, how long would it take to rebuild everything? If the answer isn't known, this isn't infrastructure but a pile of manual actions that accumulated.