【数据管理】开源数据库:它们是什么?它们为什么重要?

Chinese, Simplified

对于开发人员来说,这是一个没有争议的特性。数据库的未来是开源的。2022年对约70000名代码争论者进行的堆栈溢出调查显示,几乎所有的专业人士都使用两种领先的开源RDBMSE之一,PostgreSQL(46.5%)或MySQL(45.7%),尽管他们也使用其他系统。

以RDBMS为起点建立全球软件帝国的甲骨文(Oracle)仅被约12%的开发人员使用,而银行和全球零售商使用的IBM数据主力Db2仅为2%。

毫无疑问,领先优势是开源——构建新系统的人正是他们自己的选择。问题是为什么他们在开发人员中占据主导地位。

数据库咨询公司Percona的首席执行官彼得·扎伊采夫(Peter Zaitsev)是MySQL AB的早期员工,由原始开源数据库作者迈克尔·蒙蒂·维德尼乌斯(Michael“Monty”Widenius)领导。对扎伊采夫来说,这是20世纪初创业场景中的一个经济学问题。


“如果你看看Oracle和Db2,它们可能是非常非常昂贵的系统。在21世纪初,就在互联网时代之后,缺乏资金的新一代创业公司需要但无法负担Oracle、Db2或SQL Server,”他说。

但在使用开源数据库的过程中,新一代创业公司——Facebook、Uber和谷歌等——开始发现他们可以根据自己的需求调整系统,为开源代码做出贡献,同时从社区其他地方的开发中获益。

Zaitsev说:“这是一种无许可的创新,你与社区一起定制和改进软件的能力非常重要。”。

快进十年,这一批初创企业——吸引了数十亿用户,吸引了金融市场和迷人的数字转型大师——开始主导网络原生开发者的思维。

Zaitsev说:“创业开发者文化开始渗透到整个生态系统,因为人们正在关注谷歌、Airbnb或优步可能采取的方式。”。

“这得到了数据库领域的关注。它转向了开源数据库。你可能很难找到一些真正酷的基于Oracle的系统作为后端数据库。在企业和政府机构的肚子里,这可能非常重要,但非常无聊。这一切都很好,但不是开发人员所期望的。”

PostgreSQL和MySQL已经有超过50年的发展历史,但新一代开源数据库已经出现在市场上,并引发了围绕其开源模式的激烈辩论。

MySQL的分支MariaDB和分布式RDBMS CockroachDB采用了他们所称的业务源许可证(BSL)。根据MariaDB的定义,这是“封闭源代码或开放核心许可模型的新替代方案”。源代码始终是公开可用的,代码的非生产性使用始终是免费的,许可方还可以提供额外的使用许可,允许有限的生产性使用。源代码保证在某个时间点成为开放源代码。

同时,流行的基于文档的NoSQL数据库MongoDB提供了服务器端公共许可证(SSPL)v1.0,该版本要求向社区发布MongoDB的增强功能。这些限制意味着公司不能将MongoDB作为托管服务提供给其他用户。

SSPL或BSL都不满足开放源代码倡议(OSI)设定的所有开放源代码软件标准。

扎伊采夫说,这些公司的做法在一定程度上是由于投资者倾向于开源的想法。

认为需要抵御企业狼

“金钱可以创造现实。这对开源来说可能是一种危险。开源运动的一些地区有点浪漫,希望改变世界。现在,商业开源是为了赚钱。是的,人们认为开源是好的:这是我们20多年来学到的东西。所以现在,许多新的兴趣正试图重新定义什么是开源软件,而ch允许他们保护自己,但仍然是开源的。但这与开源截然相反,开源应该像科学一样——放弃它,让每个人都能够构建和使用它。”

Zaitsev认为,通过这种方式,开源软件的用户可以自由终止与供应商的关系,并与其他公司签订合同,开发或支持他们的系统,同时保留原始代码的所有权,避免所谓的供应商锁定。

但是,倡导这些许可证的公司这样做是为了保护自己不受占主导地位的云超级规模商的影响,这些超级规模商在开发人员中拥有惊人的市场影响力和影响力。数据库公司担心,如果他们采用自由和开源软件(FOSS)方法,AWS、Google Cloud和Microsoft Azure等公司会简单地复制他们的代码,并将其商业化为托管服务,例如AWS的完全管理关系数据库服务,在这种模式下提供MySQL和PostgreSQL系统。他们认为,这将使开源软件背后的主要公司缺乏收入。

数据管理分析师Gartner veep Merv Adrian在最近一篇关于开源数据库商业可行性的博客中指出,云服务提供商从其开源数据库即服务(DBaaS)产品中获得的收入可能远远超过独立供应商的收入总和。

