1

This is a cross post from https://groups.google.com/d/msg/google-appengine/_a_aHExiZ-A/2oKfuEb9CQAJ

I want to create a Web application with microsevices architecture by using creation of a multiple GAE projects.

https://cloud.google.com/appengine/docs/standard/go/microservices-on-app-engine introduces two types of a way to realize microservices; "multiple services" and "multiple projects".

However, according to Google Cloud Platform Terms of Service (https://cloud.google.com/terms/) ...

3.3 Restrictions Customer will not, and will not allow third parties under its control to (d) create multiple Applications, Accounts, or Projects to simulate or act as a single Application, Account, or Project (respectively) or otherwise access the Services in a manner intended to avoid incurring Fees or exceed usage limits or quotas

I think I can't create multiple GAE projects for microservices to build a single Web Application because a such as the action againsts 3.3 of the Terms of Service. But the document introduces that approarch. I've puzzled about it.

Can I create multiple GAE projects for microservices of a single Web application regardless of the description of the terms?

Maxim
  • 4,075
  • 1
  • 14
  • 23

1 Answers1

2

IMHO your intention is to implement a certain architecture, not to avoid incurring Fees or exceed usage limits or quotas.

The difference should, I think, be pretty obvious for the tech-savvy GAE personnel checking out one's actual GAE usage - your microservices from different projects won't be doing the same thing only in a different context, each "contributing" their quota limits towards a larger effective quota.

Yes, it's true, the free quotas of the projects are combined, but that's just a side effect, not the primary goal.

Even if the apps/services are doing the same thing, there may be OK usage cases. A couple of such examples from Google documentation and referenced in SO posts:

But I'd check first if there is a good reason for using separate apps instead of separate services. Just to reduce potentially unnecessary friction.

And if you want to be super-certain, just contact Google with your particular use case and reasoning supporting it.

Dan Cornilescu
  • 39,470
  • 12
  • 57
  • 97
  • 2
    GCP support here. I would like to reiterate that the limitation applies only if a "third party under [your] control" performs the operation. I agree with [Dan Cornilescu](https://stackoverflow.com/users/4495081/dan-cornilescu): you should be sure that using separate projects instead of services will be the optimal architecture and why. – Rubén C. Nov 26 '18 at 14:08
  • @RubénC. Thanks, but... `the limitation applies only if a "third party under [your] control" performs the operation` Is that for sure? The terms of service says "Customer will not, and will not allow third parties under its control to". I recognized that this restriction is also applied to me. I think I can explain about the reason of choosing separating projects approach. I'll feel relieved if Google gives me a chance to excuse about it when my app behaves suspícious actions for Google. – Kousuke Ebihara Nov 26 '18 at 16:53
  • Based on our discussion, I guess that you are on a development stage. Is the right time to contact support to deeply discuss your pipeline if you are not entirely sure about the best option (if you don't want to discuss it publicly, which we fully understand). Please create a support case or let me know if you want me to create a public issue on your behalf. – Rubén C. Nov 27 '18 at 09:28