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
, test
, and prod
.
dev
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
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 production
environments.
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.