MongoDB、Cockroach Labs和MariaDB认为,他们采用的模型允许开源的重要特性在这种商业环境中生存。在本文中,我们为这些公司提供了扩展这些观点的机会,同时也为那些采用更宽松的开源方法的公司提供了一个平台,包括Yugabyte、DataStax和PostgreSQL公司EDB,以捍卫他们的立场。Oracle拒绝了谈论MySQL的机会。

作为一个对比,我们邀请了分析领域的一个相对新手Exasol,就其选择专有模型的原因发表评论。

我们还想讨论为什么开源在现代开发中很重要,为什么它可能不重要。首先,我们求助于EDB,这是一家支持和贡献PostgreSQL的商业公司,同时提供一些专有工具和DBAA。

EDB:社区控制和自由

可以说,Postgres是最古老的主要开源数据库,由加州大学伯克利分校的Michael Stonebraker和Lawrence Rowe于1986年首次提出,作为Ingres的继承者。其创建目标之一是数据类型、运算符和访问方法的可扩展性。根据OSI批准的PostgreSQL许可证,对象关系数据库已被证明是可扩展的,支持图形和JSON等新数据类型。

在2022年堆栈溢出调查中,它是开发者中最受欢迎的数据库,在数据库引擎排名中排名第四,十年来一直稳步攀升。

PosgreSQL咨询公司和贡献者EDB的首席技术官马克·林斯特(Marc Linster)表示,该系统的优势不仅在于许可,还在于吸引开发人员的贡献的多样性。

他区分了“俘虏式开源”项目和“真正的社区开源”项目,前者的绝大多数贡献来自单个公司,后者的贡献来自软件供应商、用户和其他相关方。

“如果你看Linux,或者看PostgreSQL,你会发现它背后有一个充满活力的社区。PostgreSQL是由EDB合作开发的——是的——还有VMware、富士通、NTT、微软、亚马逊等等。有很多公司在这方面投资,”他说。

“从技术上讲,你有其他开源软件拥有开源许可证,但它们实际上被一家公司所控制——比如说MongoDB。如果你是一个社区驱动的过程,会有更多的创新,因为在过程中的这些动态中,有很多推动和拉动来快速实现创新。同时,也有很多质量控制,这两个都来自于desi。”从gn的角度和执行的角度来看,因为审查、集成到代码中,所有这些都是公开的,并且完全公开。

“社区驱动的过程也保护了开源,使其不会突然获得BSL等人工许可或其他许可,因为其背后的社区不会接受。”

虽然核心PostgreSQL项目独立于EDB,但该公司销售自己的专有软件,以帮助保护和管理数据库。

Linster解释说,这些元素没有进入开源项目,因为虽然有些用户可能需要它们,但整个社区没有。

“我们做了一些社区不会做的事情。它不会说它需要数据库中的密码配置文件,比如Oracle。Postgres社区不太可能这样做,但客户通常有非常具体的需求,”他说。

Linster说,客户可以“拥有Postgres中所有的东西”,但也可以获得PostgreSQL社区无法接受的功能,如Oracle兼容性,EDB认为这是“独立的竞争优势”。

DataStax:没有人喜欢陷入陷阱

Apache Cassandra最初是由Facebook工程师Avinash Lakshman和Prashant Malik开发的分布式结构化存储系统,用于支持社交媒体公司的收件箱搜索功能。2008年7月,Facebook将Cassandra作为Google代码的开源项目发布,到2010年,它已成为顶级Apache项目。

DataStax的开发者关系副总裁帕特里克·麦克法丁(Patrick McFadin)表示,该项目由商业公司DataStax支持,该公司提供有偿DBaaS,但开源项目的想法对该公司仍然至关重要,因为开发者希望在云中获得自由和灵活性。

“因为云,它变得非常有趣。我们进入了这个世界,有很多项目和公司开始做这种假开源,你可以说它在你的笔记本电脑上工作,但在其他任何地方你都必须付费。

没有人喜欢陷入陷阱。[开源]对于开发人员来说仍然是非常重要的,因为他们希望有选择的自由和扩展的自由。如果你看看所有主要的开源数据库,包括Cassandra、MySQL和PostgreSQL,它们都做得很好。有一个企业版,你可以付费,还有一个托管服务,你可以付钱。但是,还有一个免费版本。

麦克法丁补充道:“如果你看看DataStax的客户,他们雇佣了这三家公司。我们有非常大的客户会购买我们的企业版,他们会使用我们的托管服务,然后他们会在同一个环境中拥有很多开源的Cassandra。他们有一种心理安全感,知道他们可以根据当前的业务四处移动。没有开源数据库,你无法做到这一点。”

