再见还是再等等 MongoDB (再见还是再见)

再见还是再等等 MongoDB (再见还是再见)

MongoDB,不再是宠儿?

MongoDB 是一款广受欢迎的开源数据库。不同于一般开源软件,MongoDB 创始人一开始就决定使用 GNU AGPLv3 协议来代替 Apache 授权。这个协议要求采用它的人也要照样开源相关源代码。这就限制了很多云厂商不能直接使用开源的 MongoDB,而 MongoDB 自己提供的云服务也因此挣得金钱满钵。

开源软件长久以来一直难以获得足够的商业收入,MongoDB 的这种模式让其在开源软件领域获得了相对来说比较好的回报,也成为了一家成功上市的开源软件公司。更进一步,MongoDB 成功帮助开发者搞定了很多传统关系数据库无法应对的难题,让其迅速成为开发者们的心头好。

直到,MongoDB 宣布修改开源许可协议以后。

企业纷纷说再见近日,macOS 平台的开源包管理系统 Homebrew 宣布 Homebrew-core 公式将移除 MongoDB 支持。

据了解,MongoDB 官方维护了一个定制 Homebrew Tap,Homebrew 则认为自己支持一个不被维护的旧版本意义不大,因此它决定移除 MongoDB。

这是过去一年时间里,又一家选择移除 MongoDB 的组织。

2019 年 1 月中旬,红帽宣布弃用MongoDB。

更早以前,就在 MongoDB 更改协议后不久后,Linux 发行版 Debian 就已经在邮件列表中讨论并决定不使用 SSPL 协议下的软件。

此后,Linux 发行版 Fedora 也宣布将不在存储库中使用 SSPLv1 协议下的软件。

2019 年 1 月,英国卫报在其博客上分享了一篇名为《Bye bye Mongo, Hello Postgres》的文章,分享了其在 2018 年开始的从 MongoDB 迁移的实践经历。

一夜之间,MongoDB 似乎成为了“众矢之的”。修改开源许可协议以后,更是引起了轩然大波。

对于 SSPL 协议的争论点在于:如果使用 SSPL 协议下提供的软件服务,SSPL 要求必须开源所有用于使该软件作为服务提供的程序。MongoDB 变更许可协议背后的利益点是想迫使云厂商使用 MongoDB 的商业云产品。但是事情表明这并没有奏效,反而适得其反。

在以红帽为代表的企业宣布移除 MongoDB 以后,社区对 MongoDB 的前景突然变得悲观起来,不少人甚至直言“MongoDB 要凉”、“MongoDB 走向闭源”。可事实果真如此吗?

开发者却很认可

不同于企业对于 MongoDB 的挥手作别,开发者对于 MongoDB 仍旧不离不弃。

几十年来,关系型数据库(SQL)一直领先于非关系型数据库(NoSQL),但随着 Redis、MongoDB 的异军突起,NoSQL 正在迅速缩小差距。

在 2019 年一份 面向开发者 的数据库调查报告中,MongoDB 以 24.6% 的使用率占据次席,仅次于 MySQL 的 38.9%。遥遥领先于 PostgreSQL(17.4%)、Redis(8.4%)和 Cassandra(3.0%)。

对比之下,数据库引擎排名——DB-Engines Ranking 则将 Oracle、SQL Server 等领导者排在了前 5 位。

在 Stack Overflow 近两年的开发者调查报告中,MongoDB 同样连续入选开发者最喜爱的数据库排行。

在 InfoQ 的调查下,许多读者表示自己多用组合数据库,MySQL、Redis、MongoDB 都在选用的范围之内。

凡此种种,MongoDB 在开发者端的受欢迎程度可见一斑。

没有一种技术天生完美

MongoDB 是最好的选择吗?不是。没有一种技术天生完美,技术选型从来只有最适合,没有最好。

MongoDB 以及文档数据库这一类解决方案,能够帮助人们搞定很多传统关系数据库无法应对的难题:

但它却同样做了很多妥协,出现了不少的问题:

任何为了彻底解决某一项技术的问题而新造的轮子,也不可避免地会产生一些新的问题,这是技术发展的不二定律。社交网络上的各种吹捧与诋毁,不应影响开发者自己的判断。适合你的,就是最好的。

声明:本文来自用户分享和网络收集,仅供学习与参考,测试请备份。