出品 | OSC开源社区(ID:oschina2013)
为全面呈现开源与云的发展现状,我们邀请到了华为云与计算开源业务(OSDT)总经理,开放原子开源基金会 TOC(技术监督委员会)主席堵俊平来聊聊云厂商是如何看待开源与云的关系,又是如何拥抱开源的。以下为采访实录。
开源中国:首先聊聊您过去做的云、开源相关的工作吧。堵俊平:我和云,包括云上的开源项目,有很长的渊源。早在 2009 年左右,我在 VMware 做云的开发,涉及公有云、私有云、混合云等相关产品。后来,我也参与了当时的一个正准备开源的 PaaS 平台——Cloud Foundry 的开发,在2010至2013年期间,作为主任工程师带领核心研发团队,把 Hadoop 和vSphere以及Cloud Foundry 结合,做大数据云化的部署以及优化工作。现在看,在云上运行大数据是一件非常普遍的事情,但在 2010年前后,这个工作是非常领先的,当时没有太多在云上部署与运行大数据系统的方案(AWS EMR 于2009年发布,在当时最多算是Beta产品)。后来在大数据领域做开源时,我也密切关注云上各种开源项目和服务的进展。2014年我在Hortonworks美国(业界领先的开源大数据公司,后与Cloudera合并)负责核心大数据计算平台YARN,就特别关注Hadoop集群在云上的应用场景,尤其是资源的虚拟化、隔离、超卖以及容错等各种场景。2018 年,我回到国内,入职腾讯负责大数据产品。从云产品的角度来说,参与开源项目可以培养客户和用户,引流,同时云厂商也可以做技术和企业级特性的增强服务,这是云厂商做开源的基本逻辑。当时我在腾讯云还推动了对 Apache 软件基金会和开放原子开源基金会的项目捐献与赞助。入职华为后,我主要负责云与计算领域的开源。目前更关注计算领域,但在云原生领域,我也在积极推动一些事情,比如 openEuler 在云上的推广落地。除了华为云,我们也在和百度云合作,让百度云成为 openEuler 的重点合作伙伴等等。在AI 领域,我们一直倡导云原生的 AI,推动 AI深度学习框架MindSpore、模型等产品与开源操作系统以及云原生做结合和创新,去解决云领域所遇到的问题。堵俊平:业界有一段话,开源吞噬软件,云吞噬开源,听起来像是大鱼吃小鱼的关系。我只同意前面半句,就是软件确实在影响着人类生活的方方面面,然后软件云化和软件开源化都是很重要的趋势,但云与开源之间不是谁吞噬谁的问题。如果一定要说吞噬、传染,云其实也被开源传染了,就好比吞下了“病毒”一样,开源天然就是“传染体质”。目前基本上纯粹私有的云服务协议已经很难得到业界的认可了,相反开源开放的代码、API 更容易得到业界的认可。同时,从概念上看,我认为云本身是一种商业模式,而开源是一种组织形式。那么无论是哪种商业模式,都可以用开源这种新的组织方式、生产关系来去构建。从这个角度看二者也不是竞合而是正交关系,互相可以结合。开源中国:聚焦到当下的开源创企与云厂商之间的关系上,该如何看?堵俊平:我认为开源创企和云厂商之间更像是生态关系。现在我们看市场上的几朵云:国内的阿里云、华为云、腾讯云,国外的 AWS、微软、Google 的云服务,会发现一大特点——大的云厂商只剩下“几朵”。但其实云厂商市场并不是天然长成这样,早在 2009 年我刚开始做云的时候,那时候有很多中小型云厂商,但是到了 2014、2015 年,很多都在激烈的市场竞争中倒下了,或被收购或者破产。在经历过一轮市场淘汰之后,只剩几朵大的云。我认为这些大型云厂商前还应该加一个限定词——IaaS,主要是以 Infrastructure 为主的。这些厂商为什么能活下来?一方面因为有超强的技术积累,另一方面资本也比较雄厚,可以满足运营大型数据中心的技术支持、运营等需求。整体来看云资源,业界走向了薄利多销的模式,有点像大型超市。我们经常说云本质上就是超市,超市(云厂商)可以卖自产的商品,也可以卖别人的产品。大型的云厂商则更像是连锁型超市,而此时一些中小型的开源创企所做的项目和服务,就像是大型连锁超市某个货架中的某个商品。反过来说,如果这些大型超市不讲武德,只卖自己的产品,或者看到好产品就直接搬回来,这种做法就会扼杀整个生态。早年很多人吐槽云厂商的这种行为,但是我们也能看到现在许多云厂商也在改进中,包括成立开源办公室、大量赞助上游开源软件基金会、在开源社区中投入工程师力量、给社区作贡献等等。所以大型云厂商一定要注重回馈,这是义务,没得选。另一方面,在整个生态的上游,是很有特色的中小软件厂商。这些厂商一定要找到自身的核心竞争力在哪里。核心竞争力在开源项目上的战略没有问题,因为把产品开源出去有助于吸引用户和客户。但同时在充分竞争的云市场上,也要能提供自己独特的能力,比如在提供企业支持服务的同时,也可以提供更好的性能、或是针对硬件或某些云基础服务(如云存储)做独到的优化等等,找准自身核心竞争力和市场定位。开源中国:开源对云厂商的价值体现在哪些方面?反之呢?堵俊平:从历史上来看,云厂商有几件很痛苦的事。第一,本质上云是把所有企业内部的 IT 服务搬到线上,然后提供在线的产品和运维服务,而软件产品和一般的商品不同,通常一朵云里会有成百上千个云服务,加上企业客户的需求有很多类别,这样云上所沉淀的东西就变得五花八门,同时产品分散。第二,开发成本和运维成本很高。在公有云大行其道之前,2008年或2009年左右我还在 VMware 的时候,当时大家讨论未来是公有云还是私有云占主导的问题,一派认为私有云占据主导,原因可以用一句话来概括——“全世界的 IT 服务都是由一家公司来运维,这是不可想象的”,实际上 AWS 后面基本上是做到了,在云市场上占据了半壁江山。当下的市场中也是几家公司就可以覆盖全世界的云上 IT 服务。就是因为云结合开源,让很多项目收敛化了,比较容易构建事实标准。当然并不是云厂商单方面去构建标准,而是因为云厂商提供了开源项目相关的服务,并且因为这个开源项目好用,所以能够快速吸引用户,从而实现事实标准。事实标准的存在有效降低了云服务的复杂性,虽然现在各个云厂商也提供了很多差异化的服务,但是大量主流的产品是收敛的,比如大数据方面,Hadoop、Spark、Flink 这些项目和服务都是标配,如果没有这些项目,你会发现一个云厂商想要运维好多个不同的产品很难。另外如果没有统一的事实标准,也会形成某种程度的绑架,很难从一朵云迁移到另一朵云。所以我认为某种程度上来说,开源造就了云。现在我们说云是一种趋势,开源是一个重要手段,但如果没有开源的配合,云尤其是公有云在当前取得的成就,不知道要往后推多少年。所以在我看来,云厂商做开源是义不容辞的义务,没有什么可商量的余地。除了帮云厂商解决这两个痛点以外,结合开源的商业模式可以建立很好的漏斗模型。由于开源产品免费、代码开放,可以吸引很多技术爱好者,快速获得一些原始的用户积累,我们姑且称之为“用户流量”。然后基于漏斗模型分析,这些用户有一部分会进入生产系统,到了生产系统之后,就会需要一些企业服务,或者说需要组建一个专门的团队去做维护,也需要投入资源或者是工程师到开源社区中。如果不在开源社区投入资源,那么就得购买专业的云服务。所以无论何种方式,哪怕是免费用户,最终也会一步步沉淀到云上和企业服务之上,从潜在客户变成最终用户。堵俊平:云是一个很好的,能够帮助开源触达最终用户的方式。比如现在用户想要尝试使用一个新技术,不管是 Spark,还是 TensorFlow、MindSpore,如果想要试用,那么最快的方式就是先试用云厂商的云服务,速度是分钟级甚至秒级别的。反之,如果按照传统的方式,一个企业从购买硬件开始,直到完成部署、试用一套流程就需要花很长时间,可能到最后已经对开源项目失去兴趣或者失去了时间窗口。所以,对于开源项目来说,云服务天然能够拉近和用户的距离,降低使用门槛,我认为这是很重要的一点。第二点,在构建盈利模式方面,云提供了一个非常好的商业模式。如果不用云服务,只是做线下发行版,或者专有支持,按照纯线下的方式去构建商业模式会有两个问题:一是传统 ToB 的销售模式,业务增长伴随着销售团队、售后团队成规模地增长,很难像互联网公司一样快速起量。另一个问题就是人员成本,尤其是售后的成本。比如客户的现场 IT 情况往往比较复杂,防火墙设置、数据中心、操作系统版本、第三方库的安装方式都不一样,这些问题造成的结果就是可能需要投入很多售后支持人员。当开源产品出现问题的时候,要花很多时间去 debug。我之前在顶级的大数据平台公司,公司遭遇的问题就是每年也很赚钱,但同时还持续地亏损,而造成亏损的原因就是售后支持消耗了大量的人力。云的好处就是我们在一个可控平台环境里,所遇到的技术问题会有所收敛,能快速解决。所以云服务对于开源而言,不敢说是最好,但至少是一个非常优质的商业模式。整体来看,开源与云的关系已经过了最“剑拔弩张”的时刻,开始寻求共生与合作,这个过程中,有什么关键事件推动吗?任何新生事物的发展都有很多可能性。一方面,开源独立发展的时间已有几十年,节奏忽快忽慢,近几年突然加快了。比如国内开放原子开源基金会的成立,从国家到各个公司也都非常关注开源,加大投入。另一方面,云是当下一个必然的技术趋势,也有自己发展的生命周期。那么两个独立发展的事物交织到一起,必然会变得更加复杂,二者会互相促进,也会发生相碰撞,碰撞可能会反映在云厂商和一些开源创企之间,会有利益冲突,包括商业竞争。就像交响乐一样,如果你只听到一种声音就会很单调,但是通过不断碰撞之后,大家会明白:在一个生态里面,与其拼命去争夺养分,不如形成一种共生的关系,互相依靠。这是一个从偶然走向必然的过程,当然其中也有一些关键节点去推动。比如说像 MongoDB 做许可证变更的时候,突然之间的转变,那么大家就会反思开源项目为什么要这样。当然不只有 MangoDB,同一时间段还有 Redis ,ElasticSearch等系列的项目变更许可证。一方面这些项目变更完许可证后还是不是严格意义上的开源项目,业界有较大争议,比如 OSI(定义开源的标准组织)就认为 SSPL 不算开源许可证,因为它的商业活动限制、歧视了云服务等应用场景。但从另一角度来看,这确实是开源创企的一次重要尝试,而通过这样的方式也能够让云厂商开始反思。比如 ElasticSearch 改了协议之后,AWS 就说要去支持上游社区的开发,甚至 fork 一个分支,继续采用 Apache v2 许可证去推进开源项目和社区发展。我认为这些都是积极的信号,大家在同一个生态里,有互相竞争的时候,也会互相遮风挡雨。三、怎么做?Upstream First 可以是第一步开源中国:目前的状况是,在许多开源项目作者眼里,云厂商从开源社区得到的益处和回馈不成正比。站在云厂商的角度,为什么会出现这种情况?回馈开源主要的困局是什么?堵俊平:因为我自己的业务是比较跨界的,所以我不能完全站在云厂商的角度,我更愿意站在开源的角度去看这个问题,不站任何业务立场。可能大家说前几年舆论场上有一些抱怨,但其实我看到各个云厂商之间也加强了开源贡献,因为大家发现开源是一个很重要的战略手段,同时对开源领域的贡献也会有相应回报。在开源领域做贡献通常会有中长期回报,比如你贡献的人才在社区得到锻炼,就有了一个精干的团队去持续迭代,同时也会更容易赢得客户的信任。当然我们是鼓励对开源社区做出了贡献之后出来宣传的,通过宣传让大家知道开源社区背后的主力贡献者是谁。这时客户会更相信你的技术实力。像华为之前在 Linux Kernel 社区的贡献排到了第一,我们也是重点宣传,也想让业界知道操作系统开源领域背后真正的贡献者是谁。这点很重要,因为客户在选择的时候容易被误导,当客户看到谁有真正的技术实力和能力去支持一款好的开源产品的时候,选择会更加明确。那么某种程度上,云厂商也算是实现了商业回报,或者说是构造出一个完整的“贡献-回报”价值链。从贡献社区到收到回馈,整个的流程是比较长的,在这个链条中,如果任何一个环节出现问题,可能都会影响实际的收益。因此很多时候团队在提出开源价值的时候,老板不太认可,也不太支持。但另一方面,如果走自研的路线,很容易讲价值,因为所有的产品听上去都是和竞争对手有差异化的能力。所以单从讲故事的角度来说,自研路线更容易讲清楚的。但是把视野放大,如果大家都在强调自研,那市场就回到了二三十年前的老路。那么我现在想问有什么东西是真正原创的?我认为很少。绝大部分我们所谓“自研”的产品和技术,其实开源界都已有类似的项目,那么你怎么能保证你的小团队可以在跟外部更广大的团队的竞争中获胜?深思起来,这个其实一样讲不清楚逻辑。所以当下,走闭源这条路其实更难。很多团队不选择走开源的原因无非就是上级领导存在认知盲区,不知道外面有一个更大、更开放的世界存在。因为一旦开源,大家就会知道你这个所谓“自研”的东西99% 都是从开源借鉴的。很多时候强调自研而不开源,很像是“皇帝的新装”。勇于开源,才能让明眼人看出来,你的产品、技术、人才有几斤几两。现在回看二三十年前的市场,当时的情况选择闭源没问题。但现在我们能看到成功的闭源产品越来越少,反而是和开源开放生态结合的产品,或者说和开源有很好交互的产品,更容易完成生态的构建。当然开源开放并不是要求 100% 开源,把关键的、有竞争力的部分开源出来,普惠社区用户和上下游的技术伙伴,就可以构建出好的生态模式来促进业务。开源中国:云厂商应该在多大的程度上去回馈开源?有没有什么标准去衡量?具体可以怎么做?堵俊平:我认为投入多少,是每个厂商根据自己的商业规划来去确定的,没有严格的定义和要求。但是我认为,云厂商要养成一个好习惯——Upstream First。这不仅是一种利他主义,也不仅仅只是出于开源的精神,从工程实用性的角度,Upstream First 也是能带来好处的。很多时候你维护了一个自己的分支,然后往里面放了些所谓自研的技术,但极大可能上游会逐渐出现比你优秀的代码(这个优秀来源于更大的人才资源池,并7x24小时不断的迭代),而你的代码还可能会和上游代码起冲突。这时就需要不断去根据社区最新版本做迭代,不断 merge,合并冲突,成本很高,长远来看也没什么价值。所以,我认为没有养成“Upstream First”的团队并不是业务上有什么阻力,主要是态度和经验问题。如果哪个团队不遵从 Upstream First来尽可能合入上游,要么就是他认为开源模块的维护不重要,要么就是和上游社区打交道的经验不足,觉得推动困难,想随便维护一下拉倒。这两种情形对最终客户都是不利的,都不可取。开源中国:华为云对于开源的态度是怎样的?具体做了哪些事情?堵俊平:广义上的开源,包括硬件开放和软件开源是华为整体的战略。在整体开源开放的战略旗帜之下的,不同的业务团队具体动作也会比较类似。其实在国内的开源界,华为的优质项目,整体也算是做得最多的了。像 openEuler、openGauss、MindSpore、OpenHarmony、KubeEdge、Volcano 等等,每一个软件在相应领域里,在国内排名都非常靠前,甚至是第一的状态。我们也希望可以从国内最优走向全球领先,现在华为的一些开源项目正在往这个目标努力,持续加大投入。全球的开源生态已经非常繁荣了,中国的开源生态也在快速发展中,我们希望华为可以成为中国开源的基石型的贡献者,帮助国家把中国的开源生态格局构建起来,包括我们前段时间一直在推进的“开源雨林”计划。像刚刚提到的关于云和开源之间出现摩擦,也有一个重要原因是很多用户没有付费的习惯,包括在使用开源项目之后不愿意回馈社区。但其实我们实际调研后发现,很多时候并不是用户不愿意回馈,而是对开源的认知或者说实战经验不够,比如有时候想到社区做贡献,但是又觉得社区看起来好像是一个虚无缥缈的东西,从而贡献无门。所以其实引导更多人参与到开源生态中来,是需要方法论来指导的。华为联合开放原子、信通院、软协等中立组织,通过“开源雨林”计划,希望能从开源的消费端-最终用户入手,提升他们的认知水平与贡献意愿,从而帮助开源领域更多的开发者、初创公司在生态中找到自己的赢利点,最终实现整个生态的繁荣。我一直相信,开源生态最好的模式是雨林模式。在雨林中可以既长着参天大树,也生存着一些小的苔藓,它们共同生长,相互依赖,从而让整个生态系统持续繁荣稳定。
堵俊平
现为华为计算开源业务(OSDT)总经理,开放原子开源基金会 TOC(技术监督委员会)主席,LF AI & DATA基金会主席,Apache 软件基金会 Member,Apache
Hadoop PMC & Committer 以及 Apache NuttX, YuniKorn 等项目导师。加入华为前,历任腾讯开源联盟主席/数据平台部总监,Hortonworks Hadoop 核心团队负责人等角色,积累了在云计算,大数据以及开源领域长期的研发、管理和业务经验,具有广阔的技术视野和业界影响力。
本文首发于开源精选集《开源观止》第 3 期,更多精彩内容,请点击查看↓↓↓