【CSDN 编者按】开源数据库的重要性,早就不言而喻。早期的自由软件开发者和初创公司,很多都受益于开源数据库。伴随着曾经的初创公司羽翼逐渐丰满,它们的开发者文化渗透到整个生态系统中,更多的人开始关注这些初创公司采取的方法,关注开源数据库。本文从各类开源数据库供应商的角度切入,阐述了各自开源的历史和相应的观点。
原文链接:https://www.theregister.com/2022/09/05/open_source_databases/
声明:本文为CSDN翻译,转载请注明来源。
作者 | Lindsay Clark
译者 | 朱珂欣 责编 | 屠敏
出品 | CSDN(ID:CSDNnews)
众所周知,开源模式是数据库市场下的重要趋势之一。根据Stack Overflow 2022年的调查显示,PostgreSQL和MySQL这两个领先的开源关系型数据库的使用率分别是46.5%和45.7%。相较而言,Oracle只有大约12%的开发者使用,DB2的使用率只有2%。由此可见,开源数据库占据领先优势。那么,开源数据库为什么能捕获开发者的心?
21世纪初,网络时代刚刚结束,很多初创公司由于缺乏资金,导致无法负担Oracle和DB2这类昂贵的数据库。开源数据库的出现,给当时Facebook、Uber和Google在内的很多公司提供了便利。他们可以根据需要调整系统,为开源代码做出贡献,同时从社区或其他地方的发展中获益。
数据库咨询公司Percona的首席执行官Peter Zaitsev认为,通过开源的方式,开源软件的用户可以自由终止与供应商的关系,并与其他公司签订合同以开发或支持他们的系统,同时还可以保持对源代码的所有权,避免与供应商锁定。
然而,一些开源数据库公司表示了担忧,如果他们采用FOSS(免费和开源软件)的方法,AWS、谷歌云和微软 Azure之类的公司会简单地复制代码并将其作为托管服务商业化,开源软件背后的公司无法获得收益。但数据管理分析师Gartner副总裁Merv Adrian最近指出,云服务提供商从其开源数据库即服务 (DBaaS) 产品中获得的收入可能远远超过的独立供应商合并。
在本文中,聚焦于开源数据库的重要性,从Yugabyte、DataStax、EDB等数据库供应商的角度,阐述了对开源数据库相应的观点。同时,Exasol 也站在开源对立面,解释了它为什么选择专有模型。
EDB:兼容了社区控制和自由
EDB是一家为PostgreSQL并提供一些专有工具和DBaaS的商业公司。PostgreSQL作为最古老的开源数据库之一,由加州大学伯克利分校的Michael Stonebraker和Lawrence Rowe于1986年提出。它的创始目标之一是实现数据类型、运算符和访问方法的可扩展性。2022 年的Stack Overflow调查中,PostgreSQL不仅成为开发人员中最受欢迎的数据库,而且在DB-Engines排名中位居第四。
PosgreSQL咨询公司首席技术官兼贡献者EDB的Marc Linster表示,PostgreSQL的优势不仅在于许可,还在于吸引开发人员贡献的多样性。PostgreSQL是由EDB合作开发的,还有VMware,Fujitsu,NTT,Microsoft,Amazon等公司进行了投资。虽然核心PostgreSQL项目独立于EDB,但EDB用自己的专有软件来保护和管理数据库。
Marc Linster还表示,Postgres社区做了一些其它社区不会做的事情。例如它不需要像Oracle一样在数据库内部用密码配置文件。但通常客户都有非常具体的需求,在这种情况下,客户可以既拥有Postgres中的所有东西,也可以获得许多PostgreSQL没有的特性。
DataStax:向开源社区发布其云服务的任何种类的扩展
Apache Cassandra最初是由Facebook的工程师Avinash Lakshman和Prashant Malik开发的一个分散的结构化存储系统,用于支持社交媒体公司的收件箱搜索功能。2008年7月,Facebook将Cassandra作为一个开源项目在Google Code上发布,到2010年,它已经成为一个顶级的Apache项目。
Apache Cassandra得到了商业公司DataStax的支持,该公司提供付费DBaaS,但开源项目的想法对公司仍然至关重要,因为开发人员希望在云中获得自由和灵活性。
Datastax的开发者关系副总裁Patrick McFadin表示,没有人喜欢陷入陷阱。开源对开发人员来说非常重要,因为它们希望拥有选择的自由和扩展的自由。包括Cassandra、MySQL和PostgreSQL在内的开源数据库都做得非常好。它们有可以付费的企业版、可以付费的托管服务和免费版本。DataStax的很多客户,他们会同时都买这三者。
Patrick McFadin还补充道,DataStax将向开源社区发布其云服务的任何类型的扩展,因为其付费Cassandra迭代和Apache Cassandra的API之间存在分歧。这也意味着客户可以自由地离开其任何付费系统,而无需对其应用程序进行重大重写。
Yugabyte:一切都与DBaaS有关
过去几年,YugabyteDB是备受关注的分布式关系型数据库供应商之一。Yugabyte是一种双层数据库。它在底层受到Google Spanner的启发,在顶层与PostgreSQL兼容,旨在创建一个高可用、可扩展的分布式数据库。
现任首席技术官Ranganathan在接受The Register采访时表示,在最初,所有创始人就希望完全开源,但投资者说服了他们。因为投资界表示开源是一个垂死的商业模式。因此,他们选择了开放核心,这意味着YugabyteDB将80%价值开放,20%价值封闭。
但是,在该软件获得早期客户的青睐后,他们决定改变主意。因为他们开始意识到数据库中最需要的东西,如果没有DBaaS(数据库即服务),将没有任何意义。因此,在DBaaS上具有竞争力,与在数据库上具有竞争力同样重要,并且客户希望数据库是开源的。
MariaDB:开源的同时也开启商业化
1995 年,MariaDB从开源关系数据库MySQL中分离出来。MariaDB采用了商业源代码许可证 (BSL),很多人认为这不是真正的开源,因为它不允许用户或开发人员通过代码做他们想做的事。但其实在BSL下,源代码始终是公开可用的,代码的非生产使用始终是免费的,并且源代码保证最终开放。
一直以来,MariaDB坚持开源精神,并确保自己一直走在可持续发展的路线上。MariaDB首席执行官Michael Howard表示,开源是关于自由软件和非商业的商业模式。如今,你假如拥有世界上最强大的公司,在商业化的工作中国为了实现自己的目的,需要重复使用开源。因此,开源在某种程度上会依赖于强大的商业。
虽然BSL对开源认可,但它也支持给产品提供强大商业化平台。Michael Howard说:“这与 Apache BSD或GPL(Linux 使用)非常不同,后者具有突出的要求和负担,要求人们做出贡献,并将贡献自动返回到存储库以让任何人使用它,”通过这种方式,阻止了世界上最大的云公司围绕 MariaDB 数据库提供商业软件即服务。“超大规模企业的商业模式肯定会催生新的许可模式,包括 BSL。
Michael Howard 表示,虽然MariaDB的许可证比其他开源项目更严格,但 MariaDB 比 MySQL 和 PostgreSQL在内的很多开源数据库吸引的贡献都要多。因为无论是用户还是开发人员,都可以自由查看源代码,一旦他们的数据库被转移到更宽松的许可证,就可以为用户提供支持选项。此外,MariaDB既可以修复自己的错误,还可以雇用人员来修复错误,而不必依赖商业项目。
CockroachDB:有开源的历史,也有商业化的未来
2015年,Cockroach Labs由前Google程序员Spencer Kimball、Peter Mattis和Ben Darnell创立。CockroachDB是与PostgreSQL兼容的分布式关系型数据库。与MariaDB一样,CockroachDB严重依赖BSL。源代码可用,但未经Cockroach Labs同意,用户不得将 CockroachDB用作服务。其他核心功能受CCL(Cockroach 社区许可证)的约束,根据该许可证,某些功能存在付费和免费两个方式,但代码可用。
尽管开源和商业模式之间存在混合模式,但首席产品经理Jim Walker表示,Cockroach Labs仍沉浸在开源运动中,开源营业不仅仅是许可证,是一群人参与社区中,他们喜欢贡献和谈论计算问题。开源与人有关,也与代码、开源代码存储库有关。
然而Cockroach Labs也面对很多人质疑,例如项目往往依赖于单一供应商。Jim Walker表示贡献的多样性的确是一个健康的现象,但就贡献而言,应该让软件成为专有软件,以此来保护其知识产权。
未来,CockroachDB将为用户提供其在软件选择方面的自由,用户可以将数据和模式迁移到数据库的免费版本上,也可以让他人托管或者自己运行。CockroachDB的部分价值还体现在,不需要雇佣一堆人,也不需要众多资源来运行数据库。
MongoDB:存在很多企业将我们排除在外的风险
MongoDB作为非关系型的数据库的鼻祖,在DB-Engines 中的排名非常靠前。
它的产品管理高级副总裁Andrew Davidson表示,开源一直是MongoDB成功的关键。如果现在没有开源的理念,就为开发人员提供解决方案。但多年来,很多用户将MongoDB投资的产品作为服务交付的风险,从而将MongoDB排除在外。
SSPL(服务器端公共授权)的设计非常明确,很多超大规模企业无法将MongoDB作为托管云服务提供。而获得SSPL许可的MongoDB社区版,用户可以自由运行,并将其用于他们想要的任何应用程序。唯一的限制是他们不能将其作为托管云服务出售,但他们可以在 MongoDB 之上构建自己的软件,并将其作为服务提供。
在MongoDB早期开发之后的几年,他们意识到托管服务的重要作用,因此投入了创建Atlas及其DBaaS的工作。很多人对混合模型开源未来的自由问题发出质疑:用户是否有能力在构建应用程序后离开供应商?用户可以复制数据库并将应用程序托管在其他地方吗?
MongoDB Atlas的答案是“也许”和“视情况而定”。如果将MongoDB Atlas扩展到OLTP数据库之外,以提供触发器、数据湖产品、数据联合、API 服务器和应用程序服务等,用户可以完全移动它。如果用户正在使用这些辅助工具中的任何一个服务,一旦用户离开 Atlas,就必须建立自己的方式来体验这些类型的用例。
虽然开源倡导者认为项目受益于各种贡献者,但MongoDB 更像是单一供应商项目,这允许它可以专注于开发人员的体验,并以一种不同的方式提供优雅的集成体验。Andrew Davidson还表示,无论对开源的解释是什么,开源都有一个全面的核心价值,那就是对代码的信任。
Exasol:专有的去社区不能去的地方
很多人会认为,现有的数据库都是基于开源软件的,但事实并非如此。德国的Exasol开发了一种内存分析系统,供Dell和体育巨头Adidas使用。Exasol长期以来一直声称在TPC 价格/性能基准中处于领先地位。
它的首席技术官Mathias Golombek曾经表示,开源系统非常受欢迎,尤其是在事务数据库方面。但由于并行硬件中存在一些细节,开源路线不适用于Exasol的核心产品。
但在变化的数据分析领域,Exasol正以各种方式拥抱开源软件。但是,Exasol核心数据库引擎仍然是专有的,因为目前可以有权访问MPP硬件设置且可以专门从事内存计算的正确开发人员社区是不存在的。
总的来说,如今开源数据库的重要性得到了凸显,而选择开源数据库还是闭源数据库的经典二元的悖论,将一直存在。或许随着时间的推移,选择选择开源还是闭源早已经不再那么重要,重要的是软件架构是否与数据问题相关。如果能有更多的供应商意识到这一问题,也能减少自己的失败。