暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

写在数据库开源浪潮云起之际

韩锋频道 2021-06-02
499

作为近期数据库领域的热点之一,国产数据库开源颇为引人关注。从OceanBase对外宣布开源,到PorlaDB最新的开源动态,再联想到去年华为openGuass开源。为何在近两年来,国内数据库在开源领域不断发力,其背后原因令人深思。本文尝试从开源演进、产生动机、商业模式、未来趋势等角度阐述下个人观点,希望能从中一览开源为基础软件带来的变革。

1. 开源演进之路

     人生基本上就是两件事,选题和解题。最好的人生是在每个关键点上,既选对题,又解好题。人生最大的痛苦在于解对了题,但选错了题,而且还不知道自己选错了题。正如人生最大的遗憾就是,不是你不行,而是你本可以。

1).开源发展阶段

开源软件发展,经历了几个阶段。

  • 免费软件时代

    最早始于70年代中期。那时的学术界和业余软件爱好者中流行一种风气将开发出软件免费提供给大家使用。

  • 支持与服务时代

    随着Linux在1991年的到来,开源对于企业来说变得越来越重要,并且被证明是开发核心软件技术的更好,更快的方法。随着越来越多的基础性开源技术的涌现,开源社区和企业开始尝试商业化。此时,一个典型的代表就是Linux与Redhat,其开创了通过提供付费支持和服务。第一种真正意义上的开源商业模式诞生。

  • SaaS与Open Core时代

    到了21世纪初期,云计算打开一扇大门,允许公司通过“软件即服务”(即SaaS服务)提供服务。这一过程中,大量开源软件得到广泛使用,也使得各云厂商赚的盆满钵满。对于无法上云的情况,也出现了一种通过开源核心软件+商用外围工具的方式获得商业收益的方式。

2).开源流行原因

  • 底层技术开源,节省开发成本

    随着软件技术的发展,底层软件愈发庞大,通过单一公司支撑必然耗费巨大。而通过将底层技术开源,一方面可以吸引更多人开发、测试、维护,不仅可减低成本,还可以进一步提高软件质量;另一方面,开放的本身,也消除人们对底层安全的顾虑。此外,通过推广底层软件的使用,可有利于构建生态,促进基于此基础的上层应用开发,进而达到排挤竞争对手的目的。

  • 降低销售成本,快速取得回馈

    闭源软件的销售,是需要耗费很多销售成本;反之,开源软件则不会。其通过使用者自行下载使用并进一步产生的口碑营销,可迅速触达大量用户群体。而用户的使用体验,可迅速反馈到开发者,让使用者体验更好,形成一种良性循环。

  • 降低使用成本,减少迁移成本

    对于闭源产品,其通常的收费模式是先收取一笔高昂的授权费用,再加上每年需支出的维护费用;而对于开源产品则不同,你无需为授权付费,也没有维护成本。同时在产品选择上也更加灵活,完全不必担心绑死到一家产品上。因为开源,你可以更容易地找到其他替代产品,其迁移成本很较低。

  • 了解最新技术,提升个人价值

    对于开发者来说,如何体现个人价值,让外界知道自己的能力很重要。如果是商业产品,受限于其封闭特点,外人很难看到其中。但开源软件不同,任何对开源产品所做的贡献都是被所有人可见的。这不仅有利于在社群里面建立个人名声,也有利于未来求职就业。毕竟一份被认可的开源贡献,对个人加成很大。

  

2. 开源的商业逻辑

     人生基本上就是两件事,选题和解题。最好的人生是在每个关键点上,既选对题,又解好题。人生最大的痛苦在于解对了题,但选错了题,而且还不知道自己选错了题。正如人生最大的遗憾就是,不是你不行,而是你本可以。

开源的历史表明,它的崛起是由于形成了技术创新与商业创新的良性循环。在技术方面,开源是创建软件的最佳方式,因为它加快产品反馈和创新,提高软件可靠性,扩展支持合作,推动软件使用,并汇集技术人才。如果没有商业模式,比如付费支持、开放核心和SaaS模式,就不会有开源的复兴。可以说,只有根植于富饶商业土壤之上的开源产品,才能长青不衰。经济利益创造了一个良性循环,或称为“飞轮效应”。拥有的商业创新越多,开发者社区就越大,从而刺激更多的技术创新,进而也增加了对开源的经济激励。

