MongoDB Atlas 是一项现代的实时混合多云数据库服务,可简化数据库的部署和管理,让您能够按需在所选云提供商上构建弹性全球应用程序。 我们提供两种不同的部署选项:针对可预测工作负载的 Atlas Core,以及针对不可预测、突发工作负载的 Atlas Infinite。
这两种部署选项使用相同的接口、驱动程序和 API,并且您现有的查询和连接代码在任一选项中均可工作。区别在于它们各自处理计算和存储的方式。Atlas Core 将它们放在同一个节点上,而 Atlas Infinite 将它们分隔为独立的层。选择哪一种取决于工作负载的适用性,使构建者能够灵活地为特定的应用程序需求运行合适的部署选项。
主要结论
- Atlas Core 支持全套 Atlas 功能,可在 Amazon Web Services (AWS)、Microsoft Azure 和 Google Cloud 的 Free、Flex 和 Dedicated 层级上运行。
- 现已推出公开预览版,Atlas Infinite 支持分别扩展计算和存储,因此无需升级到更大的集群层即可增加存储。
- 与 Atlas Core 相比,Atlas Infinite 将扩展时间缩短了 96% 以上,让您可以在几分钟而非几小时内独立扩展计算和存储。
- Atlas Infinite 支持比 Atlas Core 多 10 倍数据的副本集,可在同一基础上从原型扩展到 PB 级,每美元的吞吐量最多可增加 189%。
- 这两种部署选项使用相同的接口、驱动程序和 API,并且 Atlas 也在这两种选项中处理预配、修补、备份、监控和扩展。
目录
- Atlas Core 和 Atlas Infinite 之间有什么区别?
- 什么是 Atlas Core 部署选项?
- 什么是 Atlas Infinite 部署选项?
- 每种部署选项中的扩展如何工作?
- 何时应使用 Atlas Core?
- 何时应使用 Atlas Infinite?
- 常见问题解答
Atlas Core 和 Atlas Infinite 之间有什么区别?
虽然有很多相似之处,但有一个很大的区别:它们各自预配计算和存储的方式
- Atlas Core 部署选项将同一节点上的计算和存储耦合在一起。专用集群可在其当前层级的限制内独立扩展存储;超出这些限制需要扩展到更高的层级。
- Atlas Infinite 部署选项将计算和存储作为独立的层运行,因此您可以添加存储空间而无需更改集群层。
哪种部署选项适合您,取决于您存储的传入数据量以及预测查询量有多困难。这两种选择都不能相互替代,它们是为不同工作负载配置文件而优化的互补架构。
下图对两者进行了比较。
Atlas Core 在每个节点上耦合计算和存储,而 Atlas Infinite 将计算和存储作为单独的层运行。
下表提供了功能并排比较。
考虑两个工作负载特点截然不同的团队。其中一个团队运营的是车队跟踪服务。随着车辆不断生成位置、状态和运营记录,其数据量持续增长,而全天的查询需求则会大幅波动。在出行高峰、发生事故、调度事件或客户活动突然增加时,都可能出现流量峰值。如果计算资源和存储资源必须同步扩展,该团队可能需要同时为两者预留足够的资源以应对峰值需求,从而导致业务较为清闲时资源闲置。Atlas Infinite 非常适合这种场景,因为存储容量可以随着数据集增长,而计算资源则可以扩展以应对突发流量,并在需求下降时相应缩减。
另一个团队在多个区域运行稳定、可预测的支付服务。其流量模式和容量需求非常明确,且它依赖于 Atlas Infinite 尚不支持的功能。Atlas Core 是更好的选择,因为它的资源已完全预配,并且支持此工作负载所需的多区域部署。
什么是 Atlas Core 部署选项?
Atlas Core 是一种 Atlas 集群架构,其中节点同时运行计算和存储。每个承载数据的节点在具有自身存储的虚拟机上保存一份您的数据副本。
Atlas Core 适用于所有 Atlas 部署类型:AWS、Azure 和 Google Cloud 上的免费集群、Flex 集群和专用集群层级。它支持 Atlas 全套功能,包括多区域和多云集群。
Atlas Core 已经能够满足支付团队的需求。他们的工作负载较为稳定,因此他们今天选择的层级以后仍然能够满足需求。他们还需要一个可以跨多个区域运行的集群,而 Atlas Core 支持多区域部署。
什么是 Atlas Infinite 部署选项?
Atlas Infinite 是一种 Atlas 集群架构,将计算与存储分离为相互独立的层。MongoDB 管理存储层,而运行查询的计算节点则连接到该存储层。它专为处理关键任务型、高性能工作负载而设计。
Atlas Infinite 可作为公共预览版使用,因此您可以立即使用它,但在预览期间,产品及其文档可能会发生变化。部分 Atlas 功能尚不支持。
预览还会限制您运行它的位置和规模。 Atlas Infinite 在受支持的地区运行于 AWS 上,适用于 M10 至 M60 副本集,每个副本集均具有 128 TB 的存储容量。
车队跟踪团队的数据在查询流量增加或减少时都会累积,因此在 Atlas Infinite 上,他们可以添加存储空间而无需更改集群层。如果他们已经在 AWS 上,则需要检查其地区是否受支持,以及预览版是否涵盖他们所需的功能。
以下是一些其他关键统计数据:
- 扩展延迟:与 Atlas Core 相比,Atlas Infinite 将扩展时间缩短了 96% 以上。计算和存储在几分钟(而非几小时)内自动独立扩展。
- 存储上限:存储容量增加了 10 倍,Atlas Infinite 能够随您从原型设计扩展到 PB 级规模,并且保持相同的基础设施。按需扩展,在您需要更多性能时扩展,而不是在空间不足时扩展。Atlas Infinite 支持比 Atlas Core 中的副本集多 10 倍数据的副本集。
- 容量规划:Atlas Infinite 可随着业务规模的扩张和收缩实时满足您的需求。与 Atlas Core 相比,Atlas Infinite 在相同硬件上的运行效率更高,因此您的性价比几乎翻倍。
- 重新架构:无需更改应用程序。在同一个数据库上享受更多的弹性和可扩展性。
Atlas Infinite 是一款功能更强大、性能更高的引擎。使用 MongoDB 9.0 进行的内部测试表明,与 Atlas Core 相比,Atlas Infinite 的每美元吞吐量提高了 189%。
每种部署选项中的扩展如何工作?
在 Atlas Core 上,您所在的层级限制了计算和存储。在 Atlas Infinite 上,存储空间无需更换层级即可增加。
架构:在 Atlas Core 上,计算和存储位于同一节点上。 在 Atlas Infinite 上,MongoDB 管理存储层,计算节点与之相连。
计算扩展:在这两种选项中,计算都会随着集群的更改而变化:您选择不同的集群层。在 Atlas Core 上,Atlas 会重启您的节点,在此期间专用集群保持可用。在 Atlas Infinite 上,数据无需迁移,因此更改速度更快。与 Atlas Core 相比,Atlas Infinite 将扩展时间缩短了 96% 以上——在几分钟而非几小时内即可完成扩展。
存储扩展:在 Atlas Core 上,您可以在专用集群上独立于计算来扩展存储,但仅限于层级最大值。 在此之后,您将进入更高级别。 在 Atlas Infinite 上,存储空间与层级无关,且可以独立增加,无需停机。 Atlas Infinite 支持比 Atlas Core 中的副本集多 10 倍数据的副本集,在相同基础上实现了从原型到 PB 级的增长。
水平扩展:分片将您的数据拆分到多个服务器上,因此不会有单台服务器保存所有数据。在 Atlas Core 上,当数据接近层级的存储容量时,您需要进行分片。在 Atlas Infinite 上,一个分片最多可容纳 128 TB,因此您不必为了增加存储而进行分片。预览期间,Atlas Infinite 不提供分片集群。
车队跟踪团队的存储空间会先于计算资源耗尽。他们的数据会持续累积,因此如果使用 Atlas Core,他们会先达到所选层级的存储上限,必须升级到更高的层级才能继续使用。在 Atlas Infinite 上,他们只需增加存储容量,无需更换层级。
何时应使用 Atlas Core?
在以下情况下使用 Atlas Core:
- 您希望使用 Atlas 的完整功能集。
- 您需要多区域或多云集群。
- 您需要分片集群。
Atlas Core 还涵盖了 Atlas Infinite 预览版遗漏的任何内容。如果您要在 Azure 或 Google Cloud 上进行部署,或者需要免费或 Flex 集群,Atlas Core 是支持它的选项。
支付团队使用 Atlas Core。他们的负载很稳定,因此将计算和存储分开对他们来说不会有太大变化,并且他们依赖预览版尚未包含的功能。
何时应使用 Atlas Infinite?
请在以下情况下考虑使用 Atlas Infinite:
- 您希望独立扩展计算和存储,而不会出现扩展延迟(以分钟计,而不是以小时计)。
- 您的工作负载可能会出现难以提前确定大小的峰值。
- 您希望将存储容量增加至 10 倍,而无需扩展集群层或重新架构您的应用程序。
- 您希望性能几乎提高一倍,且每美元的吞吐量提高 189%。
- 您想要更快的故障转移和恢复。
Atlas Infinite 非常适合车队跟踪团队。 他们的数据持续积累,他们的查询量随时间段而波动,在 Atlas Core 上,他们每次存储空间不足时都必须升级到更大的层级。
相关资源
MongoDB 集群类型 — 比较从 M10 起的专用集群层级,并了解自动伸缩如何在您设定的范围内调整容量。
什么是责任共享模式? — 了解您与 MongoDB Atlas 之间如何分配安全性、合规性和维护责任。
MongoDB 分片的工作原理 — 了解当您的存储和吞吐量需求超过单个副本集时,水平扩展如何在多个实例之间分发数据。
MongoDB University — 访问免费的自定进度课程和官方学习路径,涵盖数据库管理、集群管理和应用程序开发。
MongoDB 基础知识和开发者教程 — 探索有关数据库设置、document model 设计和基本 CRUD 操作的基础指南。
