【问题标题】:Deploying Node + MongoDB API on AWS or GCP在 AWS 或 GCP 上部署 Node + MongoDB API
【发布时间】:2019-10-13 00:36:12
【问题描述】:

我正在开发 Node + MongoDB API,该 API 部署在 Google Cloud Platform 上的 VM 上。目前,数据存储在虚拟机上运行的 MongoDB 实例中。

为生产运行本地 MongoDB 实例是一种好习惯吗?以及提供 MongoDB 的各种云服务相互比较如何?有哪些好的做法可以确保 API 是可扩展的?与 VM 相比,将 API 作为容器部署到 Kubernetes 是否可以提供更好的结果?

【问题讨论】:

  • 一种可能的想法是使用 Google 自己的数据库之一进行数据存储。这些数据库,例如 Google Datastore - cloud.google.com/datastore - 提供托管数据库即服务。您无需管理任何东西,而且扩展功能是内置的。

标签: node.js mongodb amazon-web-services api google-cloud-platform


【解决方案1】:

让服务器和数据库在同一个虚拟机实例中运行对于您想要扩展的服务来说总是一个坏主意。让我们想想,如果您的实例无法再处理发送到的流量数量会怎样?

起初,您可能只是进行垂直缩放,为当前运行的实例添加更多 CPU 和 RAM,是的,这在一段时间内会很好。但它实际上更像是一个临时延长寿命的计划,因为在某些时候,您的实例将无法再进行垂直缩放。水平刻度来了……

必须创建新实例来处理不断增加的流量,您将如何为此设计新实例?

最佳做法是创建一个与第一个看起来完全相同的实例。因此需要将服务器设计为无状态。在这种情况下,您的实例将能够在任意数量的机器上进行扩展。

这就是为什么您不应该让 API 前端和数据库在同一个实例中运行。无法缩放。

那么数据库呢?这很简单。只需简单地将它放在另一个 VM 实例中!如果数据库仍然能够处理请求,您可以在服务器实例之间共享数据库服务器。但是如果数据库端出现瓶颈,你可以用集群左右单独扩展你的mongoDB。

如果您没有时间,可以考虑使用 Heroku Add-On 等即用型服务,例如mongolab,为您管理 MongoDB 实例。

干杯。

【讨论】:

  • 感谢您的回复
猜你喜欢
  • 1970-01-01
  • 2022-11-15
  • 2018-08-09
  • 1970-01-01
  • 2016-04-23
  • 2018-03-12
  • 2016-10-12
  • 2017-01-22
  • 2021-12-13
相关资源
最近更新 更多