GAE:多个模块与多个应用程序

时间:2016-05-10 13:24:50

标签: google-app-engine architecture

App Engine允许您在单个应用程序中拥有多个模块。我试图了解这有什么好处,而不是有多个App Engine项目。

在我的情况下,我有三个组件

  • 执行所有处理,存储所有数据并可通过REST API访问的后端组件
  • 第一个域名下可能不需要自己的数据存储区的第一个前端(例如,请求处理程序)组件
  • 第二个域名下的第二个前端组件,也可能不需要自己的数据存储区。

无论我使用多个模块还是多个应用程序,组件之间的通信都是使用HTTP请求完成的。

使用模块,所有模块都使用相同的数据存储和内存缓存,但是对于不同的项目,它们每个都有自己的内存缓存和数据存储。我不认为这对我很重要,因为只有后端组件需要数据存储区。

我倾向于使用单独的应用程序而不是单独的模块,因为完全分离似乎更容易。

有什么理由我更喜欢单独的应用程序而不是模块,反之亦然?

1 个答案:

答案 0 :(得分:1)

这个问题在某种程度上是基于意见的,但是有更多的理由可以使用services(因为它们现在已知)而不是单独的项目

您引用了问题的主要原因:共享后端服务。虽然你认为并不重要,因为他们可能不需要数据存储,但我宁愿假设他们将来可能需要它们而不是(和然后必须通过您的其他应用程序的HTTP接口而不是直接数据存储RPC集成。

通过在同一个项目中使用不同的服务,您可以通过服务帐户之类的东西更简单地访问其他Cloud Platform服务(例如BigQuery)。

您还可以通过Modules Service获取服务发现等内容。如果您要作为单独的项目进行部署,App Engine将无法了解您的项目。

通过使用单独的项目,您可以获得与使用服务相同的分离,但放弃了上述优势。

有些人可能希望使用单独的项目从额外的28个免费实例时间中受益,但这不是我喜欢的长期设计目标。