【问题标题】:how should I architecture an API and front app in Google App Engine?我应该如何在 Google App Engine 中构建 API 和前端应用程序?
【发布时间】:2019-05-18 16:54:59
【问题描述】:

我正在开发我的第一个部署到 GAE 的 node.js 应用程序。

它将被组织为一个 API 服务和一个使用 Next.js 开发的前端 Web 应用程序

我正在研究这种架构,虽然我将应用程序分隔在两个存储库中,但我可以合并一个存储库来创建两个不同的微服务:

https://medium.com/this-dot-labs/node-js-microservices-on-google-app-engine-b1193497fb4b

对我来说,创建一个新的 repo 来合并它们并进行部署似乎工作过度(它不会破坏微服务进行隔离部署的基本理念之一吗?)

我不鼓励这样做,因为我们在某些部分需要 SEO,我们应该使用 Next.js(或类似的):

https://cloud.google.com/storage/docs/hosting-static-website

我一直在研究的另一个想法是……为前端和 API 创建不同的 GAE 项目以独立部署。对我来说,这似乎是最好的选择,但我想知道您作为 GAE 专家的意见。

我应该使用哪一个?

谢谢!

【问题讨论】:

    标签: node.js google-app-engine deployment architecture google-cloud-platform


    【解决方案1】:

    GAE 不关心如何将代码部署到映射到一个或多个 VCS 存储库(或根本没有存储库)的服务中。这完全取决于您。

    使用单个存储库时,您可能会遇到从 CI/CD 管道部署的困难 - 例如,当仅更改另一个服务时,对一项服务进行不必要的部署。

    那里的许多示例都侧重于应用程序而不是服务,但这些只是这些应用程序的默认服务。就我个人而言,我喜欢将不同服务的代码保存在不同的目录中,请参阅Can a default service/module in a Google App Engine app be a sibling of a non-default one in terms of folder structure? 中捕获的图像(它不再出现在更新的文档页面上)。这还允许轻松映射到多个单独的 VCS 存储库

    对于多个项目与多个服务,这可能会有所帮助:Advantages of implementing CI/CD environments at GAE project/app level vs service/module level?

    您提到的静态网站链接不是 GAE 的一部分,它是 GCS 的一部分 - 一个不同的 GCP 产品。它可以单独使用 - 对于静态网站,但可能很难/不可能:

    • 在其上运行的服务和在 GAE 上运行的服务之间进行通信 - 如果您需要的话
    • 使 2 个服务显示为一个(例如在相同的自定义域名下服务)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-30
      • 2017-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-22
      • 2019-12-15
      相关资源
      最近更新 更多