开源不仅是商业模式 其实是一场战争
97 2024-09-01
6月25日,由云原生计算基金会(CloudNativeComputingFoundation,简称CNCF)主办的云原生技术大会在上海召开。在大会上,腾讯开源联盟主席、腾讯开源管理办公室委员堵俊平首次公开了腾讯整体的开源战略路线图。
据堵俊平介绍,腾讯开源将重点关注IaaS、容器与云原生、数据库、大数据与AI、中间件、IoT/边缘计算、小程序生态等领域。他表示,腾讯开源将倡导“开放、共享、合力开发”的研发模式,以发起者和贡献者的方式积极参与国内外开源社区建设,对内成立开源管理办公室,每个开源项目都设立相应的管理委员会,对外积极参与开源社区合作,持续不断地向开源社区捐赠项目、贡献“补丁”(patch),同时输出行业标准。
只要我们关心一下业界动态,就不难发现,最近一段时间国内外的大型平台企业都在积极推进开源战略。例如,阿里巴巴已参与九家全球开源基金会及组织,并主导开源了400多个项目,涉及中间件、框架、组件、数据库、存储、工具等领域。就在不久前,阿里巴巴还加入了刚刚成立的开源组织持续交付基金会(ContinuousDeliveryFoundation,简称CDF),并成为了CDF的创始成员。在国外,科技巨头则更是在开源领域动作不断。仅在2018年,开源领域就发生了多起大型并购——微软以75亿美元收购了开源软件开发平台GitHub,IBM则以340亿美元的天价收购Linux供应商“红帽子”(RedHat)。而在今年,巨头们在开源领域的竞争则持续升级。例如,亚马逊为了“抗议”开源云工具公司Elastic“更改了有关共享其软件代码的规则”的行为,于3月发布了自己的Elastic-Search开源代码库;而谷歌则更是围绕混合云、数字化转型以及行业焦点的战略,一口气推出了Anthos和Cloud两大平台,并宣布与七家“业内领先的、以开源为中心的企业”签署了战略合作伙伴协议……可以毫不夸张地说,大型平台企业对开源领域的争夺已经日益趋于白热化。
为什么国内外的大型平台企业都在近期不约而同地盯上了开源市场?这对于整个行业的生态又会产生什么影响?要明白这一点,我们还需要从头说起。
所谓“开源”(OpenSource),顾名思义,就是将软件的源代码发布到某一虚拟社区,允许所有的社区成员对其进行修正、改进和创新,并将其成果与社区内的所有成员共享。
从渊源上看,开源理念其实是对软件研发领域流行的共享理念的继承和发展。最初,从事软件开发的人员主要集中于高校、科研机构和企业的研发部门。作为“学院派”,他们天然地把软件开发视为一种学术活动,因此也习惯地将研发的结果作为学术成果在彼此之间进行分享。这个时期的很多知名软件,例如著名的Unix系统,以及其上的不少应用软件,就是在这种分享的环境当中产生的。然而,法律的变动很快就打破了这种分享的氛围。1980年,美国对著作权法进行了修改,对涉及计算机的知识产权进行了明确的界定。在此之后,很多科研机构和企业都对自己研发的软件申请了知产保护,软件开放领域的共享时代从此宣告结束。
尽管如此,很多软件开发者依然对共享理念予以了坚持。1985年,在人工智能实验室的理查德·斯托尔曼(RichardStallman)的倡议之下,一个名为“自由软件联盟”(FreeSoftwareUnion)的新组织成立。这个新组织以消除知识产权对软件业的束缚为宗旨,倡导一种理想化的软件产业发展模式。在这种理念的指导之下,“自由软件联盟”推行了一套“通用性公开许可证”(GeneralPublicLicense,简称GPL)协议。根据这一协议,任何使用自由软件的人都必须将在其基础之上进行的修改和创新与其他人共享。
需要指出的是,虽然“自由软件联盟”的共享理念十分令人尊敬,但多少有些激进。由于这个原因,不少“自由软件联盟”的成员逐渐与“联盟”分道扬镳。这些人中的一部分认为,“自由软件联盟”所倡导的技术分享理念是正确的,但所谓的“自由”(注:在英文中,free同时有自由和免费的意思)却与商业社会显得有些格格不入。考虑到这点,他们主张用“开源”来取代“自由”作为口号,继续推动软件研发中的技术分享。这一系列的努力,就是后来的“开源运动”。
从20世纪90年代至今,“开源运动”一直进行得轰轰烈烈。最初,这个运动只是一些研发人员自发参与。随着运动的深入,很多大型企业也逐步加入进来。目前,“开源”已经成为了一种与封闭开发并行的软件协作开发形式,并且越来越有超越、压倒后者之势。
亚当·斯密曾经在《国富论》的开头强调过,分工是促进劳动生产率提高的最重要动力。作为一种协作形式,“开源”显然为斯密的这一论断提供了最好的证据。通过将软件的源代码开放,可以免去软件研发者们对一些基础程序的重复开发,让他们可以将更多的精力集中在一些特殊的领域,从而大幅提升他们的开发效率。与此同时,“开源”还允许不同的研发者们更好地进行交流切磋,从而达到相互启发、激发灵感的作用。所有的这些,对于推进整个软件开放行业的进步都起到了十分重要的推动作用。
尽管作为一种协作的形式,“开源”确实很有效率,不过这种效率的实现却依赖于一个前提,那就是参与协作的人都要有足够的积极性参与这项活动。然而,从“经济人”的视角看,这一点似乎很难得到保证。虽然“开源运动”的参与者有时会强调“开源”和“自由”之间的区别,但在多数情境下,两者的主张其实并没有本质不同。很多的“开源”协作参与者并不从软件的研发中获得直接的经济回报。
正是这一原因,不少软件业的从业者在一开始都不太支持“开源”或者“自由”的这种研发形式,其中最有代表性的就是微软的创始人比尔·盖茨。在1976年2月3日,他曾发表过一封《致爱好者的公开信》(AnOpenLettertoHobbyists)。在信中,盖茨指出:“有谁会在没有任何报酬的情况下来做这些专业的工作?什么样的爱好者才会投入三年的时间进行开发,找出所有错误、编写文档,然后将产品免费发布?事实上,只有我们大量投资来为个人电脑做软件。”
从经济学的视角看,盖茨的这番言语似乎很有道理。我们知道,软件开发人员一般都有自身的工作,并且还往往收入不菲。在这种情况下,他们挤出精力来从事开源软件的开发需要付出巨大的时间成本。如果不能因此而获得相应的回报,那么他们又有什么理由来投入这种活动呢?或许,我们可以用利他主义、兴趣等因素来对其进行解释,但是这些因素充其量只能解释软件开发者从事开源行动的一小部分动机。事实上,很多开源项目的研发都耗时、耗力巨大,如果毫无回报,而仅仅依靠利他主义、兴趣,似乎很难支持这些项目的完成。
那么,从事开源研发的人究竟能获得怎样的回报呢?“开源运动”的发起人之一埃里克·雷蒙德(EricRaymond)曾写过一篇著名的文章《大教堂与巴扎》(TheCathedralandTheBazaar)。在这篇文章中,他提出过一种解释:“开源”其实是礼物经济的一种体现。雷蒙德指出,在“开源”社区中,并不存在着必需品的稀缺,因此货币化的激励对社区成员的吸引力并不大。与之相比,在人群中的威望、荣誉要显得更加重要。要获得这些无价的“货币”,人们就需要提供自己的礼物——无私地为整个社区提供自己的智慧和力量。
相比于雷蒙德对精神回报的强调,来自诺贝尔经济学奖得主梯若尔(JeanTirole)的解释就要显得更为“经济”了。在和哈佛大学商学院教授乔希·勒纳(JoshLerner)合作的一系列论文中,他提出了激励软件开发人员积极投身开源软件研发的几个理由。梯若尔和勒纳认为,参与开源软件的研发除了能够获得雷蒙德所说的威望和荣誉,从而满足自身的心理需要外,还能为研发者带来实实在在的经济收益。一方面,开源软件的研发就好像是一个演练场,参与这些活动有助于研发人员积累有益的经验,从而使他们能在后续的工作中表现得更好,同时获得更高的回报。另一方面,参与开源软件的研发,其实也是开发者展示自身能力的一个良好机会。只要能在这些领域有足够好的表现,他们就可以更容易地被潜在的雇主或猎头发现,这也有助于他们找到更为高薪的职位。如果我们认同梯若尔和勒纳的说法,那么人们参与开源软件的研发就不是真正意义上的义务劳动,而只不过是把当期应得的回报做了适当延迟而已。在实践当中,正是这种延迟的报酬体系构造了一个潜在的市场,从而让人们乐于参与免费的开源软件开发。
遗憾的是,尽管雷蒙德、梯若尔和勒纳等人的理论可以很好地解释具体的个人为什么有激励参与开源软件的研发,但这些理论并不能解释企业参与开源软件研发的动机。一方面,企业不同于个人,它追逐的目标更为单纯,除了利润之外,它们不会有荣誉、威望等考量。考虑到这点,即使纳入商誉等因素,企业从事开源研发的激励也不会太高。另一方面,个人需要求职,需要向潜在的雇主展示自己的能力,但企业却没有这方面的需要,因此他们不会为了出于展示能力的目的而从事开源开发。即使一些小企业也可能通过这种机制来做广告,从而为自己找到潜在的收购者,但那些大型企业一般没有激励这么干。然而,正如我们看到的,现在最有激励参与开源软件研发的,却正是那些财大气粗的大型平台企业,这到底又是为什么呢?
先看第一个原因——对人才的追求。“21世纪最宝贵的是什么?是人才!”用电影《天下无贼》里的这句台词来形容IT行业的现状,是最为贴切不过的。为了搜寻、招聘有能力的程序员,相关企业都用尽了心思。然而,程序员的资质是很难鉴别的,我们很难通过学历、证书,或者奖项来评判一个程序员的价值。相比于这些指标,实际的解决问题能力是更为重要的。而能够有效解决开源软件遇到的问题、对开源软件进行有效的修改和创新,显然是证明开发者能力的一个有效办法。正是因为这一原因,很多大型的企业都致力于投入开源活动,甚至自己搭建平台,组建开源社区,以此吸引人才的到来。
需要指出的是,我们说企业通过参与开源来吸引人才,并不是说企业要将发现的人才统统招聘到自己的旗下。事实上,很多企业也并没有指望拥有所有得力人才,而只是希望通过开源来利用这些人才。例如,谷歌对其人工智能系统TensorFlow的开源决定就是基于这种考虑做出的。谷歌首席科学家杰夫·迪恩(JeffDean)指出,传统的软件研发实在是太慢了,通常是一个程序员花上几个月写完代码,然后上会讨论,再根据其他人的意见进行相应的修改。相比之下,如果采用开源的协作开发形式,谷歌开发人员能够实时与科学界进行协作,谷歌之外的人才也能够参与TensorFlow源代码的编写,而机器学习技术的共享能够广泛吸引更多的技术人才完善TensorFlow系统。这样,TensorFlow的开发进度就大大加快了。
再看第二个原因——对市场的争夺。一般来说,开源可以大幅节约软件的研发成本,因此比起封闭开发的商业软件,开源软件的成本往往要低得多。由于这种原因,开源软件在对市场的拓展上通常要比商业软件更为迅速。
一个典型的例子就是谷歌推出的安卓(Android)系统。它并不是最早的手机操作系统,在此之前,塞班系统曾一度占据了手机操作系统的榜首,而苹果的iOS系统也要比安卓系统出现得更早。然而,在安卓出现之后,只用了很短时间就夺下了手机操作系统市场第一的位置。根据Gartner发布的数据,2018年安卓在智能手机系统中占有的份额高达85.9%,位居第二的iOS系统的市场份额则只有14%,而其他各种系统的市场份额加在一起只有0.1%。这个例子充分说明,在抢占市场份额这点上,开源软件确实有得天独厚的优势。
一旦企业用开源软件成功地占据了市场,它们就拥有了足够的战略空间。利用自己在市场上的优势,它们完全可以获得丰厚的收入。
仍以安卓系统为例。尽管安卓如此成功,但它却是开源的,并且根据GPL协议,这一系统的代码版权不属于任何个人和机构,因此其开发者谷歌并不能对其收取任何费用。既然如此,那么谷歌为什么还要对其进行研发,随后还要投入大量的人力物力对其进行维护呢?难道是要学雷锋做好事,毫不利己专门利人?答案当然是否定的。事实上,尽管谷歌并不直接从安卓系统收费,但却是从安卓赚到了很多钱。这里面的秘密其实就在于平台企业常用的“交叉补贴”战略。
我们知道,谷歌其实是一个多边平台企业,它不仅做系统,也做应用软件。诚然,谷歌对于安卓系统采取了开源和免费的策略,然而它对于系统搭载的各种APP,例如谷歌搜索、谷歌浏览器、谷歌地图等却是不开源,并且是收费的。由于安卓的开源和免费,很多手机制造商都选择将其作为了自己的系统,伴随着这个过程,一大批收费的APP也就被装入了手机。谷歌通过对这些APP收费,不仅足以弥补为开发安卓系统而投入的大量费用,还能赚得盘满钵满。从这个意义上看,将安卓开源,其实并不是谷歌的慈善,恰恰相反,它是一个十分高明的竞争策略。事实上,目前欧盟对谷歌发动了一连串调查和诉讼,其中的一个重要理由就是谷歌利用开源的安卓系统占领了大量的市场份额,然后再滥用由此积攒的市场支配地位来搭售自己的其他产品,由此产生了排除限制竞争、损害消费者福利的后果。
通过以上的分析,我们就可以知道,尽管从表面上看,企业参与开源运动并不能获得直接的好处,但在这个过程中,它们却可以获得人才、获得市场,从而为自己争得有利的战略地位。
需要指出的是,目前整个互联网的重心正在从消费互联网转向产业互联网,在这种背景下,开源市场的争夺可能会变得更为激烈。尽管目前我国的经济已经发展到了一定的程度,对相关产业的支持和配套也达到了相当的水平。然而,传统的装备配套方案一般是非标准化的,这决定了企业在进行业务扩张时,边际成本很难迅速降低,企业试图通过扩大规模来实现降成本的努力很难实现。正是由于这种原因,以标准化的方案来替代非标准化,就是推进产业升级的重要一环。在这个过程中,蕴含着巨大的生产潜力的释放,也蕴含着巨大的商业机会。可以说,谁能夺下产业互联网这个巨大市场,谁就将在未来相当长的一段时间内主导行业的发展。
目前,包括阿里巴巴、腾讯、华为在内的一大批巨型企业都在为争夺这片市场而努力。那么,怎么才能在这场争夺中迅速获得优势呢?一个最简单的思路,就是让本企业的标准成为整个行业的标准。而要达到这一点,企业就首先要让自己的标准有足够的使用者。显然,为了达到这一目的,开放自己的底层技术,吸引更多的研发者在此基础上进行建设,就是一个非常好的市场争夺策略——这一方面可以争取直接的用户,另一方面还可以通过产品的丰富来吸引更多的间接用户。最终,借助网络外部性的力量,它们就可以迅速夺取市场。
目前,产业互联网的大潮正在袭来。相比于消费互联网的红海,这一片新兴的市场可谓是十足的蓝海。为了在这块市场中迅速做大,平台巨头们正在纷纷谋篇布局,而开源无疑就是这场争夺中的一个重要策略。从这个意义上讲,平台巨头之间的开源战争才刚刚开始。