2016-02-09 32 views
0

可擴展的架構我已經部署了MEAN堆棧應用(不使用任何手段的框架)對谷歌計算引擎。目前,它的部署在單個N1-標準-1的虛擬機(1個虛擬CPU + 3.75GB存儲器)部署MEAN堆棧對谷歌Compute Engine的

在裏面,我是運行4個碼頭集裝箱。分別用於:

  • 反向代理 - 偵聽端口80(HTTP)& 443(HTTPS),然後代理請求到本地運行節點實例(端口3000)
  • web應用程序(的NodeJS + expressjs)
  • MongoDB的
  • Redis的

我用這個作爲我的開發。環境,現在自該網站正在投入生產(表現相當緩慢)。

如何重構這更好的可擴展的架構?

我的解決方案:

  • 部署至少4虛擬機上面的配置。 (每個運行一個Docker容器):反向代理(1 vm),mongodb - (1 vm),redis - (1 vm),app - (多個vm)。 靈活但有點貴?
  • 部署一個更大的vm(更多CPU & RAM)。 比上面更便宜嗎?

理想情況下,我要開始小(以較少的成本)&和規模向上的需求的增長,但結構必須足夠靈活,可以輕鬆擴展。

我可以有一些很好的解決方案嗎?

回答

1

如果您的環境已經被集裝箱化並且您願意保持這種狀態,我可以建議使用Google Container Engine

谷歌集裝箱引擎是運行的Docker容器的強大集羣管理和組織系統。 Container Engine將您的容器安排到集羣中,並根據您定義的要求(例如CPU和內存)自動管理它們。它建立在開源Kubernetes之上。

您將啓動一個由3個節點組成的小羣集(可能是單核心節點),並將您的容器部署爲羣集。您可以擺脫反向代理,因爲Google可以使用'service'的概念爲您做些事情。

當您需要更多資源時,您可以通過向其添加更多節點(實例)來調整集羣的大小。

谷歌HTTP/S負載均衡器可以幫助您終止SSL,散佈在多個節點的負載。