近段时间,数据库的开源领域动作很多,很多大厂也纷纷加入开源行业。之前也分享过关于开源的一些内容。近期读些资料,对开源有了些新的认识,特分享如下。下面是之前两篇开源话题的文章。
☆本文部分图片摘自艾瑞开源研究报告及其他三方
开源的本质在于开放、共享、协同,作为一种创新协作模式,开源不仅限于开源代码的软件开发,还包括更为广泛的开放技术领域及协同创新的理念和机制。开源作为一种文化,具有“创新、开放、自由、共享、协同、民主化”等价值取向和重要特征,即以创新为发展主线,具有开放(开放标准、开放环境、开放源码)、自由(自由发布、自由传播、自由复制、自由修改、自由使用)、协同(协同开发、协同生产)、民主化(在新兴协同共享中,创新孵化新的激励方式,基于较小的经济汇报,推动人类经济生活方式,实现全球民主化)的特征。
1).发展概述
开源软件的发展,可以说经历了几个时期。早的软件开源理念可追溯到计算机软件产业初期,早期的开发者提出的“自由软件”的概念。其核心理念是软件不应该作为一种被私有化的商业资产,而应该成为一种公开的、可免费获取的公共资源。随后在1976年的著作权法,更加剧了自由软件开发者的不满,同时加速了市场对一种开放、非私有的软件开发和运营方式的探索。到了1998年,开源组织OSI正式提出开源理念及十大特性规范,开源软件产业进入成长期。特别到到了20世纪末的互联网经济的加速发展为开源软件提供了良好的发展环境。进入21世纪后,包括云计算、大数据、AI等新兴的技术的发展开始更多基于开源技术。开源对于企业打磨产品,构造生态的意义突显。在近的十年,基于开源软件的商业模式也逐步清晰,这点从资本对开源产品的追捧可见一二。
2).开源理念
开源软件领域有一本经典的著作《大教堂与集市》,书中将开源软件与传统软件以集市和大教堂两个生动的比喻来阐述其中开发的区别。“大教堂”模式指代的是软件企业进行商业化软件开发的流程,是以少数领导决策、下述团队执行,开发过程紧凑高效,以商业化成功为导向;“集市”模式指代是开源软件的开发模式,软件代码公开,海量用户和开发整合在了解软件的过程中不断提出改进意见并修补完善。热衷于开源的开发者认为,“集市”模式通过市场的自然选择,能够挖掘出真正具备潜力和价值的项目和创意,从而为软件的持续发展赋能。开源模式具备以下优势:
❖ 软件迭代速度领先
如前文在《大教堂与集市》中谈到的。大教堂模式是传统的闭源软件开发模式,是一种严格有序、自上而下的顶层设计;而开源软件对应的集市模式,看似混乱,实为一种允许并行多线开发、动态多人协同的软件开发模式,是由开源社区共同提出和认领任务、社区自治、而下而上的解决问题。
这两者的差异在于对软件源代码价值的认知,闭源软件认为源代码本身具备很高价值;开源软件则认为软件迭代速度是核心优势所在。
❖ 需求更加切合场景
在传统的软件研发过程中,是有明确的角色划分。甲方对软件提出需求,乙方根据需求投入资源研发。这一模式是从需求及供给侧天然存在不同程度的错配。乙方依赖甲方认知输出来构建产品,通过不断迭代进行改进。在传统的软件研发过程中,是有明确的角色划分。甲方对软件提出需求,乙方根据需求投入资源研发。这一模式是从需求及供给侧天然存在不同程度的错配。乙方依赖甲方认知输出来构建产品,通过不断迭代进行改进。然而在开源模式中,客户既是软件的使用者、购买者,又是开发者。正是在不断地用户使用中,开源产品因为吸收了用户提供的各种业务场景,可更加贴近用户需求,让开源产品变得愈发强大。
❖ 吸引人才参与
人的能力与投入度决定了软件项目的质量,而开源社区往往能吸引能力的开发者,愿意成为社区的一员。而闭源模式下,产品的高度局限于公司内部员工的认知和能力。
❖ 面向开发者模式
开源软件通过社区的模式吸引开发者。而每一个开发者的加入,社区自身的网络效应也得以增强,开源项目和社区整体价值都得以提升。这种toC的属性也是开源商业模式的魅力之一,这在后期形成强大的社区壁垒。通过网络效应的累积,形成开发者、社区、产品的飞轮效应。
3).开源许可证
开源许可证,是一种法律许可。通过它,版权拥有人明确允许用户可以免费地使用、修改、共享版权软件。它是一种具有法律性质的合同,目的在于规范受著作权保护的软件的使用或者分发行为。从通常意义来看,所有的开源协议本质上都是允许商用的。所不同的是指其“传染性”问题,带有传染性的开源许可证软件要求对其进行修改发布时保留原来的许可证(意味着必须将修改后的软件也公开源代码)。按这一维度,如上图可见,开源许可证可分为两类:宽松自有软件许可协议(Permissive License)、著作权许可证(Copyleft License)。前者是一种对软件的使用、修改、传播等方式采用低限制的自由软件许可协议条款类型。这种类型的软件许可协议将不保证原作品的派生作品会继续保持与原作品完全相同的限制条件,从而为原作品的自由使用、修改和传播等提供更大的空间。后者则是在有限空间内的自由使用、修改和传播,且不得违背原作品的限制条款。如果一款软件使用此类型许可协议规定软件不得用于商业目的且不可闭源,那么后续的衍生软件也必须遵循该条款。这两者大的区别在于,在软件被修改并再发行时,Copyleft License仍然强制要求公开源代码(衍生软件需要开源),而Permissive License不要求公开源代码(衍生软件可变为专有软件)。上图中Apache、MIT、BSD都是宽松许可证,GPL是典型的强著作权许可证,LGPL、MPL是弱著作权许可证。除上述外,还有些新许可协议,如MongoDB提出的SSPL,针对这些还存在些争议。
4).开源组织
提到开源,就不得不提到开源界两大名声显赫的开源阵营,地位比较权威,它们分别是FSF与OSI。FSF(Free Software Foundation,自由软件基金会),自由软件基金会是在1985年10月由理查德·斯托曼建立的美国民间非营利组织,并提出“自由软件”的概念,即要尊重用户自由,为了该自由提出了Copyleft(自由)概念,就是Copyright(版权)的反义词。它指出自由软件是必须提供源码,但是“自由软件”并不是完全免费,发布“自由软件”的作者可以选择适当的收费(收费价格需合理),也可以免费。FSF发布的License许可证协议被广泛使用的就是GPL协议与LGPL协议。OSI(Open Source Initiative,开源计划组织),在1998年OSI正式成立,因为FSF提出的“自由软件”很容易给人带来免费自由的误解,同时“自由软件”对于个人开发者来说很喜欢,但是对于企业来说想继承发展“自由软件”会有一些顾忌,因为使用了“自由软件”的源码,新的项目的源码也需要公开,许多商业公司是不愿意的。基于此Christine Peterson想到了“开源(Open Source)”一词,并得到开源界的广泛认可,并终将OSI成为一个权威的开源标准组织。被OSI组织批准的开源协议有BSD协议、MIT协议、Apache协议等接近上百种协议。FSF自由软件基金会发布的GPL协议也得到OSI组织的认可,进入OSI组织的大名单中。FSF和OSI在代码开源上殊途同归,很大程度上了都实现了“免费开源”,但他们的出发点是不同的。目前基于这两大思想,当今的开源License也通常可以分成两大类:Copyleft(版权许可证,以GPL为代表)和Permissive(自由许可证,比如MIT、BSD等)。
5).开源基金会
开源基金会是专门为支持开源软件项目而办的非营利性组织,它们通过为软件项目社区提供服务与支持实现价值。为开发者提供一个发现、使用、交流开源技术的平台。一般而言,开源基金会提供软件知识产权管理的法律框架、技术服务(如软件仓库、问题跟踪等)、日常的运营和治理支持等。国际上比较的基金会ASF、CNCF等。ASF,全称Apache Software Foundation,Apache软件基金会,它是全球大的开源软件基金会,其开源软件支撑了全球亿万计软件,服务于全球各行各业。CNCF,全称Cloud Native Computing Foundation,云原生计算基金会,他们全球云计算领域知名的开源基金,当前几乎所有知名的云原生开源项目都托管在CNCF。
❖ 开源项目发展流程
项目进入基金会托管,会经历几个发展阶段。下面取自艾瑞开源报告内容,标识出主要阶段及各阶段的特征。
❖ 开源基金会运作模式
开源基金会的组织架构主要包括三个核心部分:
董事会/理事会,重大决定须通过董事会/理事会表决才能执行;
项目管理委员会/技术监督委员会,决定开源项目是否能进入孵化流程以及能否毕业,对基金会中的项目提供技术支持与指导,确保每个项目都符合基金会的规范章程;
运营和执行部门,负责监督、运营、人事、章程制定等常规工作,实际执行基金的使用。
下面以Apache基金会为例,说明其运作原理。
❖ 中国与开源基金会
中国作为一个充满活力的开源生态发展区域,也积极参与到全球的开源浪潮中,并已成为开源技术的主要消费者和贡献者。在全球知名的ASF、CNCF中,已存在大量中国提交的的项目。一方面国内企业对国际级开源项目的贡献持续保持着较高的水平,另一方面越来越多的中国开发者在国际社区扮演着重要角色,成为开源基金会的管理层,参与到国际开源标准的制定中。与此同时,国内的开源基金会建设虽然起步较晚,但发展迅速。2020.6成立的开放原子开源基金会,目前是国内开源领域的基金会组织,已经吸引到超过10以上项目入驻孵化。
我们以近年来进入ASF孵化的项目来看,国内项目占比逐年提高,在2021年进入ASF孵化的所有项目均来自中国。
6).开源产业链
从开源整体产业来看,涉及到多方,包括有开源作者(含企业)、开源基金会、开源社区、开源贡献者、开源软件使用者多方。下图标识出多方在这其中的角色及发挥的作用。
开源代码的初的贡献者,可能来自企业或个人,其开发出开源项目。根据其所在实体或者意愿,可选择多种开源路径。一种是通过企业开源运营,一种是捐赠给开源基金会负责运营。无论哪一种都是需要有个成熟的开源社区来支撑运营。这其中以代码托管平台和开源软件论坛为核心,辅助以市场宣传、法律服务、专家指导、产业联盟机构和服务,协同开展项目的开源运营活动,促进项目发展。代码通过托管平台开放后,二次开发者和终用户都可以免费获取。二次开发者可以为项目持续改进贡献;终用户则可通过使用体验为项目更好发展提出建议和意见。
1).开源与闭源软件
在开启开源商业化之前,我们先关注开源软件与闭源软件的对比。从下图我们可见,两者的诸多不同。这些诸多的不同点,也造就了后面开源商业化的策略与传统商业软件的不同。
而从整体核心技术生态体系来看,开源与闭源软件已经不分伯仲,甚至在大部分领域产品更加广泛。
2).开源商业本质
开源,如何实现商业化变现?一直是人们很关注的一个问题。这部分,我们就来聊聊开源商业化的问题。从本质来讲,开源并非一种商业模式,其本质是一种新型的生产协作关系,用来大幅提高软件供给侧交付效率。通过构建在开发者与需求者、开发者与开发者之间新型协作关系,一方面可充分利用前人的成果,一方面让需求者也参与到软件开发环境中。通过大量使用者的参与,可快速积累测试用例,帮助产品快速成熟。而开源背后的经济学原理,是根据一种商品的价格变化对另一个商品的需求影响,将商品划分为互补品和替代品。举个简单例子,作为水果的苹果和香蕉是替代品关系,作为餐具的碗和筷子是互补品关系。前者一个售卖多了,另一个自然售卖少了;后者一个售卖多了,反而会促进另一个的售卖。开源商业的本质就是找到边际成本足够低的部分,将价格降到低,以期望用户使用实惠的产品后,倾向于购买其他互补品,后通过互补品实现收益大化。作为开源的基础软件,将一套软件代码的边际成本降低为0,直接将其开源、免费提供,以快的速度go to market,并将其中一部分用户转化为对互补品的需求,从互补品上收费获益。因此,商业化的核心问题就是如何框定这个边际成本为0的范围,如何选择合适的互补品,如何对互补品定价。
3).开源商业模式
开源公认的有三种盈利模式:
❖ 增值服务
这种模式靠技术服务盈利。开源软件后面的运维、部署、咨询、升级等,统称为技术服务。其中模式的变现价值点主要为企业提供一种保障。因为开源软件一般涉及到企业内部核心的基础设施,其稳定性和服务保障率是企业重要的指标。同城企业会倾向于采购外部的保障服务,作为“保险”。其核心风险是难以规模化,服务收入的增长通常意味着内部服务人员的增长。在不扩大人员规模的情况下,增长的方式只有扩展产品线。这种模式的毛利率在20~30%,典型公司如Redhat。
❖ 双版本(Open Core)
这种模式是通过发行两个版本,一个开源社区版本,一个企业版本。在企业版本中增加开源版本不具备的功能,例如数据审计、数据加密、权限管理等,以此更好地满足企业用户的诉求。此外,还可提供集群版本扩大支撑规模,提供开发工具提升效率等方式。这种模式会比增值服务模式更容易规模化,但是企业需要平衡企业版本与开源版本的利益。大部分开源社区中,企业版用户仅占一小部分,如果所有核心功能仅提供给企业版用户,无疑开源社区会因此失去活力。这种模式的毛利率在60~80%,典型公司如Elastic。
❖ 云托管(Hosting)
随着云计算的兴起,把软件部署在云端,提供安全、高效、可用的方案,让用户省去部署运维麻烦。这种模式的价值点在于云为软件提供很好的分发渠道,用户可更加便捷地购买软件。在选择这一模式后,企业避免本地部署、运维步骤,节省了人力成本,为企业使用软件带来极大便利。这一模式亮点在于边际成本递减,可规模化潜力高,风险在于服务构建于云厂商,而云厂商会利用开源版本与开源公司形成直接竞争关系。通常这种方式可通过与Open Core方式结合形成混合云能力或者改变开源版权,来形成竞争壁垒。这种商业模式的的毛利率在40~60%,典型企业如MongoDB。
4).开源企业发展阶段
开源软件的发展,可大体分为三个阶段,分别是孵化期、产品验证期和价值变现期。在不同的阶段,会关注到不同的指标,过早的商业化、收割用户往往不能持续。早期的漂亮数字,不代表后期具备高成长性。往往这一过程是需要十年以上,如果没有足够的耐心,是无法看到硕果累累的季节。
❖ 孵化期
开源项目成立的前3~4年,重要的是孵化,建立开源社区。企业重点关注的是开源项目是否能够吸引开发者参与、是否愿意积极与社区互通、是否解决了开发者群体的共性问题?这个阶段企业可通过诸如Github指标来衡量社区发展情况。此时的目标用户画像是开发者。这个阶段是开源企业为重要的阶段,建立好的社区是企业未来发展的保障和企业的长期壁垒。
❖ 产品验证期
在获得足够开发者认可后,下一步是进行产品的PMF。该阶段重点关注的是产品是否满足企业用户的需求,可通过下载量、使用情况、KA客户、付费意愿等来评估,进而对企业客户是否从产品中获取价值、产品的商业基础是否成立做出判断。企业付费的价值点很多,开源企业需要找到合适自己的模式。
❖ 价值变现期
在开源项目、企业级产品均得到验证后,开源企业才会转移到获取利润。此时,企业需要验证的是经济模型是否可持续、是否可规模化,衡量的指标就是常规的营收、订单数、ARR等。到了这个阶段,开源企业的商业价值才能完全体现。
❖ 案例:MongoDB的发展
5).开源软件选型
前面从开源企业角度谈到了很多商业模式问题,那么从用户角度如何对开源软件进行选型。可从下图列出的选型要素中进行评估。
这其中需重点关注的要素有:
开源许可证,这里蕴含着巨大的法务风险,避免可能带来的开源传染性问题。
软件生态,是否有良好开源社区作为后续发展的支持也很关键。
软件成熟度,尽量选择开源时间较长,成熟主流的开源软件。