在Google Compute Engine上部署MEAN Stack的可扩展架构

时间:2016-02-09 13:14:06

标签: node.js docker google-compute-engine mean-stack

我在google计算引擎上部署了 MEAN Stack app (不使用任何MEAN框架)。目前,它部署在单个n1-standard-1虚拟机(1个虚拟CPU + 3.75GB内存)上。

在其中,我运行4个泊坞容器。一个用于:

  • 反向代理 - 侦听端口80(http)& 443(https)然后代理请求到本地运行的节点实例(端口3000)
  • 网络应用程序(nodejs + expressjs)
  • mongodb的
  • redis的

我用它作为我的开发者。环境,现在,因为该网站正在生产(它的表现很慢)。

如何将其重构为更好的可扩展架构?

我的解决方案:

  • 使用以上配置至少部署4个vm。 (每个运行一个docker容器):反向代理(1 vm),mongodb - (1 vm),redis - (1 vm),app - (多个vm)。 灵活但有点贵?
  • 使用更大的vm(更多CPU和RAM)进行部署。 比上面更便宜?

理想情况下,我想从小开始(成本更低)&并且随着需求的增长而向上扩展,但架构必须足够灵活以便轻松扩展。

我可以有一些好的解决方案吗?

1 个答案:

答案 0 :(得分:1)

如果您的环境已经是容器化并且您愿意保持这种状态,我建议您使用Google Container Engine

Google Container Engine是一个功能强大的集群管理器和业务流程系统,用于运行Docker容器。 Container Engine将容器调度到集群中,并根据您定义的要求(例如CPU和内存)自动管理它们。它建立在开源Kubernetes之上。

您将启动一个包含3个节点的小型集群(可能是单核节点),您将把容器部署为pod。您可以摆脱反向代理,因为这是Google可以使用“service”概念为您做的事情。

当您可能需要更多资源时,您可以通过向其添加更多节点(实例)来调整群集大小。

Google HTTP / S负载均衡器可以帮助您终止ssl并将负载分散到多个节点上。