Depending on your team or the reference you’re reading, it can be easy to get confused on all the environments you need. There are no universally agreed upon names, and the same environment can be used in different contexts.
To clear the confusion, here’s a pattern for how to think about dev environments. Your dev team should have three categories of environments:
dev environments are for active development and local testing. They should be cheap, fast, and easy to create and destroy on a local machine.
test (also known as stage or qa)
test environments are for verifying a working system. They should be easy to create and destroy while also mimicking
production as much as possible. They’re used in CI/CD pipelines, for manual QA, and potentially for internal demos.
production environments are the actual live, running system. If something in the environment breaks and a customer cares, it’s a
production environment. Many demos are actually run in short-lived
Every environment will fall under one of those three categories. No matter the naming conventions used in your context, map the environment to one of those categories and you’ll never be confused again.