我目前在许多专用主机上管理一组VM,以提供apache,nginx和节点实时和开发服务器。这当然需要持续且耗时的维护以确保安全性和可靠性。我发现花更多的时间来处理这个平台,然后编写新的令人兴奋的项目。因此,我一直在研究Google App Engine,以消除管理任何虚拟机的需要,但我正在努力找出如何让它为我的功能!
目前我发现自己主要在Angular(v4-5)开发我的前端和nodejs用于后端。我的开发nginx服务器支持我的角度应用程序和路由到ng-serve以及运行我的节点应用程序的单独vm。我使用PM2来管理两台服务器上的应用程序。
这很棒!我可以在本地编写代码,通过rsync脚本将我的更改推送到服务器,应用程序重新启动并更新更新。更重要的是,我可以在前端和后端之间进行情感编码!准备好后,我可以轻松地将代码轻松切换到实时服务器 - 很好!
这是我在努力的地方......
我似乎无法工作如何在一个App Engine项目中开发和发布前端和后端代码的版本。
这可能吗?我将如何部署/发布这两个方面?
我会更好地拥有两个项目,例如example.com和api.example.com吗?如果是这样,我可以让两个项目在开发时互相交流吗?
我已经可以在App Engine中创建一个angular / nodejs应用程序,但我无法在此托管服务中使用前端和后端开发的基础知识。
我想使用App Engine的强大功能,例如版本控制,轻松扩展以及重要的应用程序和更新部署。此外,将我的所有网站(包括PHP中的一些旧网站)移至App Engine。
任何有关这方面的帮助将非常感激。谢谢!
正如@ Yandrak3所说,microservices architecture就是你所需要的。但请记住,该文档与作为运行时环境的does not support Node.js的App Engine标准环境有关。但在部署到App Engine Flexible时,请牢记微服务架构。
在后端和前端 前端和后端不再用于描述App Engine应用程序的表示层和数据访问层。文档中唯一的参考是here。管理使用service配置的应用程序的automatic scaling的(VM)实例被视为前端基础结构的一部分,而配置有manual scaling的实例则被视为后端基础结构。 原因是自动缩放是App Engine的一种
功能强大,易于扩展,
以与传入您应用的外部请求数量相称的方式自动显示您应用的前端。
手动扩展更适合后端操作,您可能希望运行依赖于the state of the memory over time或其他方案的操作。您可以找到有关缩放类型here的更多信息。请记住,后一个文档属于App Engine标准文档,它包括基本扩展,这是App Engine Flexible环境中没有的功能。
关于服务和版本控制
在您的情况下,您的应用程序的前端和后端模块将成为App Engine Flex中的两个独立服务。对于每个服务,您可以部署多个版本。更多,解释here。
Communication between services,在这种情况下,在您的前端和后端之间,可以通过它们之间的HTTP请求来完成。
如果下一个问题是来自用户的HTTP请求如何到达适当版本的服务(或服务),请检查this document。
对于deploy multiple services,您将使用相同的commands,您将通过他们的传入配置文件app.yaml
分离每个部署和服务。
您的问题需要具有相当广泛(和深入)概念的响应。希望这个答案很好。