有关网站架构以及如何处理Docker容器的建议

时间:2019-07-16 16:54:51

标签: docker web architecture frontend backend

我想开始一个项目,但是我不知道是否可行(我想是的),我想用不同的语言实现后端和前端的3个版本,如下图所示。我想将每个“版本”泊坞窗化。 到目前为止一切顺利。

Basic Architecture

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

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

第二个问题是我如何处理X容器以选择运行哪个容器?<​​/ p>

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

如果您还有其他建议,我会很乐意接受

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

1 个答案:

答案 0 :(得分:0)

因此,您可能需要研究Kubernetes。 Kubernetes是一个容器编排服务,可让您非常无缝地连接到其他正在运行的容器。因此,例如,您可能有6个容器在运行,每个服务一个容器,然后可以通过env变量在容器之间进行切换。例如,如果您在react容器中运行并且想要使用Go BE,则可以设置function isThree(...args){ args.forEach(val => { if(val === 3){ return true; } else{ return false; } }) }; console.log(isThree(1,2,3,4,5)); 。然后在前端,您将读取env var并连接到该正在运行的服务器。

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

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