在Google Compute Engine上部署可扩展的MEAN Stack体系结构

我已经在Google计算引擎上部署了一个MEAN Stack应用程序(不使用任何MEAN框架) 。 目前,它部署在一台n1-standard-1虚拟机上(1个虚拟CPU + 3.75GB内存)

在里面,我正在运行4个docker集装箱 。 一个用于:

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

我正在使用这个作为我的开发。 环境,现在,因为该网站正在生产(performance相当缓慢)。

我如何重构这个更好的可扩展架构?

我的解决scheme

  • configuration上面configuration至less4个vm。 (每个运行一个Docker容器):反向代理(1 vm),mongodb – (1 vm),redis – (1 vm),app – (多个vm)。 灵活,但有点昂贵?
  • 部署一个更大的VM(更多的CPU和RAM)。 比上面更便宜的select?

理想情况下,我想从小规模开始(花费更less),随着需求的增长,规模也会不断扩大,但架构必须足够灵活,才能轻松扩展。

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

如果您的环境已经被集装箱化,并且您愿意这样保留,那么我可以build议使用Google Container Engine 。

Google Container Engine是一个function强大的集群pipe理器和编排系统,用于运行Docker容器。 Container Engine将您的容器安排到集群中,并根据您定义的要求(例如CPU和内存)自动pipe理它们。 它build立在开源的Kubernetes之上 。

您将启动一个由3个节点组成的小型群集(可能是单核心节点),您将将容器部署为群集。 您可能会摆脱反向代理,因为这是Google可以使用“ 服务 ”的概念为您做的事情。

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

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

Interesting Posts