1).常见开源误区

  • 开源是件很高尚的事

    不要认为软件开放源代码是多么高尚的事情,因为开源也是一种商业模式,饿着肚子革命搞不了多长时间,好歹要有小米加步枪这样的物质支持才能将代码写下去。

  • 开源是个好商业卖点

    引用甲骨文CEO Larry Ellison的话:“开源软件的成功既不是因为开放,也不是因为免费,而是因为它的确优秀”。开源软件如果单纯以开源为卖点,不一定有市场;想成功就要功能强。

  • 开源能作为有效推广手段

    利用开源做推广,前提是已经有个庞大的用户群体。仅仅通过开源本身来做推广,往往是效果不佳的。

2).盘点开源商业模式

  • 支持+服务

    开源许可证免除了厂商对软件质量与软件缺陷修复的责任。而这些都是企业级应用所必须的。因此,最自然的商业模式就是支持+服务,即为用户提供生产级的服务支持响应、hotfix修复、技术培训等获得收入。其典型代表就是开源Linux与商业Redhat。

  • 开放核心(Open Core)

    这一模式是基础核心部分采用开源策略,但增加部分商用功能或独立商业版本。如很多工具类、生态类、企业类、进阶性功能采取收费策略。通常开源部分完全免费以便更好的推广,而从商业部分的许可销售和支持服务获得收入。其典型代表就是Redis、MySQL。

  • 软件/平台即服务(SaaS/PaaS)

    即提供托管性产品,用户只需要为其使用付费。在具体形式上,通常是基于云托管,因此可能会面临云厂商与开源软件间的竞争。近几年来,开源软件与公有云的关系有点紧张,一个比较流行的观点是公有云吸血开源软件,而对开源社区没有太多贡献。不少开源项目开始寻找在公有云面前保护自己的方法。毕竟公有云的出现,一定程度上打乱了原有的开源商业模式。最终用户通过购买云服务,从公有云服务商那里得到了保障,开源厂商被绕开了。其典型代表就是MongoDB。

  • 生态市场收益(非主流)

    个别超大型开源厂商,可以从其开源生态中获取利益。如Google的安卓,提供平台,收取发布费用

3).开源企业的成功支柱(摘自Peter Levine演进)

开源企业的成功有赖于三大支柱。它们最初以分阶段的形式展开,一个阶段通向下一个阶段。在一个成熟的公司里,它们就成了可持续发展业务需要保持和平衡的支柱。

  • 项目-社区契合度

    它是指开源项目所创建的,一个由开发人员组成的社区。社区成员积极为开源代码库做出贡献。这个契合度可以通过GitHub的星星数(stars)、代码提交数、代码拉取请求数(pull requests)或贡献者数量的增长来衡量。这些指标反映社区质量和项目对开发人员的吸引力。尽管开源软件社区的规模各不相同,但是强有力的追随者和不断增长的社区人气是一个开源软件项目能够激发一群开发人员浓厚兴趣的关键指标。实现项目与社区的契合需要高度的参与,并且需要得到开发者社区的持续认可。最好的项目领导者会在包容和决断之间达成微妙的平衡:他们需要对项目的方向做出明确的决定,同时要确保每个人的声音都被听到,所有人的贡献都得到认可。当这个平衡达到时,这个项目就会保持健康增长,并会吸引更多的人来贡献和分担这个项目。从投资者角度来看,倾向于为开源软件项目的领导者提供资金,因为他们对代码库了如指掌,他们是维系开发者社区的精神和愿景的守护者。

  • 产品-市场契合度

    它指的是用户对开源软件的采用,这个契合度可以通过下载和使用数量来衡量。在社区契合度达到一定程度后,再下来项目领导者就需要明确:开源软件帮助解决的问题是什么?它是为谁解决那个问题的?市场上都有哪些替代品?如果没有对用户及其用例的清晰理解,项目可能会变得方向不明,进而失去动力。当上述问题得到回答时,可将观察到下载次数来有效衡量。产品与市场的契合是日后销售活动的预兆。理想情况下,开源软件用户会成为增值产品或服务渠道的先行者。

  • 价值-市场契合度

    它指的是找到开源软件中客户愿意付费的价值所在。这个契合度是以收入来衡量的。作为最后一个阶段,通常也是最困难的一个阶段,是找到价值与市场的契合度并以此来产生收入。产品与市场的契合度通常由个人用户决定,而价值与市场的契合度则通常以部门和企业购买者为中心。价值与市场的契合的秘诀在于专注于客户关心和愿意付费的东西,而不是你能赚钱的东西。通常,价值与市场的契合度不在于产品提供的功能,而更多地与产品如何被采用,以及它所驱动的价值类型有关。开源软件提供的价值不仅仅是它的功能,而是它的操作优势和规模特性。因此,在考虑商业产品时,需要考虑的一些问题是:你的产品是否解决了核心业务问题或者提供了明确的运营效益?它是否很难复制或者很难找到替代品?开源软件是否有没有实现的规模化能力,需要相应的团队或组织来支持?

