Naming Developer Environments

Cloud-based software projects should employ multiple environments. These
environments typically have names like dev, qa, staging, and prod.
It's vital that these environments be completely isolated from one another,
and they typically have very different operator-access permissions.
For example, the development team may have full access to the dev
environment, but only limited access to the prod environment, with all
code deployment driven only by automated scripts. Further, it's
absolutely essential that the data in the different environments stay isolated.

Using multiple App Engine projects suits these requirements perfectly as the
projects provide complete isolation of code and data, and operator permissions
can be managed separately. Because App Engine automatically scales its serving
instances, you only pay for what you use. For example, if your staging
environment is only required one week out of every four, you won't pay for any
serving instance costs for the other three. However, keep in mind that you will
be billed for any data stored in these projects.

Naming environments

If you choose to create your microservices application by using only multiple
services, you can create a single App Engine project for each of your
environments and name them accordingly, such as web-app-dev, web-app-qa,
and web-app-prod.

Alternatively, if you choose to create your microservices application by
using multiple projects, you can achieve the same separation between
environments, but you'll need to use more projects, such as
web-app-dev, web-app-prod, user-service-dev, and user-service-prod.
You will need to use code patterns to ensure that the dev projects only
call other dev projects and the prod projects only call
other prod projects.