例如,亚马逊有自己的键值数据库DynamoDB,它将其作为服务提供。

“你不能在亚马逊之外运行DynamoDB,因为它有一个非常明确的API。因此,开源不仅仅是软件,还有标准、API或查询语言等,”McFadin说。

他表示,DataStax将向开源社区发布其云服务的任何扩展,因为其付费卡桑德拉迭代和Apache卡桑德拉的API之间存在分歧。他认为,这意味着客户可以自由地离开任何付费系统,而无需对其应用程序进行重大重写。

麦克法丁说:“客户有时也会离开。我想的第一件事是,‘哦,那太糟糕了’。但这不是正确的说法。更像是‘我很高兴你还在使用卡桑德拉,我会在社区里看到你’,这是正确的答案。”。

Yugabyte:都是关于DBaaS的

YugabyteDB是过去几年中备受关注的分布式RDBMS供应商之一。其他获得NewSQL这个可疑名字的人包括CochroachDB,在某种程度上还有MariaDB。

Yugabyte是一个双层数据库。它的灵感来自下面的Google Panner,并与上面的PostgreSQL兼容,目的是创建一个高度可用、可扩展的分布式数据库。

去年10月,该公司在C轮融资中筹集了1.88亿美元,其业务价值约为13亿美元。

YugabyteDB在Apache 2.0许可下可用,并跨私有、公共和混合云环境在Kubernetes、VM和裸机上运行。

该公司由前Facebook工程师Kannan Muthukkaruppan、Karthik Ranganathan和Mikhail Bautin创建,于2017年脱离了秘密状态,但直到2019年才采用Apache 2.0。这一原因暴露了一些关于开源数据库的公开争论。

现在担任首席技术官的Ranganathan在接受注册时表示,所有创始人从一开始就希望完全开源,但投资者说服了他们。

“投资者群体非常清楚,开源是一种正在消亡的商业模式。因此,我们决定从根本上说,我们将成为一家开源公司,但因为他们的投资者说完全开源是一场失败的游戏,我们选择了开放核心,这意味着我们的数据库将有80%的价值是开放的,20%是关闭的,”他说。

然而,在该软件获得早期客户的支持后,它决定改变主意。

Ranganathan说:“我们意识到,除了在数据库中找出我们需要什么之外,如果没有DBaaS方面的支持,这就像刚到就死了一样。”。

这个启示意味着在DBAA上的竞争力与在数据库上的竞争力一样重要,客户希望数据库是开源的。Ranganathan指出:“我们告诉客户,我们喜欢PostgreSQL,但它是分布式的,他们说‘但PostgreSQL是非常开放的’。”。

Ranganathan说,尽管供应商担心——如果他们完全开放源代码——AWS或其他云提供商会通过提供自己的DBAA来吃午餐,但这没有抓住要点。

“如果——作为拥有该项目的主要供应商——您的DBaaS产品足够好,那么就应该很容易为人们提供使用该托管服务的理由。AWS只能为AWS提供这种服务;我们可以在任何云上(包括云外)提供这种服务,因为我们没有特别的偏好;我们实际上希望它在任何地方都可用。AWS只有在拥有整个基础设施时才能成功。”cture数据,即使客户想要拥有它,我们也是成功的。”

MariaDB:开源,但用于商业主干

MariaDB是从MySQL中分割出来的,MySQL是一个开源关系数据库,始于1995年。自2008年以来,MySQL一直是Sun Microsystems的一部分,但2010年甲骨文收购Sun时,MySQL联合创始人Widenius将代码分给了一个新的开源数据库MariaDB。

MariaDB采用了业务源代码许可证(BSL),批评者认为它不是真正的开源,因为它不允许用户或开发人员使用代码做他们想做的事情。在BSL下,源代码始终是公开的,非生产使用的代码始终是免费的,并且源代码最终保证开放。

该公司表示,许可模式只要求生产使用该软件的人获得商业许可,这通常表明环境为企业带来了巨大价值。

虽然BSL不符合OSI定义,但MariaDB确实坚持开源精神,同时确保其成为可持续发展的公司。

MariaDB首席执行官迈克尔·霍华德,告诉Reg:“开源最初是一种意识形态和一种生活方式。它是关于自由软件和非商业商业商业模式。在当今世界,世界上最大、最强大的公司在商业化努力中为自己的目的重用开源,人们意识到开源不能独立。独立、独立和依赖独立取决于强大的商业支柱。”

