MongoDB 6.0。你现在应该升级吗?
MongoDB是一个跨平台、面向文档的NoSQL数据库。它的开发是为了满足对易于使用但性能非常好、可扩展和内容无关的存储日益增长的需求。MongoDB已经被从银行到社交媒体等任何地方的应用开发的工程师广泛采用。不幸的是,在2017年MongoDB公司上市后,他们选择了一条激进的货币化道路,将许可证改为SSPL (这是一种对你不利的许可证模式),并推广Atlas(MongoDB的数据库即服务(DBaaS)解决方案),甚至超过了昂贵的MongoDB Enterprise。该公司把社区的用户需求远远抛在了迎合高端企业客户的后面,让MongoDB社区陷入了困境。
提供 Percona Server for MongoDB(PSMDB)--一个基于MongoDB社区版(CE)的源码可用的MongoDB替换数据库,并在此基础上增加Percona开发的企业功能。
我们还要记住,虽然MongoDB公司选择将MongoDB CE转移到SSPL,但并不尊重他们的用户必须面对的合规性和审批程序,而Percona与MongoDB公司不同,
为MongoDB的备份和恢复提供了一个免费的开源产品。Percona Backup for MongoDB(PBM)可以与PSMDB以及(在一定程度上)与MongoDB Inc.的MongoDB社区版和企业版一起使用。
将PSMDB和PBM打包在Percona Distribution for MongoDB中:一个易于部署的MongoDB完整解决方案。
提供Percona监控和管理(PMM),它可以作为MongoDB Ops Manager的一个开源、多数据库的替代品。
开发MongoDB 普罗米修斯导出器,免费提供给需要了解其MongoDB实例情况的任何人(从Grafana到Ansible到Dynatrace)使用,该导出器在业界被开源社区和企业APM工具广泛使用。
提供Percona Operator for MongoDB,这是一个完整的解决方案,用于MongoDB的Percona服务器的容器化环境,包含必要的Kubernetes设置,以保持一致的PSMDB实例(如果你不确定在Kubernetes中运行MongoDB是否适合你,请查看解决方案的优点和缺点)。
我认为可以说,这个名单是令人印象深刻的。个人、组织、甚至企业都受益于Percona提供的软件是免费和开放的。
一个苦乐参半的版本
看到MongoDB 5.0引入的所有关键bug,感觉它的发布似乎很仓促,让半生不熟的功能进入GA。看着众多可能导致数据损坏的关键问题,你仍然可以说这是IT开发中的一种自然状态,引用爱因斯坦的话。
一个从未犯过错误的人就意味着从未尝试过任何新事物。
说的没错,但是按照The Register的报道,我不会在这里使用这种说法。MongoDB公司推出的 "加速发布节奏 "假定主要的改进是在 "快速发布 "中发布的,只对Atlas(DBaaS)客户开放。MongoDB社区甚至MongoDB企业客户都不会在5.0.x中尝到这些改进,尽管他们有机会尝到5.0中所有的不稳定性、局限性和错误。
当然,MongoDB公司会争辩说,快速发布版是为边缘采用者准备的,它们包括新的功能,而所有的问题都在错误修复、补丁集发布中得到了修复。根据我的经验,并不是只有bug修复才能解决用户问题。想一想发布周期和这样的情况:由于最后期限,一些功能在主要版本中以有限的范围发布。这听起来确实太熟悉了,对吗?现在,这并不是那么糟糕,因为(通过语义版本管理)次要版本会填补缺失的功能,解除限制,并使主要版本中经常进入市场的焦点功能变得完整。在这种情况下,至少如果你是社区版或企业版的 "二等公民用户",就不会这样。快速发布就是语义版本学所说的次要发布。这意味着在下一个主要版本发布之前,你必须忍受这些限制和缺乏的功能,现在只能满足于修复错误的补丁。
考虑到MongoDB 5.0引入了非常有吸引力的功能,比如时间序列集合或者允许自动改变集合的shard-key的resharding。在应用程序设计期间,当初始分片发生时,选择一个好的分片钥匙往往是具有挑战性的。在你的数据库中拥有一个设计不良的分片,对MongoDB的性能意味着一切。就目前而言,要改变它,需要一个手动和繁琐的过程。即使考虑到引入的重新分片的缺点,如过程中的性能和存储开销,它仍然是一个非常诱人的功能,对于许多情况来说,它可能是一个游戏改变者。不幸的是,由于对MongoDB 5.0缺乏信任,而且新的发布节奏没有得到社区的支持,社区往往根本无法从中受益。
Percona等了很久才觉得5.0的发布足够稳定。直到MongoDB 5.0.6 CE在5.0.0发布近半年后,Percona才决定对我们的用户和客户来说已经足够安全。这种第三方的监督是开源所带来的宝贵财富。有像Percona这样的公司站在软件发布的背后,你可以得到额外的好处,即 "免费 "对你的软件进行额外验证。
终期战略
从上一章来看,5.0版本的采用并不像人们所期望的那样令人印象深刻,这并不令人惊讶。在写这篇博文时,Percona收集的遥测数据显示。

