导读
刚刚过去的5月,字节跳动在内部邮件中正式官宣了“开源委员会”的成立。其实,针对开源成立专门的组织机构,对国内的大厂来说已不是什么稀奇事,比如阿里巴巴早在2015年之前就成立了开源委员会,腾讯在2019年正式成立开源管理办公室,其他巨头如华为、百度同样早就成立了“开源办公室”。
至于国外的互联网巨头,他们在设立“开源办公室”(Open Source Program Office,简称 OSPO)上,比上面提到的国内大厂还要早,比如,早在 2004 年,谷歌就已经成立了自己的OSPO,这也是最早成立的一批OSPO。
跟这些大厂相比,字节的开源委员会的到来显得有点“晚”。
越来越多的公司成立OSPO表明,企业对开源越来越重视。而且,OSPO正在从IT公司向国外的大学、政府和民间机构进行外溢,OSPO在国外逐渐成为一种潮流。
但是,大部分人对OSPO认识却又少之又少。根据The New Stack、linux Foundation Reasearch和TODO(Linux基金会名下一个专门致力于普及OSPO的工作组)在去年9月发布的一项调查,没有成立OSPO的企业中,有35%的企业表示没有考虑过这件事,有28%的企业表示他们没看到成立OSPO所带来的商业价值,更有19%的企业表示他们从未听说过OSPO这个概念。
所以,我们有必要先弄清楚国内大厂设立OSPO的前因后果,才能对OSPO在我国的发展,有更客观深入的认识。
大厂为何纷纷成立“开源办公室”?
开源运动兴起之初,众多科技巨头采取了坚决抵制的态度,比如,据说当初微软曾禁止员工参与和阅读开源代码。究其原因,是大型科技公司与开源社区之间有着商业价值观层面的差别和冲突。开源倡导开放、共享的模式,对商业软件授权的盈利模式构成了挑战:毕竟,传统软件公司的成功在于闭源,而开源的软件是卖不出价钱的。
但随着IT界逐渐步入ABC(A指的是人工智能AI,B指的是大数据Big data,C指的是云Cloud)时代,IT公司的商业模式也发生了变化,不再像以前那样单纯依靠卖知识产权或者是软件,卖服务逐渐成为重要的营收来源。卖服务这种模式牵涉的范围更广,这就促使IT公司在标准上要更有主动权。
当前的IT界,已经不是像过去一样由很多公司一起成立一个标准规范,而是谁先做出来的开源项目被广泛采用,谁就在标准上更有话语权。
在51CTO的技术群里,一位名为“紫竹”的网友也持有这个观点。他认为,企业开源是为了成为事实上的标准,掌握了标准话语权,就掌握了市场主动权、主导权。他还举了一个例子来说明这一点:谷歌自定义了一个格式KML,谷歌投资加入了GIS行业的OGC(开放地理空间信息联盟Open Geospatial Consortium的简称,是一个非盈利的国际标准组织,它制定了数据和服务的一系列标准,GIS厂商按照这个标准进行开发可保证空间数据的互操作)以后,KML成为了OGC的标准之一,以后的GIS产品几乎都要实现对KML格式的支持。如果KML不是OGC的标准之一,那就只有谷歌自己支持这个标准,谷歌地图、谷歌地球等产品就得不到其他厂商、开发者的支持。
在国内,企业开源还能获得其他好处。51CTO技术群里,一位名为“任霏”的网友指出,开源项目可以免费使用仓库、CI/CD、安全扫描、IDE工具等服务,非开源项目就需要花钱。
这是IT巨头从反对开源到拥抱开源,态度发生180度大转弯的一个重要原因。
更何况,就算企业自己不做开源,也不能真的阻止员工接触开源。开发者参与开源,不光是基于开放、共享的“情怀”,还有一个相当重要的因素,就是他们能在开源中学到东西。
国外一个名叫“Macrae”的网友说,他在参与开源以前,从未写过PHP或HTML/JavaScript,不知道SVN和后来的Git是什么。
阿里巴巴的技术副总裁贾扬清也认为,开源是一个很好的练兵场,开发者可以通过参与开源锻炼自己的技术能力,并且清楚知道自己的能力在什么样的层次上;另一方面,开源社区也会帮助开发者提高代码编写水平、设计能力和系统开发能力,这是一个双向促进的过程。
虽说企业做开源可以依靠工程师的个人兴趣来驱动,比如阿里巴巴早期的Dubbo、Fastjson、Druid、Sea.js、Arale开源项目,字节的Rcproxy、Modern.js、CloudWeGo、BytePS、Fedleaner等开源项目,都是靠内部员工自发推动的,但仅凭工程师的兴趣和热情是不够的,不加以规范和约束往往会造成问题。
去年10月,抖音前端团队宣布开源其设计系统和UI库Semi Design,随后有网友指出Semi Design的代码中出现了友商同类产品的痕迹,项目陷入“抄袭风波”。虽然抖音前端团队工程师很快发表了致歉声明,但事件已经在开源社区引发热烈讨论。接着到了12月,2021年12 月,抖音的海外版TikTok因为违规使用 OBS等源代码,也被推上了舆论的风口浪尖。
一系列的事件这让字节意识到,做开源需要引入公司级的策略、规范和流程机制,全面地推进开源合规流程,才能避免重蹈覆辙。
另外,随着公司的规模越来越大,在有更多项目开源或计划开源的情况下,如何更有效地投入资源、更好地支持开源项目的发展,这也是开源委员会要达成的目标。
其他大厂成立OSPO的初心也差不多,比如腾讯内部成立了开源管理办公室,下设项目管理委员会、腾讯开源联盟和开源合规组三大组织,旨在自上而下地传递腾讯开源策略,自下而上地落地开源技术生态,同时,通过开放的开源评审平台,孵化和培育优秀的自主开源项目。
有了OSPO,开源就万事大吉了吗?
大厂成立OSPO,初心是希望建立一套成熟的方法论帮助开发者更多地参与开源,贡献开源,并从组织上提供一系列支持与保障,但这不意味着有了OSPO,企业的开源之路就能顺顺当当地、自然而然地走下去。
就拿国内比较早成立OSPO来说,其在成立了OSPO后相当长的一段时间里,开源之路进展缓慢甚至停滞:阿里的第一个开源项目Dubbo,甚至从2014年之后,两三年时间都没再更新过。这主要是因为,在这前后,阿里巴巴集团于纽约证券交易所正式挂牌上市,股票代码“ BABA ”。随后,阿里全力发力移动互联网,各项业务进入全面发展阶段,同时阿里也进进行了组织架构的调整,以便内部开发者能将更多精力投入到业务研发中。
直到2017年,阿里才正式宣布将开源提升到集团战略高度。阿里之所以重新开始重视开源。很重要的一个原因是——客户的需要。2017年开始,阿里云的表现强势,阿里云的一些客户在上云之前习惯了使用Dubbo,希望能在使用阿里云之后能继续保持,这才让阿里巴巴在开源层面的声音越来越多。
从阿里的这个案例中,我们可以看到,只有企业的利益和开源有很大的交集,企业才会有动力持续推进开源项目。
如果只是出于应激反应,只是模糊地觉得开源是未来软件发展的趋势,哪怕成立了OSPO,建立了一套规范和流程机制,也不能确保公司的开源不会流于表面。红帽公司将那些仅仅将代码公开到一个公共仓库的开源方式戏称为 “把代码砸到墙上(throwing code over the wall)”。
当然,如果把开源仅仅理解为做技术宣传,以吸引人才加入或者抢占市场,也有问题。
也许,云原生计算基金会首席运营官和Twitter前开源项目负责人Chris Aniszczyk曾说过的一句话,才是对企业开源的最好注解:“你绝不希望是自己开源项目的唯一贡献者。你是期望让公司以外的人为你的开源项目做出贡献的。归根结底,你永远没办法雇佣世界上的所有顶尖人才。”
换句话说,与外界人才保持沟通才是开源的精髓所在。