GAE:多个模块与多个应用程序
GAE: multiple modules vs. multiple applications
App Engine 允许您在单个应用程序中拥有多个模块。我正在尝试了解这样做比拥有多个 App Engine 项目有什么好处。
在我的情况下,我有三个组成部分
- 完成所有处理、存储所有数据并可通过 REST API
访问的后端组件
- 第一个域名下的第一个前端(例如,请求处理程序)组件可能不需要自己的数据存储
- 第二个域名下的第二个前端组件可能也不需要自己的数据存储。
无论我使用多个模块还是多个应用程序,组件之间的通信都是使用 HTTP 请求完成的。
对于模块,所有模块都使用相同的数据存储和内存缓存,但对于不同的项目,它们将各自拥有自己的内存缓存和数据存储。我认为这对我来说不重要,因为只有后端组件需要数据存储。
我倾向于使用单独的应用程序而不是单独的模块,因为完全分离似乎更容易。
有什么理由让我更喜欢单独的应用程序而不是模块,反之亦然?
这个问题有点基于意见,但有更多的理由在单独的 项目 .[=12= 上使用 services(现在已知) ]
您在问题中列举了主要原因:共享后端服务。尽管您认为不重要,因为他们可能不需要 Datastore,但我宁愿假设他们将来可能需要它们(然后必须通过其他应用程序的 HTTP 接口而不是直接数据存储 RPC 进行集成)。
通过在同一个项目中使用不同的服务,您可以通过以下方式更轻松地访问其他 Cloud Platform 服务(例如 BigQuery)诸如服务帐户之类的东西。
您还可以通过 Modules Service 获得诸如服务发现之类的东西。如果您要部署为单独的项目,App Engine 无法识别您的项目和我的项目。
通过使用单独的项目,您获得与使用服务几乎相同的分离,但放弃了上述好处。
有些人可能想使用一个单独的项目来从额外的 28 个免费实例小时中受益,但这不是我喜欢的长期设计目标。
App Engine 允许您在单个应用程序中拥有多个模块。我正在尝试了解这样做比拥有多个 App Engine 项目有什么好处。
在我的情况下,我有三个组成部分
- 完成所有处理、存储所有数据并可通过 REST API 访问的后端组件
- 第一个域名下的第一个前端(例如,请求处理程序)组件可能不需要自己的数据存储
- 第二个域名下的第二个前端组件可能也不需要自己的数据存储。
无论我使用多个模块还是多个应用程序,组件之间的通信都是使用 HTTP 请求完成的。
对于模块,所有模块都使用相同的数据存储和内存缓存,但对于不同的项目,它们将各自拥有自己的内存缓存和数据存储。我认为这对我来说不重要,因为只有后端组件需要数据存储。
我倾向于使用单独的应用程序而不是单独的模块,因为完全分离似乎更容易。
有什么理由让我更喜欢单独的应用程序而不是模块,反之亦然?
这个问题有点基于意见,但有更多的理由在单独的 项目 .[=12= 上使用 services(现在已知) ]
您在问题中列举了主要原因:共享后端服务。尽管您认为不重要,因为他们可能不需要 Datastore,但我宁愿假设他们将来可能需要它们(然后必须通过其他应用程序的 HTTP 接口而不是直接数据存储 RPC 进行集成)。
通过在同一个项目中使用不同的服务,您可以通过以下方式更轻松地访问其他 Cloud Platform 服务(例如 BigQuery)诸如服务帐户之类的东西。
您还可以通过 Modules Service 获得诸如服务发现之类的东西。如果您要部署为单独的项目,App Engine 无法识别您的项目和我的项目。
通过使用单独的项目,您获得与使用服务几乎相同的分离,但放弃了上述好处。
有些人可能想使用一个单独的项目来从额外的 28 个免费实例小时中受益,但这不是我喜欢的长期设计目标。