来源:「1024程序员节」之「技术英雄会」
主题:开源英雄共话 我们的开源时代
时间:2022年10月24日
主持嘉宾
刘韧:云算科技董事长、《知识英雄》作者、DoNews创始人
对话嘉宾
任旭东:华为首席开源联络官、开源与开发者产业发展副总裁
崔宝秋:小米集团副总裁、技术委员会主席
章文嵩:LVS创始人、CCF会员
蒋涛:CSDN创始人兼董事长、极客帮创投创始合伙人
刘韧:我们今天讲开源。说起开源,大家都觉得它已经变成了数字经济的基础设施了。第一个问题,大家怎么和开源结下不解之缘。我们想听的,更多是故事。请任旭东老师先讲。
任旭东:参与到开源领域,仔细回想起来,也有六、七年了。
最初开始用开源,还是20年前,我们接触到 Linux,当时就很震惊,怎么能靠一张光盘,就把操作系统装起来?当然,那时候还很幼稚,作为学生玩一玩。工作后,还都是在商业软件上。
仔细回想起来,现在能作为这个角色参与到开源,应该说跟六七年前我所在的公司所处的电信行业的一些变化有关。本质上来说,我们还是靠业务和战略驱动,当时我因为长期在华为从事电信网络的工作,其实在电信网络,我们之前更多的是从标准的视角,比如说3GPP、ETSI 跟国际标准的参与专利等等方面,华为也很快从跟随标准,到共创标准,再到引领标准。
大家众所周知的5G,从3G时代,我们跟进到4G时代,就有过中国自主的4G的一些标准以后,我们也力求跟国际上的标准同时合作,不要让标准分裂等等。到5G最后,网络其实是偏硬件的,我们的电信软件领域也是跟硬件有着非常紧密的结合,大概在2015、2016年前后,当时兴起的软件定义的网络SDN,触发了我们从电信的视角,转向开始用软件的视角,这张网怎么能变得更加弹性、自动化,更加可以按需进行一些调度。
从传统的电信领域而言,应该有一些互联网厂家像谷歌,我印象最深的是谷歌把它的G4网骨干网的一些技术——自建的骨干网,贡献到电信产业来,整个给运营商和通信领域带来一些新的视角。
这就是我仔细回想从电信切入到开源的一个起点,从那之后就一发不可收拾了。
SDN之后,当然首先就是控制器 controller的概念的引入,当时就有OpenDaylight 的项目,我们跟硅谷的斯坦福、开放网络基金会也发起了owners的项目,当时就觉得很新鲜,我们在标准领域起名字都很慎重,怎么在开源领域起的名字都很奇怪了。一些IT元素逐渐的注入,到后来就有Open-FA。
然后又有华为和中国移动发起的Open-O,就是自动编排的编排器的项目,以及到后来全球顶级的运营商中移动和AT&T联手共同孵化的,当然也有华为作为发起会员孵化的这种对电信行业还是带来很大的冲击。
到今天我们公司提出的基于自动驾驶网概念引入的自动驾驶网络AND,这个概念还是构建在跟开源相关的一些平台上。
除了电信这一块,我们有IT、终端这些领域,当然毫无疑问,也都跟开源有非常密切的关系,我大概就分享这几点。
刘韧:任老师,我想多问一下,开源对给电信网络带来了什么改变?给华为带来了什么改变?
任旭东:这个问题非常好。
我刚开始也说过,电信从事的是以标准为主导的。标准大概是5到10年是一代,5年一小代际,10年一个大代际。从我们体验到的3G、4G、5G,大概大家也能感受到,所以它整个的演进,产业链的互联互通首先是非常重要的,所以标准到今天依然是最重要的。
电信领域产业平台互动互联互通的时候,无论是全球从原来的信令的互通,到今天的网络的互通,到各种都互联互通是它的本质。
整体表现出来的,就是它的基础设施很发达,但是,从运维从自动化从怎么OPEX的视角看,一直是居高不下的。但这么多年,其实在标准领域,原来大家熟知的TMF电信管理论坛做一个准标准组织,也做了非常多的尝试,出了非常多的paper,非常多的架构级的参考文档。
各个国家的运营商加上国内的运营商,我相信大家知道从网管到上层的OSS,但这个OSS在我们开源领域有有不同的理解,在电信领域OSS就是运营支撑系统,BOSS这些系统都做了大量的投资和研究,但依然是七国八制的一个局面,所以造成运营商的整个OPEX居高不下。
这也是为什么运营商在数字时代,在后数字时代或者移动互联网时代,相对于互联网厂家在业务创新上也略显不足的原因,当然,运营商主要是提供基础设施,对我们通信的触动、最大的改变就是它基于源码级的相互协作的效率高了很多。
对于创新的改变、对于创新效率的改变,都是带来了很大的触动,同时也在这个领域引入了众多的多元化的要素,让更多的敢于创新的一些元素注入进来,对整个行业应该说是个积极正向的,激活的状态。
这是我看到的积极的一面,当然也有不足的一面。因为通信网络对质量的要求依然是很高的,保持更高的质量的情况下,怎么让这张通讯网更好的创新,目前来说还是在一个摸索的过程,并没有最后达到一个很完美的结合。
刘韧:我们接下来请崔老师讲一下,小米我们都很熟悉,小米是做手机的,安卓就是一个开源的最成功的产品。请崔老师讲一下,你和开源是怎么结下不解之缘的。
崔宝秋:感谢刘韧老师。今天的程序员节,特别想讲的是,我跟开源的结缘是1995年,当我出国去美国长岛Stony Brook(纽约州立大学石溪分校)读书的时候,才真正开始接触的。
在国内读了本科硕士,都特别喜欢写程序,当然对程序的热爱,也是后来让我真正着迷自由软件,以及后来的开源软件的最主要原因。如果咱不喜欢写程序的话,开源和咱们有什么关系呢?
到美国以后,我第一份在学校的工作就是做TA,当时有拿奖学金,奖学金就是 T A的形式,助教。我的第一个任课老师,他是一个很年轻的MIT毕业的大学教授,他是一个属于BSD的Hacker,一个重要的贡献者,他讲了一门叫做操作系统的课,我做他的TA,一下子对于Free BSD,对后面的GNU,以及他用Emacs的高超都让我很受震惊。
其实我真正接触自由软件,是从Free BSD再到GNU,GNU让我一下子震惊了,GNU给我相当于开了一扇窗,在这里面我知道了 GCC、 GDB这些东西,再加上Emacs让我觉得写程序、调试c和c++的程序,在Emacs加上GDB这种形式下如此之爽,特别炫酷,那时候才是真正遨游在知识的海洋。
那时候还没有开源软件这个说法,GNU代表了自由软件,那真是一个浩瀚的海洋,看到了很多优质的代码。我就如鱼得水,每天就泡在GNU里面,看很多东西。
Emacs是一个让人上瘾的编辑器。后来我一直说,Emacs是真正给工程师的一个编辑器,因为它可以写程序,它本身就是一个小的操作系统一样的,这里面让我享受到了看优质代码的乐趣,用优质代码的乐趣,用一些真正自由自主可控、自由的、可改编、可自己修改的,一些工具的乐趣。
那期间我们在系里面都用的是SGI、Solaris这些工作站特别昂贵,到了大概95年底96年初,才开始装自己的Linux,那时候我决定还是想装Linux,而不是装FreeBSD。
装Linux之后的乐趣,我觉得今天程序员节分享起来真的是,我相信大家都感同身受。但是现在这些年轻人可能感受不到了。当时我自己装了家里面的destop和laptop之后,有了自己的root权限,而且跑起 UNIX系统,比系里面那些昂贵的工作站还要快,写程序太爽了,而且作为超级管理员权力非常大,想做什么就做什么,然后怎么设置显卡声卡,怎么玩 x window,怎么设time server,怎么调这些路由器,这些东西让人着迷。
我混的社区最早的主要是Emacs社区,因为当时OS这门课,我们强迫学生们用Emacs,用CVS来做版本控制,用Emacs作为一个编程的工具,所以我一下子就喜欢Emacs了。
Emacs里面有一句话,你教人做一个KeyBinding,就是叫做快捷键,那么这个人就有可能hack一个晚上。还有一个说法就是,如果你教他写一个LISP的 function,那么他可以hack一辈子。
当时我确实着迷沉于Emacs里面,通过Emacs、 GCC写了很多代码,也维护了系里面的一些东西,包括当时用XEmacs,我要维护 XEmacs,安装 XEmacs,那时速度特别慢,但是后来速度越来越快,以后个人安装Emacs就非常快了, 这是早期在学校里跟自由软件最早的结缘。
后来我的博士论文的工作,从96年开始立项,当时做的是Prolog,也是人工智能的一个领域,我们的系统叫XSB(x extended SB Stony Brook),现在还是开源的。当时我们对外开源用 GPL开源,后来有很长一段时间,我是这个系统的主要维护者。我们这个团队要和全球200多家高校或者企业来一起合作,那时候就对开源软件管理、怎么协作,有了新的认识。
我对开源的理念认识真正的是从自己玩Emacs开始的,如何改Emacs,改了之后,大版本一来,如果不提交到社区就会被冲掉。我每次还得再花很多功夫,再重新把自己的一些patch在本地提交上去,自己再修改一下,非常累。所以,后来才认定了要跟社区一起走,要把自己的贡献放到社区里面。
后来才慢慢把我的一个重要的模块放到GNU Emacs里面,也算是真正成为了GNU的一个贡献者。这中间有很多乐趣,也学习到了怎么玩开源,怎么融入社区,怎么让开源社区接受你的代码,怎么和社区和开源巨人一起成长,这些乐趣聊起来当然很兴奋。
后来我的几段工作,第一份工作是IBM,后来在雅虎,Linkedin, 再到小米, 一路跟开源都没有离开过。
在IBM,我加入的DB2的团队,比较商用软件,不怎么用开源,但是我用开源技术,用DocBook用xml这些技术帮这个团队弄了一个开源,基于开源的文档写作的工具链非常强大,完全替换了老掉牙的一些文档写作。用EMacs,用DocBook就是 O'Reilly 他们用的一些出版发行的工具来打造。
到雅虎也是如鱼得水,因为互联网公司尤其搜索引擎公司特别拥抱开源,当时我差点加入了Hadoop这个团队,但后来我还是根据兴趣加入了搜索引擎团队。后来干了4年,就加入了LinkedIn,在雅虎有点小遗憾,就是我当时主要负责的一块程序想开源的。一个高效的带有预热性的搜索引擎的缓存技术,但后来因为交给微软, 交的特别快,后来有点可惜没有开源出去。
到了领英之后,我们也是拥抱开源。当时在领英开源,一个实时的全文本搜索引擎叫CCDB,当时我们也是跟一个小小的团队,四五个人开源了这个。这里面我也贡献了一个开源的类SQL语言的查询,语言叫BQL,Browsing Query Language。
这些技术在我后来加入小米之后,也得以应用。所以,在小米,我觉得开源也扮演了非常重要的角色,也感谢雷总对开源的高度认同。我当时成立了小米云平台团队,引入了很多开源的技术,包括刚才讲到在LinkedIn我们开源的CCDB,里面有BQL,我特别喜欢的查询语言。还有基于对Hadoop的成熟的经验与使用的情况,我们在LinkedIn用了很多Hadoop, Kafaka。当时还没有 Apache Kafka就是自己的Kafaka,Linkedin自己的,还有Azkaban,等等这些开源技术引入了小米,也帮助小米在早期在后台的云平台,很多云存储、云计算大数据处理,大数据分析上打下一些坚实的基础。
再到后来我们推出自己推出了自己的kV系统Pegasus,在AI时代,我们也推出自己的端上的 AI推理引擎,叫MACE: mobile AI computer engine。也是因为小米在极致的这种开源文化的影响下,我们吸引了Nuttx作者叫Gregory Nutt。
我记得很清楚,2019年跟他聊,他被小米强大的生态以及小米深度拥抱开源的文化所感染,所以跟我们小米一起合作。在小米帮助下,我们把Nuttx RTOS(实时嵌入式操作系统)系统推进了Apache Foundation,然后我们也基于Nuttx打造了小米的vela。
当然还有一个故事大家可能都了解,2019年主要也是因为小米深度拥抱开源,小米在开源上的一些长期贡献,我们吸引到语音识别界的一个大神,Daniel Povey博士加入小米。
所以一路走过来,现在想一想,接触开源到深度的拥抱开源,我已经算是在里面混了27年之久。不同阶段扮演了不同的角色,如果没有对程序的热爱,如果不喜欢写程序,如果不喜欢自由软件、到后来的开源软件的话,很难走这么长时间,我就简单跟大家分享这些。
刘韧:谢谢崔老师,请章文嵩老师讲一讲。
章文嵩:我跟开源结缘也是挺早的,因为我在国防科大念书,学校的计算机设备那时候是非常好的,我们有全系列的Sun的服务器。包括在我们实验室,这Sun服务器内置的tcp/ip怎么组网,都是我和一个负责实验室的老师一起完成的,所以那时候对网络是特别了解。我们学校差不多1995年的时间点,也通过 SERNET连到武汉连上网,同时我也是在在外面兼职,帮着长沙电信做网络的整体的规划,因为长沙电信是以太网连接互联网的一个试点城市。
那时候,我上网已经比较方便,通过BBS了解一些信息。我印象中,是通过BBS了解到开源,然后在浏览国外的网站,了解到更多的开源信息。当时Linux发行版Slackware比较有名。我记得让我姐从美国给我邮寄光盘,因为下载速度实在是太慢了。第一份Linux系统,95年装起来,给同学玩,也在长沙信息港的项目在DNS的server上装Slackware操作系统。当时已经用了不少开源软件,那个时间点基本上都是把开源拿来玩,然后在系统集成上用一些开源软件。
我是94年上硕士,一直到97年,硕士的课题做了一个用c++写的对象数据库。写了差不多两年时间,自己觉得写的比较得意,因为我对开源了解,特别想把硕士的课题写了两年的作品开源,但当时的条件所限,这是国家的课题,又不能开源,没有这方面的规定,所以这个软件挺可惜的,束之高阁了,一直也没有,因为我写了两年的时间。
但开源在我心里实际上一直埋了一个种子,到我念博士的时候,有一天闲着无事,在98年5月份,因为之前在系统集成上用过负载均衡的设备,Cisco的local director觉得这东西也并不复杂,当时我给 Linux内核还是2.0的版本,2.0版本是网络层有个IP masquerading, 就IP变换,那里面有一个功能叫put forward,put forward就把外网的一个端口服务映射到内网的一台机器上面,那是一对一的。
当时我想做负载均衡这个功能很简单:映射到后端的机器能不能变成多台,不是一台,然后加上负载均衡的算法,链接池子的管理 session的管理。花了两周时间,就写了一个特别简单的版本,它工作了。那工作了,然后就发到 Linux内核里面的子目录就net dev,就网络开发层的邮件列表,说我做了这个事情。
没想到,很快就有用户用起来,让我感觉是挺好的,因为写了一个软件,实际上是非常简单的软件,你想,两周时间写出来的,然后有人在生产系统把它用起来,让我感觉是非常好的。然后通过开源让更多的,通过在邮件列表上面回答用户的问题,响应用户的需求。用户往往会提出各式各样的需求出来,这是我们在实验室很难想象的,因为这些需求很多是来自真实场景,所以比我们坐在实验室闭门造车会好很多。
有时候说我觉得真实的需求价值可能会更大,所以就有了这样的一个过程,不断地跟用户互动,听取他们的想法,然后增加更多的功能。
这样的话LVS就一步一步的发展,随着时间的推移,也有更多的开发者进来。开发者有可能提交patch,我们要对把所有的credit要给别人,我们通过开源的过程把更多的贡献、名誉要给别人,我们可以凝聚更多的同学一块参与到我们的开源社区里面了。
中间一个特别有意思的事情,LVS被作为一个开源全球协作开发的一个例子,是2004年美国《连线》杂志 Wired杂志上发表了一篇文章。当时我都不知道,我一个硅谷的好朋友谢华刚他家里订阅了,他说《连线》杂志报道了你的LVS项目,然后他把那本杂志寄到我家里,我才看到。
我也不知道这个故事是怎么被人说出来的,基本上是2000年的时候,我们社区的一个开发者Horms,提出一个想法,基于防火墙标签值做负载均衡的调度,而不是用网络协议,然后IP地址端口来做。
这样的一个想法,他那时候在美国提出来,然后回到他老家休假,在澳大利亚做的,他把初始的版本发给我。我在长沙,有些代码可能会影响整体的性能,我在他的代码上把性能调优一个版本,我又寄给我的合作的开发者Julian Anastasov,他在保加利亚,他在我的修改的基础上进一步再修改。
然后我们又把这个代码发给Horms,因为所有的活动都是那时候都在邮件列表上,有类似的提了一个需求,你这个功能不光是对一个TCP的链接,有可能跟UDP,怎么做持久化链接可以绑在一起。
他提了这方面的需求,因为要调视频流的服务,然后RealPlayer的工程师在美国,他说我们社区新做的功能或许能解决你的需求。那根据他的需求,我又重新打了一个版本,最终发布了。
基本上这里面看涉及到有澳洲,有美洲,然后有欧洲,还有亚洲。在长沙,这基本上是几大洲的全球协作完成了一个功能。这个功能后来在RealPlayer的那家公司视频流服务,整体的调度用上了,不光是调度TCP,还有视频流的UDP的数据也统一调度,这是融合在一起调度的。所以有时候我们虽然开发了一个功能,但用户怎么使用是远远超过我们想象的,而且很多的需求是用户提出来的,我觉得这是开源的魅力。
因为确实在开源的过程中能开阔我们的眼界,开源对我个人来说也是打开一个窗户,对我个人的成长帮助很大,通过开源我认识了更多的朋友,跟高手互动,怎么写出更精巧的代码。这个过程中怎么把代码打磨到极致,因为打磨到极致这个代码就有生命力。要写出更精简的版本,实际上是挺难的事情。当然LVS本身也是属于比较幸运, 那个时间点出现,然后一路成长。本身代码量也不大,就1万多行代码。
2003年进到Linux的是官方内核里面去,让我感觉不错的,确实开源对我个人成长帮助非常大。
这个代码在Linux官方内核里面已经活了24年了,而且还在广泛使用,基本上无论国内还是国外的互联网公司在4层负载均衡,都在用LVS或者LVS的变种。有些变种就是IP的报文收发用DPDK了,核心还是LVS。基本上大家每天上网,有可能你发的请求报文都是经过LVS调度,这感觉还是不错的。
开源可以把很简单的一个程序,慢慢长成一个在广泛使用的程序,开源的过程我觉得是非常棒的。
刘韧:蒋涛,从来没听过你的故事,你都是听别人的故事,今天听听你的故事。
蒋涛:刚才听三位的分享,还是很有意思的。我可能接触开源是最多的,我从几个角度讲一下。
我首先是一个程序员出身,程序员其实最热爱的就是源代码,我那时候就到处收集源代码,只不过那时候开发是用微软系统windows,所以我还做过一个光盘,就叫《程序员大本营》,其实收集的就是各种源代码,推到市场以后,发现特别受欢迎。
我们还建了CSDN这个网站,其实就是给大家做分享。因为当时其实还没有那么接触到开源,只是从程序员的一个本能的需求出发。办了这个网站以后,开始接触各种技术人员,比如2000年遇到洪峰先生,洪峰把Stallman带到中国,他还组织翻译出版了开源文集《Open Source》,也是在美国刚刚出版。
我们当时就觉得这群人好崇高这个感觉,我们写代码好像要挣钱,但Stallman那时候我就接触了他,包括洪峰自由软件的这批人,我觉得真的是有点原教旨主义,理想驱动的,就很敬佩他们。但是,我们还是在搞商业的这套东西,所以这是第一次我跟开源的接触,就接触了这些人物,觉得他们很有理想。
第二,当然后面也发现开源带来了整个互联网,其实互联网的结构就是LAMP,因为我们CSDN后来主要就讲技术趋势。你会发现开源的比例怎么越来越高-LAMP,原来Java一开始出来是不开源的,后来应该是06年是吧,Sun就宣布开源。当时都是为了对抗微软,微软作为一个邪恶帝国,我们用开放打败他,微软的敌人们都团结起来搞开源,然后在互联网上取得了很大的成功。
我刚才也在想这个故事,有几个故事对我是比较有有触动了,就让我对开源理解更深刻。
我们搞Hadoop出来的时候,第一届会议在中科院计算所,就十几个人参加。第二届的时候规模就开始搞大了,应该300多号人。第三届时,已经1000多号人了,长得太快了,开源的传播力就非常大。
还有一个事儿,当时感触特别深。全球的都在一起,我们当时要求邀请了像Cutting(Hadoop之父Doug Cutting)那些都来, Hadoop的创始人,后来Databricks的创始人,还基本上在大数据领域的那些开源的大专家们都来过。
这是第一个对我有很大一个触发的,就感触到开源生态的威力。
第二个我们还办大会,叫Open Stack,就那时候搞云计算就出来一个Open Stack,也是开源的,然后就请人讲,但是国内的人不是很多,新浪那时候也有云平台叫SAE,SAE的一个小伙子叫程辉,他就来讲,他讲我们怎么用Open Stack在新浪怎么做。
他觉得新浪也还有这么好的技术,这还不惊讶,更惊讶的是第二点,他被选为Open Stack基金会董事了。你知道他多大吗?他是1987年的,那一年他大概是24、25岁,被选为一个基金会的董事。我觉得说,哇塞,原来基金会是这么治理的。
为什么呢?因为那时候Open Stack出来,互联网公司用它,新浪是第一批,然后他还带了一批人才出来,而且你想SAE在新浪属于很边缘的部门,他的人才也不是很好,但是那些人居然得到了国际技术界很大的一个认可,这也让我对开源有了一个更深的认识,它是生态,它是一种文化。
刚才文嵩讲,它是一个开放的,你只要进来,一颗种子一下就长大了。这让我对开源有了第二次的认识,它不是一个简单的什么理想主义,或者为程序员提供源码,当然Stallman还有更多的思想我们不展开讲。
第二段就是感觉到它生态的稳定,我去国外比较多,像Github一出来,我觉得真的是对程序员特别好,而且把这种开源的规模和方式,进一步的壮大了,我真的特别热爱。
接触了更多的开源的公司以后,你会发现开源的商业化,有三个阶段。
第一阶段是理想主义,以Linux为核心的,包括Stallman;第二阶段,我觉得是互联网带来的一个开源生态的发展,用开放来对抗封闭,用开放来促进整个技术和互联网的发展;到了第三个阶段,你就会发现,它其实还是需要商业支撑的。
我观察到一个比较重要的,就是开源这些公司,包括后来成立的MongoDB, Data Bricks,在2012 、13年以后,这些公司的商业化得到了一个很大的进展。几年以后再去看这些公司,是5倍到10倍的一个成长。
美国有人做了个分析,收入一亿美金以上公司,2013年之前只有4家,Linux和MySQL,Red Hat,当时Oracle也算,他用My SQL,所以大部分收入其实都没有过1亿美金。2020年再统计这个表,已经到50家以上。开源的商业模式,在2013年以后得到了一个极大的丰富。
所以这是我跟开源接触就这么三个阶段。
刘韧:现在进入第二轮问题。开源从以前的理想主义小团体,慢慢就像蒋涛说的,到2013年以后,商业化得到了很大发展,很多的商业公司也进入这个领域。竞争是资金的竞争和人才的竞争,更激烈,规模也变得越来越大。我想问任老师,华为对开源的投入有哪些成果?投入的规模如何?未来,华为在开源上又有什么计划?
任旭东:就像我刚才回忆的,大概从2015、 16年,因为电信网络的软件定义这个概念的引入,我们慢慢地去加大对开源的投入。
但说回开源这件事儿本身,我们公司一开始对标准专利的尊重和投入,一直是很大的,过去二三十年的投入,我相信大家也知道,在很长一段时间,我估计到今天为止,依然是国内最大的专利的贡献者,在全球也是这样子。
作为软件领域的事实的标准,开源我们的引入和参与,大概可以到回顾到2010年前后。在那个时候我们已经是Linux基金会的最早的一批会员,而且把Jim Zemlin等人介入介入到介绍到国内。
甚至在后来像蒋涛老师刚才提到的,因为有了Open Stack,有了一系列云原生的技术之后,然后在当年在另一次基金会,我们也参与发起了CNCF的基金会。这是大概在2015年之前,我们参与的时候都是在比较小范围的,在基金会的治理、参与方面。
但一开始我们参与的手法都超出了原来的个人主义,从公司的战略和和商业的角度来考虑的,所以我们在基金会的帮助下,也是借鉴了国外的像IBM等等公司,当年为什么要把Linux社区搞起来这些模式。
很早在公司就成立了一些开源的类似于办公室,开源的一些战略的小组,驱动商业团队去做一些开源,那更不用说到2015年之后网络层面的开源,以及在2017、 18年开始,我们在IT业务上的加大投入以后,像众所周知的,我们后来也是参与发起了国内的原子基金会,这两年在国内发布的欧拉(EulerOS)操作系统,鸿蒙操作系统等等,这些基础软件层面的开源,当然也有数据库高斯(GaussDB)的开源等等。
这些方面都代表的是我们在后端有非常多的投入,应该说从 github上去看,或者加上具体的统计,都是公开的去可以看得到的数据,持续的投入,月度活跃在这些上面的贡献者都在三四千人以上。
因为有战略驱动和商业的闭环的逻辑,所以开源在我们公司确实是一个比较慎重,比较重大的事。当然这也是我们希望后期跟开源文化更好结合的一个点,既要自上而下的,要有战略驱动,业务驱动的决策跟商业的闭环。同时也希望有自下而上的,这种程序员驱动的一些更好的社区的互动。
但不管怎么说,于公司而言现在企业参与开源过程中,最大的就是怎么能持续的让程序员在社区去参与贡献。因为我们在前期接触到的,很多开源在一开始如果商业上不是想得很清楚的话,程序员通过个人兴趣去参加开源,我觉得至少在中国还达不到一批长期的极客,靠个人兴趣能长期存在,所以怎么能长期去贡献。
如果说商业上最后的决策不支撑开源的项目的话,它最后因为工作岗位的变化,其实我在社区看到的社区确实有魅力。如果说好的,就像刚才章文嵩老师说的,如果程序不断的精益求精,打造极致,简化的架构,极高的性能,很好的体验的话,它传播生命力是非常强的,长大的可能性也是很大的。
当然我们更谨慎地看到是他少量的明星的社区背后是有更多的社区,它当然这个是淘汰或者是大浪淘沙的机制,这也很自然,但是更多的我们看到社区要长大,他是要幸运加能力加各种因素凑在一起。
所以我看到的很多社区,因为架构、商业、程序员的投入都会有一个难以为继的状态,所以这也是我们在今天企业参与社区以后,一定一开始在战略上要很好的去思考清楚,然后把自己的优质的技术程序员,企业的雇员,以这种很重的资源的方式投下去,然后让他长期的发展,而且今天的程序,特别我们在公司参与的,我们更加呼吁的,或者跟我们业务相关的都是比较大型的基础软件。
这些软件无论是从代码的规模和需要孵化的生态的规模都是巨大的,确实不是几十个人的程序员社区就能支撑的。我们需要的都是几百上千人,当然今天我们在欧拉和鸿蒙的投入都有这个量级,但其实在我看来,从战略上都还远远不够。
我们希望看到的是,在国内应该有上万人、几十万人的,最后能从高校、各种伙伴的程序员都能投进来,目前看还是在路上。所以说回来,我也没有说,完完全全仔细把一个准确的数字统计出来,但大概都在三四千人的平均月贡献,然后一些大型的项目,像鸿蒙我们有一两千人在做,欧拉更是一两千人的规模。当然,我们从全面的参与Linux基金会上游社区,本身就有我们统计了一下,在整个社区,每个层面都有一两百个席位,是我们程序员持续地在社区参与社区治理和共建,在社区写代码的都是几千人的量级。
我们今天慢慢地,希望长期去继续把开源文化引入到我们公司内部,是因为我们的软件程序员内部统计大概有10万人的规模,所以我们希望更进一步。
这些程序员我们知道,肯定基本上八九成都在用开源。但我们始终严格地认为,你没有去社区参与活动,至少要有非常基本的回馈社区的活动和参与的话,我们都没有把它算进来。
回到刘韧老师的问题,就是真正我们认为还没有达到一个全员更广泛的参与到开源共治共创的地步。但我们从业务上看,从必要性上看,我觉得都有必要朝着这个方向去努力。
刘韧:华为有10万程序员,按照你的标准,有贡献的大概有多少?有1万人或者是有1/10了?
任旭东:应该有1/10以上。
刘韧:这个空间还是很大的。
任旭东:对我们来说,我们已经取得了很大的成绩,进步的空间依然很大。
刘韧:阻力是什么?是认识不足?还是和商业化的冲突?或者有其他原因?
任旭东:其实严格意义上,我们经常内部一讨论,在开源界特别热衷的,这是不是我们的软件文化开源文化导致的。
但我觉得对这个问题浅显的理解,就到了这个答案就为止了。我们要有激情,要有热心,要有要有这个极客精神,要有工程师文化,但其实当你在开源办公室,我在集团负责这个建设时间长了以后,深入下去跟各个我们的业务条块的leader,我们内部称之为商业线的总裁们去碰,以后发现,如果简单的归结于开源文化或者是简单的软件文化,第一,它是个看起来无比正确,但是几乎做不了太多事的一个答案。
所以深层次的还是回到业务上的需要、本质。比如说你在云原生领域,或者是现在从事AI。它的本质就不是你简单的去通过专利,通过竞争就能简单完成商业上的成功。
它发展生态,它去超出企业的边界,去跟不不仅仅是自己的客户,要在早期开始一些共创,我觉得这都是必须的。就像我们做了手机以后,也是要去除了我们擅长的面向to b的客户以外,我们也要去搞考虑我们to c业务的体验一样。
在我们从事了一些对于比如说云,对于计算产业,做芯片,做这些服务器,这些生意以后,发现它不仅仅是你把产品的竞争力能做好,它就能带来商业成功。它是从业务的本质上,从第一性原理上推导,你就要在你的产品边界之外,孵化出一批应用的生态或者是伙伴。
这些伙伴你不能只在签了商业合同之后才开始进行互动,你必须在早期在社区进行共创。有那样的需求的多元性,也拓展了我们对商业的更大的理解,商业的边界也是我们也不断的去探索。也在这个基础上,我的理解,还不能说是阻力,核心就是我们随着我们的业务一块块的拓展出来,一个个产业我们进入,如果我们在里面想有所追求,我们就得按这个产业的规律办。
最后就是你按产业规律办的时候,如果他原来注重的是专利,那就去把专利做强。
现在看我们进入的除了通信领域之外的很多行业,它在开源上对于软件本身,软件对开源的一些本质上的需要就导致我们也是越来越重视肯定,所以这是一个必然的过程。
因为我们的其他业务还在成长中,我觉得这是一个非常自然的,很快成长起来的,所以我们现在内部的内源文化也很注重。我们内源文化当然本身就是共享,因为团队之间的共享,在一个有10万人程序员的里面本身就是一件很有意义的事,对于企业来说价值也很大,所以我们现在在内部有内源社区。
开源文化跟内源社区的对接以后,下一步很自然的内源社区里面就有很多好的技术,好的中间件的东西就会需要跟外部进行更好的协作,也会自然而然的走到外面去。
刘韧:好的,崔老师。同样的问题,在小米投入的规模有多大?下一步会怎么走?
崔秋实:这个问题我还不知道怎么回答,因为拥抱开源在小米也很深了,但是现在没有一个具体的量化的投入指标,我个人觉得在开源上的贡献还是靠代码来说话。
我要讲的是,今天,开源文化在小米已经根深蒂固,比如刘韧老师刚刚提到的,大家都很熟悉的MIUI,我们也不停地往安卓社区回馈一些贡献。
再到云计算、大数据,和今天特别火的AI,再包括小米云原生,也是无处不在,再到机器人,包括智能制造领域。雷总对机器人领域方面的技术非常重视,也一直在讲,从我们机器狗铁蛋发布第一天起,就说要用开源这个模式,一起打造机器人领域的技术。
基于这些,我觉得开源在小米这家比较有代表性的企业里面真的无处不在,小米也有专门的开源委员会来能够协调全集团工程师的开源力量,统一步调,一起来打。
所以我个人觉得,如同小米在前些年在Hbase上的投入一样的,我们成为一个最大的贡献者团队。
再到后来像今天的NuttX,小米也是贡献了1/3,当然还有其他的一些科研项目,小米还是本着一种比较纯粹极致的开源理念,一起共建参与,同时共建回馈社区,一起来在享受开源的红利的同时,积极的回馈社区,积极和开发社区一起共建,一起推动各个领域的技术进步。
所以,我个人的一些理念,今天上午我发言里面也讲到了,我说,开源是目前人类技术进步的最佳平台与模式。如果大家真正能够抱着开放、共享、平等,然后协同创新,这种开源的本质来开源的话,我觉得整个社区会起来,我们也会解决很多所谓的卡脖子问题。
小米在未来开源的布局上,我觉得还是没有一个上限的,我们会多参与,在用开源技术的同时,帮助开源技术成长。
刘韧:崔老师,我想知道,小米的MIUI项目,对安卓的贡献有多少?其他的安卓手机可以用到MIUI的程序吗?用量有多少?
崔秋实:我还没有具体的数字。首先,MIUI是基于安卓的,安卓是基于Apache License开源的,小米的MIUI本身是不开源的,MIUI本身一些核心技术它没有开源,这也是符合Apache协议的规定的。
但是小米在一些核心的安卓领域,我们会回馈到谷歌团队或者安卓社区。这里面这些量我还不太清楚,但是小米的安卓开发团队非常大,如果有值得共享给社区的,我们肯定会共享。
刘韧:章文嵩老师好,我上次采访你时,你还在一个基金,当时是从企业去了基金,现在自己开始做LVS,我觉得都是给开源做贡献。我想知道,你在阿里、滴滴、基金,还有LVS, 各种角色都参与了,这些角色之间有什么不一样的吗?
章文嵩:我自己一直非常认同开源。
无论在哪,因为我自己从开源的受益特别多,所以我觉得开源对这个世界是很美好的事情。
我还是尽我自己的能力,包括我的时间,尽量为开源做点事情。
因为开源还是整个互联网行业的基石,几乎所有的互联网公司都是基于开源软件做底层的基础软件的,所以开源给整个行业带来变化特别大。
我在阿里的时候,做基础软件这一块,我们团队的同学们特别喜欢开源,所以在阿里,实际上开源了很多项目。我从09年待到16年,走之前大概已经开源了200个左右的项目。当然,现在项目更多了,可能有上千个,阿里的同学们在开源投入很大,也做得非常好。
因为阿里底层的软件,基本上都是开源加上自主开发,实际上是为阿里的整体效率、成本提高是很大的。而且2011年去IOE之后,阿里定下来的规矩,在生产系统业务系统上面,任何黑盒子的软件,是不被接受的。
因为出了问题要第一时间解决,而且通过开源,展示自己的能力、开放性,可以吸引更多的人才进来,更多的人才对阿里未来的云计算发展帮助挺大。
我觉得很多企业都受益于开源,也拥抱开源,回馈开源。我相信企业如果做开源,对自己的技术能力成长的帮助,是非常大的。当然,我也看到国内越来越多的企业对开源做贡献,国内开源的力量,我觉得有可能已经站在世界第二位,因为我们有大量的程序员,实际上是在人上面,有巨大的资源,对开源也有了越来越多的贡献。
我觉得,国内开源还有提升空间的地方,就是多家公司怎么围绕一个开源项目,可以进行协作。刚刚崔总已经提到MIUI,华为这边有EMUI, OPPO那边有ColorOS,背后的种种问题,需要比较纯粹的开源组织,能把三家公司或者更多公司凝聚起来的还没有。所以各家都以自己商业化的角度思考,都选择了闭源。在开源的产品基础上,做闭源的产品,实际上力量很分散。
但这不是一个例子,我们服务器CentOS停更之后,服务器的操作系统发新版,能不能形成合力?现在有很多家也没形成合力。国内的AI芯片创业公司,大概有四五十家,这在全世界绝无仅有。他们的软件工程师比硬件工程师还要多,有可能是2到3倍,大量的人力在做扩大兼容,怎么适配PyTorch、 TesorFlow。大家做的软件工作,其实都是一样的。
目前没看到一个开源项目,把AI的底层的中间层给做掉,每家公司各做各的,对我们国家来说,人力浪费是巨大的。你想,四五十家公司,各做各的,做的却是类似的事情。所以我们在开源的治理上面,怎么样对开源的认识、理念,尤其是商业公司怎么样更加开放,可能还有很长的路要走。
刘韧:时间到了,真是意犹未尽,今后找机会再采访各位老师,谢谢大家。
刘韧商业写作通识
刘韧:煮知识 论英雄
刘韧:电影是小城市窗口
刘韧:编辑的价值
刘韧:和人物共同创作人物故事
刘韧:好记者到事实为止(2020修订版)
刘韧:怎么学习(2020修订版)
刘韧:初级写作者必读书单
刘韧:人物报道经验之他是谁