虽然BSL是“对开源的认可”,但它也为给定产品提供了强大的商业化平台。霍华德说:“这与Apache BSD或GPL(Linux使用的)非常不同,后者有悬而未决的需求和障碍,要求人们贡献一部分,并自动将其返回存储库,让任何人使用。”。

通过这种方式,它阻止了世界上最大的云公司围绕MariaDB数据库提供商业软件作为服务。“hyperscalers业务中的商业模式无疑推动了新的许可证模式,包括BSL。然而,当它最初设计时,更多的是关于企业家建立一个良好的企业,”他说。

Howard说,虽然MariaDB的许可证比其他开源项目更严格,但它可能比任何开源数据库都吸引更多的贡献,包括MySQL和PostgreSQL,这两个数据库都更老。

但与专有软件不同的是,无论是来自用户还是支持公司的开发人员,都可以自由查看源代码,一旦他们的数据库被转移到更为宽松的许可证,就可以为用户提供支持选项。

“大型机构将开源视为给他们提供了一种选择,他们可以与供应商合作,就像MariaDB一样,或者如果必须,他们可以修复自己的错误。他们可以雇佣人来修复错误,而不必依赖商业项目。这是一个深刻的区别,”他说。

CockroachDB:开源历史,商业前景

蟑螂实验室在这一领域相对来说是个新手。它由前谷歌程序员斯宾塞·金博尔(Spencer Kimball)、彼得·马蒂斯(Peter Mattis)和本·达内尔(Ben Darnell)于2015年创建。

该公司的数据库CockroachDB是一个分布式RDBMS,与PostgreSQL兼容,并由一个键值存储支持,该键值存储是RocksDB或一个专门构建的名为Pebble的衍生工具。

2021 12月,该公司通过2.78亿美元的F轮融资达到了50亿美元的名义估值。它的客户包括康卡斯特、eBay和Nubank。

像MariaDB一样,CockroachDB严重依赖于BSL。源代码是可用的,但未经Cockroach Labs同意,用户不得将CockroachDB用作服务。其他核心功能受CCL(Cockroach Community许可证)约束,根据该许可证,某些功能是付费或免费的,但代码是可用的。发布几年后,代码转移到Apache 2.0许可证。

Cockroach说,BSL没有被认证为开源许可证,但大多数OSI标准都得到了满足。

尽管开源和商业模式混合在一起,首席产品经理Jim Walker表示,公司一直沉浸在开源运动中。早期的版本是在Apache许可下发布的,而共同创始人Kimball和Mattis是流行的开源GIMP照片处理工具的幕后推手,该工具是由一个大学项目产生的。

但对沃克来说,开源不仅仅是许可证。“我并不是说它不重要,绝对不重要。如果你打算纯粹基于这一因素来做一个二进制的‘什么是开源?’?好吧,很好,我理解开源与否。然而,对我来说,开源远远不止于此。有一个社区的人参与其中。他们喜欢贡献和讨论(计算问题)。第一,这是关于人的。

“第二,它是关于代码的。它是关于开放源代码库的。如果你正在攻读分布式系统博士学位,你可以查看蟑螂实验室的代码库。现在,它完全开放。任何人都可以查看。”

批评者指出,对于采用混合模式的公司来说,他们的项目最终往往依赖于一个供应商,该供应商可以控制项目的方向,而不管更广泛社区的观点如何。贡献的多样性是一个健康的迹象。

但就贡献而言,沃克承认,大部分都是蟑螂实验室。那么,为什么不全力以赴,通过使软件成为专有软件来保护其知识产权呢?

沃克说:“对我来说,这是一条死胡同。考虑到过去三到五年来,由于开源,世界的发展速度。我说的不仅仅是我们的软件:世界发生了变化,因为我们可以从我们的系统中获得效率和规模。我们绝对是一个公民,也是其中的一部分。”。

他还认为,CockroachDB为用户提供了未来选择软件的自由:他们可以将数据和模式迁移到数据库的免费版本,并让其他人托管,或者自己运行。

但沃克表示,开发商面临的压力可能会阻止他们放弃付费托管服务。

“人们只是不这样做。没有人愿意这样做。CockroachDB的一部分价值基本上是,我不需要雇佣很多人,我也不需要那么多的资源来运行数据库。市场上出现了一种新的愿望,即低运营成本,并消除了我必须做的大量工作。”

MongoDB:超尺度(hyperscalers )将我们排除在外的风险

随着13年前第一次发布,MongoDB在某种程度上是NoSQL运动的鼻祖。至少根据DB引擎,它也是避免关系模型的数据库中排名最高的。

