【问题标题】:Google App Engine - Front and Backend Web DevelopmentGoogle App Engine - 前端和后端 Web 开发
【发布时间】:2018-06-13 03:15:29
【问题描述】:

我目前在许多专用主机上管理一组虚拟机,以提供 apache、nginx 和节点实时和开发服务器。这当然需要持续且耗时的维护,以确保安全性和可靠性。我发现更多时间花在维护这个平台上,然后是编写新的令人兴奋的项目。因此,我一直在研究 Google App Engine 以消除管理任何虚拟机的需要,但我正在努力弄清楚如何让它为我工作!

目前,我发现自己的前端主要使用 Angular (v4-5) 进行开发,而后端则使用 nodejs。我的开发 nginx 服务器为我的 angular 应用程序提供动力,并路由到 ng-serve 和运行我的节点应用程序的单独 vm。我使用 PM2 来管理两台服务器上的应用程序。

这很好用!我可以在本地编写代码,通过 rsync 脚本将我的更改推送到服务器,应用程序重新启动并更新更改。更重要的是,我可以在前端和后端之间进行有效的编码!准备好后,我可以轻松地将代码轻松切换到实时服务器 - 很好!

这就是我挣扎的地方......

我似乎无法在一个 App Engine 项目中开发和发布前端和后端代码的版本。

这可能吗?我将如何部署/发布这两个方面?

如果我有两个项目(例如 example.com 和 api.example.com)会更好吗?如果是这样,我可以让这两个项目在开发时相互交谈吗?

我已经并且可以在 App Engine 中创建一个 angular/nodejs 应用程序,但我无法在此托管服务中进行前端和后端开发的基础知识。

我想使用 App Engine 的强大功能,例如版本控制、轻松扩展以及重要的应用部署和更新。此外,将我的所有网站(包括一些旧的 PHP 网站)移至 App Engine。

任何有关此的帮助将不胜感激。谢谢!

【问题讨论】:

  • 我认为您在这里寻找的是服务。 App Engine 提供了一个非常好的microservices architecture,它允许您将前端和后端保持在可以完全独立维护的隔离服务中,并具有自己的版本控制、缩放等。在同一页面的底部,您还可以使用一些比较多服务和多项目方法,了解哪一种更适合您。希望对您有所帮助。

标签: node.js angular google-app-engine


【解决方案1】:

正如@Yandrak3 建议的那样,microservices architecture 是您所需要的。但请记住,该文档与 does not support Node.js 作为运行时环境的 App Engine 标准环境有关。但在部署到App Engine Flexible 时,请牢记微服务架构。

On backend and frontend
Frontendbackend不再用于描述一个产品的表现层和数据访问层App 引擎应用程序。文档中唯一的参考是here。管理您应用程序的service 且配置有automatic scaling 的(VM)实例被视为前端 基础架构的一部分,而配置有manual scaling 的那些被视为后端基础架构
原因是自动缩放是 App Engine 的一项

强大的功能 [...] 易于缩放,

自动呈现您应用的前端,其方式与传入您应用的外部请求的数量成比例。

手动缩放更适合后端操作,您可能希望在其中运行依赖于the state of the memory over time 或其他场景的操作。您可以找到有关缩放类型的更多信息here。请记住,后一个文档属于 App Engine 标准文档,其中包含基本缩放,这是 App Engine 柔性环境中不可用的功能。

关于服务和版本控制
在您的情况下,您的应用程序的 frontendbackend 模块将成为 App Engine Flex 中的两个独立服务。对于每个服务,您可以部署多个版本。更多,解释here
Communication between services,在这种情况下,您的前端后端之间,可以通过它们之间的HTTP请求来完成。
如果下一个问题是来自用户的 HTTP 请求如何到达相应版本的服务(或服务),请查看this document
对于deploy multiple services,您将使用相同的commands,并通过它们的传入配置文件app.yaml 将每个部署和服务分开。

您的问题需要一个包含相当广泛(和深刻)概念范围的回答。希望这个答案是好的开始。

【讨论】:

  • Google App Engine 标准环境现在支持 Node JS。
猜你喜欢
  • 2012-08-06
  • 2018-09-25
  • 2020-09-24
  • 1970-01-01
  • 1970-01-01
  • 2015-10-15
  • 1970-01-01
  • 2018-01-16
  • 1970-01-01
相关资源
最近更新 更多