MongoDB 4.4 = 47%
MongoDB 4.2 = 17%
MongoDB 5.0 = 15%
MongoDB 4.0 = 13%
随着生命周期的结束,MongoDB 4.x版本信息如下。
4.0 EOL April 2022
4.2 EOL April 2023
4.4 EOL April 2024
加上对5.0明显缺乏信任,我们看到采用MongoDB 4.4的趋势越来越大,在EOL之前给了一些 "喘息空间"。
这是一个公平的策略,是有意义的,但是限制了你获得的价值。如果有另一种方法可以让你获得更多的好处呢?
针对MongoDB 6.0的Percona服务器来了
随着MongoDB 6.0的推出,用户得到了期待已久的MongoDB 5.0的改进和可用性修复,而这些改进和修复之前只有Atlas的客户可以品尝到。在需要用户升级的主要版本的EOL之后,6.0可以成为他们的登陆区。这样,用户可以从新版本的更多高级功能以及更晚的EOL中获益。
快速浏览一下进入MongoDB 6.0的功能,可以看到一系列有趣的功能,比如。

集群之间的同步
可查询的加密功能
时间序列集合的改进
分析的改进
更改流的改进
新的聚合运算符
改进搜索
很明显,并不是所有这些都能进入MongoDB社区版,因为有些是为MongoDB企业版甚至Atlas保留的。
即使没有社区版没有的功能,6.0版本提供的修复功能比不稳定的5.0版本也是一个很大的改进,值得在你的长期更新策略中考虑。
在更新你的社区版时,值得考虑从MongoDB CE迁移到Percona Server for MongoDB。这样你就拥有了MongoDB CE 6.0的所有好处,加上Percona为社区带来的发布周期的优势。随着Percona Server for MongoDB 6.0的即将发布,以及最新发布的Percona Backup for MongoDB 2.0和Percona 监控和管理中对PBM的支持,该解决方案变得完整。在MongoDB社区版已经提供的基础上,再加上内存引擎、广泛的静态数据加密、热备份、LDAP和Kerberos集成等功能,PDMDB提供了一个完整的解决方案,Percona致力于保持开放。请注意,PSMDB 6.0的公告很快就会发布。
现在应该如何做?
我们看到,多年来,一些公司改变了他们的许可证,变得不那么开放,同时又声称自己更开放,这显然是一种营销手段。就其核心而言,Percona选择了坚持开源理念。
多年来,Percona专家在与MongoDB社区版相同的上游代码库的基础上,精心为MongoDB提供了Percona服务器的增量。作为MongoDB CE的直接替代品,PSMDB在其基础上增加的这些企业功能才是它的魅力所在。
内存存储引擎。
支持KMIP。
HashiCorp Vault集成。
静止状态下的数据加密。
审计日志。
使用SASL的外部LDAP认证。
热备份。
相关信息
MongoDB:为什么要为企业付费,既然开源已经对我们来说很普遍了?
在 "DBA的洞察力 "中 5月28日, 2020
Percona Server for MongoDB 3.6.14-3.4现已在2019年10月10日 "MongoDB"上市
适用于MongoDB的Percona服务器3.6.8-2.0现已上市 2018年10月31日在 "MongoDB"
了解Percona的最新情况!
加入50,000多名开源爱好者的行列! 我们的时事通讯提供关于Percona开源软件发布的最新信息、技术资源以及与MySQL、MariaDB、PostgreSQL和MongoDB相关的宝贵文章。获取有关Percona Live、我们的技术网络研讨会以及即将举行的活动和聚会的信息,在那里你可以与我们的专家交谈。
输入你的工作电子邮件地址:*
通过提交我的信息,我同意Percona在向我发送有关Percona服务的通信时使用我的个人数据。我明白,我可以根据Percona的隐私政策.在任何时候退订通信。
原文标题:MongoDB 6.0: Should You Upgrade Now?
原文作者:Jan Wieremjewicz
原文地址:https://www.percona.com/blog/2022/09/21/mongodb-6-0-should-you-upgrade-now/




