在托管 MongoDB 服务领域,了解兼容性和功能支持的格局对于保持与供应商无关至关重要。 尽管所有服务都努力实现完整的 MongoDB 兼容性,但实际约束和战略决策通常会导致选择性功能支持。 本文档旨在阐明这些方面,使用 MongoDB Atlas 作为案例研究来说明更广泛的行业实践,包括 Azure DocumentDB 如何应对这些挑战。
托管 MongoDB 服务的现实
MongoDB Atlas 是否确实是 MongoDB?
尽管有这样的看法,MongoDB Atlas 缺乏完全兼容性,未通过 MongoDB 自己的官方测试套件中的近 10%。 不支持的功能包括:
-
管理命令: 例如
setParameter、logRotate和shutdown等操作受到限制或不可用,这影响了完全自定义和控制数据库环境的能力。 -
访问控制命令:限制包括对
createUser用户updateUserdropUser管理、用户管理createRoleupdateRoledropRole、角色管理grantRolesToUserrevokeRolesFromUser以及特权管理的支持不足,以及影响利用这些权限的应用程序。 与 Azure DocumentDB 一样,MongoDB Atlas 要求用户使用第一方解决方案进行访问和角色管理。 -
会话和复制命令:与会话管理(例如
killAllSessions和复制配置)replSetReconfigreplSetInitiate相关的命令受到限制,这可能会影响作灵活性。 -
分片和用户管理:关键分片操作(如
sh.disableBalancing和removeShard)以及用户/角色管理命令(如createUser,dropUser)具有限制。
下层群集(如 M0、M2 和 M5)对命令和功能具有许多其他显著限制。
这些约束突显出一个关键点:托管服务(包括 MongoDB Atlas)必须平衡提供 MongoDB 功能,以确保其平台的稳定性、安全性和性能。
Azure DocumentDB 的方法
Azure DocumentDB 承认这些行业范围内的做法,并采用以客户为中心的 方法来提供支持和兼容性。 我们优先考虑为用户提供最大价值的功能,重点是:
- 性能和可伸缩性: 提供可自定义的性能层、与存储和全局分发分离,以满足不同的工作负荷要求。 将开源 DocumentDB 引擎 (为服务提供支持)的成本节省传递给客户,以节省资金。
- 安全性和符合性: 提供高级安全功能,例如专用链接和 Entra ID 集成,以确保数据保护和符合法规标准。
- 操作灵活性: 支持一组广泛的 MongoDB 功能(97% 的聚合运算符、96% 的查询/投影运算符以及 100% 的更新运算符等),同时使用特定于 Azure 的功能(例如 即时自动缩放 )来增强可用性和管理。
- 透明支持基础结构: 无需与第三方供应商分开复杂且昂贵的支持合同。
- 简化的版本 Azure DocumentDB 为所有服务器版本使用统一代码库,提供依赖于版本的功能,而无需数据库版本升级。
- 全栈 SLA:提供一个 SLA,不仅涵盖数据库应用程序,还包括其运行所在的计算和基础设施,以确保你的安心。
结论
在托管的 MongoDB 服务空间中,由于提供托管服务所需的固有权衡,提供程序无法声明与开源 MongoDB 的绝对兼容性。 Azure DocumentDB 认识到这些行业现实,并选择专注于透明度、客户反馈以及我们的服务的持续演变。 通过了解整个限制,客户可以更好地导航其选项,并选择最适合其需求的解决方案。
Azure DocumentDB 仍然致力于提供可靠、可缩放且安全的平台,以满足新式应用程序的需求,并明确承诺根据客户的实际用例进行改进。
有关 Azure DocumentDB 功能和兼容性的详细信息,请访问我们的 文档。