该公司于2017年首次公开募股,目前估值约220亿美元。

MongoDB为2018年10月16日之后发布的所有版本提供服务器端公共许可,而自由软件基金会的GNU AGPL v3.0适用于该日期之前发布的MongoDB软件。

SSPL由MongoDB引入,要求向社区发布MongoDB的增强功能。如果出于法律原因无法接受,则可以使用MongoDB Enterprise Advanced获得商业许可。

产品管理高级副总裁安德鲁·戴维森(Andrew Davidson)表示:“开源是MongoDB成功的关键部分。在当今时代,如果没有开源第一的理念,就不可能成为广泛采用的开发解决方案。”

但多年来,该公司开始意识到,超尺度者将MongoDB投资的产品作为服务交付的风险,将MongoDB排除在外,他说。

“SSPL是非常明确的,旨在澄清一个模糊性,即您不能将MongoDB作为托管云服务交付,目标是超规模者。通过SSPL许可的社区版让我们的用户可以自由地在任何他们想要的地方运行它,并将其用于他们想要的任何应用程序。唯一的限制是,他们不能将其作为管理服务销售。”d云服务,”戴维森说。

但他们可以在MongoDB之上构建自己的软件,并将其作为服务提供,他说。

在MongoDB早期开发之后的几年中,该公司开始意识到未来是托管服务,因此投入了创建Atlas的工作,即其DBAA,例如,该公司通过解决分析问题的附加功能对其进行了修饰。

批评者提出的关于混合模式开源的一个问题是未来自由的问题:一旦客户构建了应用程序,他们是否有能力离开供应商?他们可以复制数据库并在其他地方托管应用程序吗?

对于MongoDB Atlas,答案是“可能”和“取决于”

“我们已将Atlas扩展到OLTP数据库之外,以提供触发器、数据湖产品、数据联盟、API服务器和应用服务等……基本上,您可以完全移动这些服务。如果您正在使用这些辅助服务中的任何一项,那么如果您离开Atlas,您必须构建自己的体验这些类型用例的方式。”

虽然开源倡导者认为项目受益于多种贡献者,如PostgreSQL,但戴维森认为,亚马逊、微软和EDB等贡献者的企业对项目的成功感兴趣。

MongoDB可能更像是一个单一的供应商项目,但这允许它“沉迷于开发人员体验,并以一种与脱节的联合体模式稍有不同的方式创造优雅的集成体验,”戴维森说。

无论对开源的解释如何,它都有一个共同的核心价值,那就是对代码的信任。“你需要能够知道,你可以进去,用显微镜[和]检查这个东西是如何建造的。

“当然,你可能不会真的这么做,但知道无数其他人——博士、学生、学者和行业专业人士——正在这么做是非常关键的。我们谈论的是人们应用程序的核心,这是他们业务的关键。这一切都是关于知道你正在构建的是社区验证的东西。”

魔鬼的拥护者也可能会指出,世界各地的银行都在运行专有的Oracle和Db2,而且它们似乎很好。但这些系统都是由大型公司多年来设计的。开放源代码模型允许在没有这种支持的情况下可靠地引入新数据库。

Exasol:社区无法实现的专有技术

最后,观察者认为所有现代数据库都以某种方式基于开源软件,这是可以原谅的,但事实并非如此。德国的Exasol开发了一种内存分析系统,戴尔和体育巨头阿迪达斯使用该系统。长期以来,它一直声称在TPC价格/性能基准方面处于领先地位。

首席技术官Mathias Golombek告诉《注册》杂志,并行硬件有一些细节,这意味着开源路线对他们的核心产品不起作用。

“开源系统非常流行,尤其是事务数据库,”他说。“在更动态的数据分析领域,Exasol以各种方式拥抱开源软件;然而,我们的核心数据库引擎仍然是专有的,因为到目前为止,还没有能够访问MPP硬件设置并专门从事内存计算的合适的开发人员社区。

“为了充分利用这两个世界,并支持开源作为软件行业的一个基本概念,Exasol通过利用敏捷社区帮助创建各种集成项目,增加了数十个开源项目,如通过我们的语言容器的数据科学,或通过虚拟模式的数据虚拟化。

“随着时间的推移,我们了解到,与封闭源代码相比,开放源代码的重要性越来越小,而是软件体系结构是否与数据问题相关。开放源代码商业模式已经让尚未实现这一目标的企业软件供应商失败了。”

本文:https://jiagoushi.pro/open-source-databases-what-are-they-and-why-do-th…

SEO Title
Open source databases: What are they and why do they matter?