背景
当前位置:首页 > 鲜活水产 > 做开源的朋友

做开源的朋友

  • 发布时间:2021-02-01 19:34:59

有人对我说,你是加入了阿里云,才会说公共云厂商会成为开源的引领者。

我想说,是我坚信公共云厂商会成为开源的引领者,所以我加入了阿里云。

自1998年Chris Peterson提出开源软件(Open Source Software)的概念以来,全球开源社区迅猛发展。直至今日,在“软件定义一切”的现实世界里,开源和闭源长期共存,构成主流业态。

说起当初写开源代码的初衷,开发者大多是想多提供一种选择,作为闭源代码的替代品;同一类型的项目往往会经过社区的淘汰和进化,存活下来1到2个明星项目,成为大家共同参与的社区;商业公司基于开源构建商业模式,并通过开源社区推广技术和产品;不受商业束缚,个人开发者开始针对新的需求,创造世界上没有过的项目;开源软件的价值在公共云平台上被放大…

开源的终极真谛:所有人都从中受益

开源的价值,对世界而言,是大家受益于人类智慧结晶的分享;对国家而言,是培养人才梯队和产业技术实力的良好手段;对公司而言,是商业受益于开源实践带来的标准化,建立生态的优选途径;对个人而言,是开发者体现自我价值、获取更多职业机会和雇主认可的进阶之道。这一切,都基于开源实践所带来的软件标准化,这是社区中自然博弈后产出的最佳路线图。

开源本身并不是一种商业模式。“因为开源,所以挣钱”的逻辑并不存在;但基于开源,可以构建各种商业模式,比如在公共云上的开源就是非常有前景的一种。

勿为开源而开源

没有持续发展动力的开源是没有意义的。

从Linux内核等项目的贡献列表中可以看出,商业公司是开源贡献的主力军。但商业公司的开源动力绝不仅仅是学雷锋做好事,更不是为获取名声而开源,而是希望看到项目能持续发展,成为开源生态的重要组成部分。

不少公共云厂商开源了很多项目,也有了丰富的经验和教训。以阿里为例,我们在评估内部项目是否开源的标准之一就是“后续有没有持续的资源投入,包括社区运营等”。

判断开源项目成功的标准,除了星星,更重要的是开发者的认可

Github上会为开源项目提供各种维度的统计参数,比如星星、fork的数量等。和使用者数量同样重要的是,是否有其他公司的开发者参与,是否愿意接受来自其他团体开发者的贡献。

如果来自不同公司的开发者都认可其价值,该开源项目就具备了成为业界标准的基础。与以往标准部门埋头制定标准、业界再跟随不同,现在往往是在业界公认的开源项目基础上,再抽象成标准,针对性更强。

判断开源项目是否成功的根本指标,是能否在多方参与的前提下,成为业界的标准。

开源公司的困境:不赚钱,被兼并

目前业界最大的开源公司是红帽,其2018财年营收29亿美金。2018年10月28日,IBM宣布以340亿美金收购红帽,溢价63%。考虑到IBM的市值是1100亿美金左右,不得不说这是一次大手笔。

2019年1月11日,大数据领域Hadoop巨头Cloudera与Hortonworks宣布合并完成,创造出一个年收入达到7.2亿美元的新实体,成为全球第二大开源软件公司。

世界上营收最高的开源公司都陷入被收购和合并的困境,其他的公司就更加困难重重。所以大家纷纷想办法创收,并剑指公共云厂商。

2018年5月,Neo4j图数据库在其AGPL许可证中添加了Commons Clause,并于12月宣布企业版闭源。

2018年8月,数据库制造商Redis Labs宣布保持Redis Core(BSD协议)的许可协议不变,将公司开发的Redis Modules(包括RediSearch,Redis Graph,ReJSON,ReBloom,Redis-ML)的协议从AGPL迁移到将Apache v2.0与Commons Clause相结合的许可证,这意味着其自研Redis Modules将不再是开源软件,而是源码可用(source available)。

2018年10月,MongoDB公司宣布将其开源许可证从GNU AGPL v3切换到Server Side Public License (SSPL),即服务器端公共许可证,“新许可证将适用于新版本的MongoDB Community Server以及打过补丁的旧版本。”SSPL明确要求托管MongoDB实例的云厂商要么付费从MongoDB公司获取商业许可证,要么开源其服务代码。

开源项目组织(OSI)的总裁Simon Phipps和副总裁VM Brasseur认为“Commons Clause废除了软件自由”。

Google软件工程总监Daniel Berlin认为:“这种协议误解了开源经济模式,它只是想从中为己牟利。”

最近的消息表明,最新的红帽企业版中不再带有MongoDB。所以对这种修改开源协议的行为,是否能立竿见影收到钱,还有待观察。

开源软件改变传统软件格局,公共云厂商将引领开源

目前,世界上的主要公共云厂商,包括AWS、微软、阿里云、谷歌等,都是开源的积极参与者和实践者。AWS在2018年re:Invent大会上开源了基于KVM的新型虚拟化技术Firecracker。微软在2016年成为Linux基金会的白金会员并于2018年收购了Github。而到目前为止,阿里已经在Github上开源了400多个项目,很多成为业界的主流,如Dubbo、RocketMQ、Pouch等都已经成为明星项目。在GitHub贡献排行榜上,阿里也是唯一入围顶尖贡献名单的中国公司。

公共云厂商要售卖的是算力,将自己建立为更大的计算平台,所以吸引开发者是重中之重。阿里云主要提供的是IaaS层的能力,也要提供小部分的PaaS能力。比如数据库,对于SaaS,是要靠生态来完成的。这些工作,阿里云不会做,也做不来。依托开源项目和开源社区,开发者可以更快地对技术进行产品化和商业化,并通过阿里云平台进行售卖。正如天猫在打造爆款产品和商铺,阿里云更要扶持一批基于开源软件、提供独特价值的合作伙伴。

拥抱开源、贡献开源、提升开源

目前国际开源社区的运作是靠主流开源软件基金会来完成。阿里巴巴参与了11所全球开源基金及组织,包括Linux、Xen、CNCF、Apahce等开源基金会,是Linux基金会的金牌会员、CNCF的白金会员、Xen的顾问委员会成员。3600多位阿里工程师是开源项目的贡献者,在开源社区里共获得30多万个星星。因为阿里工程师的贡献,阿里巴巴在2018年获邀加入Java全球管理组织Java Community Process (JCP)的最高执行委员会,这也是中国企业首次加入到Java全球标准的制定中,推动更多“中国标准”成为全球规范。

构建开发者生态,让开源开发者先富起来