在公司的整个生命周期,这三个支柱都必须贯穿其中,而且每一个支柱都要有一个可衡量的目标。

3. 数据库的开源之路

     人生基本上就是两件事,选题和解题。最好的人生是在每个关键点上,既选对题,又解好题。人生最大的痛苦在于解对了题,但选错了题,而且还不知道自己选错了题。正如人生最大的遗憾就是,不是你不行,而是你本可以。

数据库作为大型基础软件,其开源遵循之前所述之外,还有其个性之处。

1).数据库开源驱动因素

*摘自艾瑞咨询

上图来自国内某三方调研机构的报告,罗列企业选择开源数据库的若干驱动因素。此外还有几个因素需补充下。从供给侧来看,一是MySQL、PG等开源数据库为国内数据库厂商提供了不错的开源基础;二是从华为、蚂蚁、阿里近期的开源看,企业也纷纷在开源生态布局(这个后面会详细谈到);三是之前互联网技术快速发展及国家政策扶植,国内也积累了不少数据库人才投身于数据库开源事业。从需求方来看,一是信创类需求,对作为底层基础软件的数据库提出自主可控诉求;二是随着数字化转型深化,对数据的定制化使用需求加剧,使用开源二次研发成为必然;三是数据架构多变,通过开源产品提供的生态效应,可有效避免架构选择的风险。基于以上考虑,近些年数据库开源成为大势所趋。下图正是db-engines获取的商用与开源数据库关注度对比(图中可见图拐点已现)。

2).数据库开源协议之争

开源协议千差万别,特别在数据库领域尤为纷乱,经常网上有这样的争论。此外,随着近些年来云厂商的崛起,托管开源数据库成为其盈利重点,因而很多开源数据库厂商也调整了其开源策略,避免这一蛋糕被白白瓜分。上述问题也导致,开源协议问题颇为引人瞩目。下图将主流开源协议做了梳理,按其开源后是否允许修改后闭源做了分类。

*摘自艾瑞咨询

3).数据库开源热点分析

近期国内数据库开源热点不断,其背后的原因引人瞩目。个人分析,其主要还是在于数据库生态构建问题。从当前数据库生态来看,大致可划分为三部分。一是传统商业数据库,以国外厂商为主;二是开源数据库,以MySQL、PG为代表;三则是国内新兴数据库,以OB、TiDB、PorlaDB等为代表。而相对于前两者,第三类生态是最为薄弱、亟待提升的。如何快速拓展生态呢?开源,无疑是非常好的一步选择。随着国内以OceanBase、PorlaDB、openGuass、TiDB等加入开源阵营,相信未来国内新兴数据库生态必将不断壮大,也带动国内数据库产业不断前行。虽然都是开源,但其开源方式还是有所差别,下面简单分析下。

  • 核心开源+商业产品+企业服务

    上述是以TiDB、OceanBase、PorlaDB(后两者刚开源,策略还待观察)。其通过自有核心产品开源,扩大用户生态,快速获得反馈,不断改善产品,形成逻辑闭环。虽然这些产品都通过兼容开源数据库协议(如MySQL)获得部分开源红利,但内核开源无疑对获得企业(特别是大型企业)客户,尤为重要。

  • 核心开源+共建生态+三方服务

    上述以openGuass为例,华为开放内核能力,并联合上下游厂商提供商业产品,而非自建方式。其想法是通过扩大数据库上下游生态,完成数据库布局。希望借此撬动线下庞大的传统数据库市场。

  • 完全开源+共建生态+企业服务

    上述产品以 ShardingSphere为代表。作为Apache的顶级项目,其拥有不错的生态基础。通过全部代码开源,为客户提供最大开放性和定制化能力。很多企业引入ShardingSpehre并做了二次化研发,满足自身需求。而近期成立的SphereEx公司,作为SS背后的商业公司,正进一步提升其开放能力。日前,SphereEx与openGuass的合作,提供基于openGuass的分布式解决方案,正是这一方面的体现。

韩锋频道:

关注技术、管理、随想。

长按扫码可关注

文章转载自韩锋频道,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论