繁体   English   中英

如何在Google App Engine中构建API和前端应用程序?

[英]how should I architecture an API and front app in Google App Engine?

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

它将作为API服务和使用Next.js开发的前端网络应用进行组织

我正在研究这种体系结构,尽管我将应用程序分为两个存储库,但我可以有一个合并的存储库来创建两个不同的微服务:

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

对我来说,创建一个新的仓库来合并它们并进行部署似乎太劳累了(难道不打破微服务的基本思想之一来进行隔离的部署吗?)

我不得不劝阻这是因为我们在某些部分需要SEO,并且我们应该使用Next.js(或类似的东西):

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

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

我应该使用哪一个?

谢谢!

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

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

那里的许多示例都集中在应用程序而不是服务上,但是这些仅是这些应用程序的默认服务。 就我个人而言,我喜欢将不同服务的代码保存在单独的目录中,请参阅中的图像。就文件夹结构而言,Google App Engine应用程序中的默认服务/模块可以成为非默认服务/模块的兄弟吗? (在更新的文档页面上不再存在)。 这还允许轻松映射到多个单独的VCS存储库

对于多个项目还是多个服务,这可能会有帮助: 在GAE项目/应用程序级别与服务/模块级别上实现CI / CD环境的优势?

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

  • 在运行在其上的服务与运行在GAE上的服务之间进行通信-如果需要的话
  • 使这两项服务显示为一项(例如,以相同的自定义域名提供服务)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM