在 Google Compute Engine 上使用 Nodejs 自动扩展

在 Google Compute Engine 上使用 Nodejs 自动扩展

我正在尝试启动并运行我的后端程序,并且正在寻找省钱的最佳方法,我的应用程序通常在上午 8:30 到晚上 8:30 之间进行 api 请求,早上、午餐和晚上会出现巨大的高峰。

我计划在 Google 计算引擎上设置自动缩放实例组,但在设置过程中遇到了麻烦。

起初我在一个实例上使用 nginx 进行设置,并且我的虚拟机的多个副本都进行负载平衡,但这对我在高峰时段节省资金没有帮助。

因此我研究了自动缩放,我遇到的问题是,我的 VM 使用 docker 容器,其中有 3 个正在运行的容器,一个用于 nginx,一个用于 couchdb,一个用于其他一些后台内容。

我尝试做的是创建一个包含基础工作、所有文件、数据库和所有内容的 instance-001。一旦达到 70% 的负载,它就会自我复制,然后在两者之间进行负载平衡。

问题是我无法让它保留数据并启动副本。在设置好一个实例并使其正常运行后(实例 001),我给它施加了一些负载,迫使它超过 70%,然后它启动了另外两个实例 002 和 003,这两个都是空的干净虚拟机,然后一旦它低于 70%,虚拟机就会被删除,001 和实际数据被删除,剩下 003。

截至目前,我不确定如何设置它来实现扩展和负载平衡。

这些虚拟机只是 1CPU 3G 机器,配有 10GB 的 SSD,用于测试,我遵循https://www.youtube.com/watch?v=TfbEwfYjKl4

它稍微过时了,因为以前它允许你从快照中加载,这就是我以前所做的,但现在不行了。

我最关心的问题是,扩展 CouchDB 设备的最佳生产风格设置是什么。

答案1

为了增加可见性,请根据 Faizan 的评论发布答案。

正如本文前 2 分钟所述视频,后端服务可以像前端一样自动扩展。 要求是后端必须是“无状态的”(数据库不能位于符合后端的实例管理组中)。

详细信息可参见此处为自动缩放器这篇附加文章用于设计。

相关内容