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.

Environments between development and production can be separated by using multiple App engine projects.

What's next