首页 > 解决方案 > 关于网站架构以及如何处理 docker 容器的建议

问题描述

我想开始一个项目,但我不知道是否可能(我猜是这样),我想用不同的语言实现 3 个版本的后端和前端,如下图所示。我想对每个“版本”进行 dockerize。到目前为止,一切都很好。

基本架构

我想知道什么是最好的解决方案;是否运行所有容器并将每个容器映射到不同的端口并在单击“切换到角度”之类的按钮时在它们之间切换?

或者一个解决方案,每次我单击“切换到反应”之类的按钮时,它都会启动运行反应应用程序的容器并停止旧的容器。我想这个效率更高,因为只有两个容器在运行(后端和前端),但我不确定是否可以通过单击按钮来启动容器。

第二个问题是我如何处理 X 容器来选择运行哪一个?

我可以在哪里部署这种应用程序?有任何 PaaS 或其他建议吗?

如果您有任何其他建议可以提供,我会很乐意接受

注意:该项目有绝对 0 兴趣,它只是培训和发现技术。

标签: dockerwebarchitecturefrontendbackend

解决方案


所以你可能想研究一下 Kubernetes。Kubernetes 是一种容器编排服务,可让您非常无缝地连接到其他正在运行的容器。因此,例如,您可以运行 6 个容器,每个服务一个,然后能够通过 env 变量在容器之间切换。例如,如果你在 react 容器中运行并且你想使用 Go BE,你可以设置BE_CONTAINER=GO. 然后在您的前端,您将读取 env var 并连接到该正在运行的服务器。

或者,您可以运行 9 个前端,而只运行 3 个后端。每个容器仅与单个后端相关。这显然不太理想,但却是一种选择。

当您刚开始时,Kubernetes 通常是一个非常高级的主题。您必须开始将您的项目视为“大局是什么”和“扩展起来有多容易”。我喜欢 Kubernetes,因为我确实觉得这对你来说可能是一个不错的选择,但它不是唯一的选择。您可以 100% 坚持使用 docker。但是对于您所描述的应用程序,我个人会考虑使用 Kubernetes。


推荐阅读