首页 运维杂谈华为开源能力中心杜玉杰——开源纵横谈:谷歌与开源那些事儿

华为开源能力中心杜玉杰——开源纵横谈:谷歌与开源那些事儿

运维派隶属马哥教育旗下专业运维社区,是国内成立最早的IT运维技术社区,欢迎关注公众号:yunweipai
领取学习更多免费Linux云计算、Python、Docker、K8s教程关注公众号:马哥linux运维

华为开源能力中心杜玉杰——开源纵横谈:谷歌与开源那些事儿插图

Google掌门人Eric Schmidt在《How Google Works》一书中有个章节专门谈及战略,并且把开放提升到战略的高度来看待,当然这里的开放包括企业文化,组织氛围以及开放创新等多个维度,现如今企业如何开放创新已经有很多专著专门论述过了,但讨论开源与企业战略的并不多见,本文希望通过聊聊谷歌与开源那些事儿,揭开企业开源战略的冰山一角。

如今互联网技术已经渗透到商业领域的每一个角落,既有新商业模式所带来的冲击,例如uber对于传统出租车行业的颠覆,又有交易双方角色的变换,消费者对商品的选择不在仅靠企业的猛烈宣传,更多的是由消费者自己来评判,大众点评就是一个栗子。而每一个互联网企业恐怕都离不开开源技术的支撑,如果没有了开源技术简直难以想象。但企业又是以盈利为目的的组织,战略制定的本质就是要获得竞争优势,对企业来说这种优势持续的越长越有利,对企业来说选择了开源意味着放弃了控制权,而战略本身也应该是开放的。Eric Schmidt写《How Google Works》这本书的初衷也是想秉承硅谷前辈的精神,希望将“魔术师的秘密”转化为人人皆可利用经验与大家分享。那么开源在企业战略中到底是如何发挥作用的呢?我们一起来看看谷歌是怎么玩开源的。

混沌初开

在谷歌创立早期,尤其是1998年的谷歌,系统迭代很快,用户增长更快,但工程师并不多,因此很多早期代码在内部都是基于模块共享的方式编写,项目之间交叉依赖严重,所有的模块都混杂在一起,即使想把代码开源或者回馈社区也会非常困难。并且由于资源有限,内部项目也就很少考虑贡献开源或者回馈社区,更没有考虑根据社区的模式进行研发,以至于除了像Linux kernel这样少数比较独立的项目之外,其他内部项目很难开源出去或者回馈给社区。另外早期谷歌使用的linux内核版本非常旧,内部写的patch对社区也几乎没有什么价值。谷歌曾发现和修复过一些隐藏很深的bug,但这些bug也只有在谷歌这样的大型的应用规模下才会出现,例如,2003年曾发现一个很少见的IDE Corruption bug,谷歌在硬件上花费了100万美金才修复和规避。直到后来谷歌升级新内核之后才开始逐步开始参与贡献社区,首先是逐步提交已有代码的补丁,后来开始贡献一些新代码,例如驱动、子系统,或着一些新的思路,当然这些工作都可以在网上找到。LWN有谷歌2009之前对kernel内核贡献的一个统计: https://lwn.net/Articles/357658

另外在谷歌初创时期,帝国商业模式的根基“搜索服务”需要处理和存储海量的Web数据,并且每天要应对数以百万计的搜索请求,所以内部不得不需要维护一套强大的分布式系统。但可惜的是其海量的处理能力不是商业软件所能提供的,即使有的话其成本和价格也不是年轻的谷歌所能承担的,所以在这个领域谷歌基本靠自研积累了很多经验,形成了引以为傲的核心技术。其中对业界影响深远的当属云计算的三驾马车:GFS、MapReduce和BigTable论文的发表了,这三篇重量级论文不仅让大家了解了Google搜索引擎背后强大的技术支撑,而且使得克隆这三个技术的开源产品如雨后春笋般涌现,极大的推动了云计算相关技术的普及。所以这个时期谷歌对于开源主要的贡献大多是类似的半成品,包括通过发表论文等来阐述其技术思想和原理。

从技术驱动走向商业战略驱动

2003年谷歌投资人的一封信[注:参见《How Google Works》前言部分]对后来整个谷歌的战略起到了非常深远的影响,这封邮件讨论的主要问题也是当时每一个初创公司都要回答的:如何应对微软的竞争,颇有现在投资人拷问创业者如何应对BAT的感觉。当时刚刚加入谷歌不久的乔纳森开始牵头负责策划实施一个名为“谷歌战略:过去、现在和未来”的方案,这个战略基本奠定了谷歌十年的成长基石,该战略重点阐述了如何打造了一个价值创造体系:

  1. 信赖技术洞见,而非市场调查;
  2. 为增长而优化,而非营业收入;
  3. 了解竞争对手,但不要着了道;

紧接着隆重登场的是2004年加入谷歌的Chris DiBona,他一手创建了谷歌OSPO(Open Source Program Office),开始推动谷歌完善开源战略,并被提拔为开源总监,带领一个团队专门负责帮助谷歌员工如何发布开源项目,贡献代码,以及确保所有团队和产品满足开源许可协议的要求。

分析谷歌开源战略之前,首先我们来看下对谷歌来说什么是不能开源的。如果说微软的成功很大程度上得益于盖茨对个人PC发展方向的把握,并引导整个行业往有利于自己的方向发展,以至于PC时代的产业格局基本上可以描述为WinTel时代。那么互联网时代,谷歌两位创始人佩琦和布林对于未来的把握比其他互联网公司要更精准的多,并成功的将用户使用互联网的习惯从浏览转向搜索。要知道当时门户网站才是主流,在这个新游戏的规则下面,谷歌抢到了和门户网站竞争的至高点。当搜索变的越来越重要之后,搜索广告也就越来越值钱,而对于具有明显优势的领域选择封闭显然才是上策。拿谷歌赖以生存的搜索和广告算法为例,用谷歌自己的话说“有技术洞见“,并且一定不会开放出去(除非已经变得很不值钱),从另一个角度来说谷歌这样做也是对用户负责,否则当你打开搜索引擎时网页上充斥着各种体验极不友好的卖假药的广告时你会作何感想?

其次是要考虑能否帮助扩张业务和赚取收入。谷歌一开始进入公众的视野就是以一个挑战者的身份出现的,它不仅在技术和商业上敢于挑战比自己更大更强的公司,而且在理念也敢于挑战传统。谷歌希望人们都来使用它的搜索,并且谷歌的基因决定了它的产品大多都是基于个人用户的。

在这两个前提下我们回过头来看看谷歌开源战略的转变。2005年谷歌收购安迪鲁宾的Android系统时,它的规模尚小,关于是否开源内部确实争论过一段时间,安迪鲁宾及安卓团队原本打算把系统闭源,但佩林觉得如果搜索引擎的使用量能够因此而飞速上升,开放又如何?并且2006年左右,经过几年在工程和运营上的努力,谷歌基础设施平台基本完成,所有谷歌业务均已搬到了云上。挑战微软的最佳策略莫过于将整个产业界越来越多的服务从 PC客户端搬到网上(毕竟那个时候云计算的概念还没成熟),减少用户对于微软的依赖(在这方面谷歌从03左右就已经开始布局),剩下的就是如何让用户快速接入互联网,谷歌因此在这方面做了两个战略布局,其中一个是积极推动无线互联网的发展,其中就包括了Android开源战略,另一个是通过立法保障网络的中性化。

07年11月5日,Android正式对外开源,谷歌该联合全球几十家移动运营商,手机制造商和芯片制造商成立了Android联盟,Google和苹果的手机世纪大战正式拉开序幕,2010年8月市场Android占有率超过iPhone。谷歌凭借一己之力把整个3G移动通信产业链通过Android给串了起来。要知道2008年,成立十年的谷歌在全球搜索市场的占有率已经超过50%,根据诺威格定律,一家公司的市场占有率超过50%之后,就无法再使市场占有率翻番了,而开拓新财源的有效途径只有横向扩展或转型。因此,谷歌希望采用Android系统的制造商越多越好,以此争夺移动互联网搜索入口,谷歌挣钱的方式很简单,仍旧是通过广告。

进攻永远是最好的防守。此时的谷歌不仅挑起了与昔日恩师苹果的纷争,同样也没有放过对IT霸主的讨伐。当微软推出搜索Bing的时候,谷歌正在将网络广告方面的优势推广到其他广告市场,但遗憾的是三个媒体平台:纸媒、广播和电视的扩张计划均告失败。幸运的是08年在没有任何营销资金支持的情况下,谷歌凭借“技术洞见”敏锐的认识到随着网站越来越复杂,浏览器也应随之提速,随后开源了Chrome浏览器,并且凭借其优越的性能迅速积累了近亿用户。当然这些所谓的技术洞见背后都是有那么几个被谷歌称为“Smart Creatives“所主导的,谷歌相信1个头等软件工程师能干10个二等工程师的活儿,1个二等工程师能干10个三等工程师的活儿,至于三等工程师,谷歌根本就不要。据说GFS和MapReduce技术,从设计到实现一共才三四个人,干了两年就搞定了。要知道谷歌趁HP Labs分崩离析之际邀请了Jeff Dean和Sanjay Ghemawat两位博士加入并主导谷歌基础设施架构,而此二人因为云计算而当选美国工程院院士,堪称云计算之父 。

由部落到联盟

如果说Android联盟时代,谷歌还是一家独大,因为毕竟那还是谷歌所熟悉的消费者领域,但十年之后当诺威格定律再次发挥作用时,谷歌又毫不犹豫的瞄向了云时代的霸主AWS。这次谷歌不仅祭出了杀手锏,开源了他们早已成熟的borg系统,并且破天荒的采用了开放的治理架构,成立CNCF基金会。但无论是从谷歌拉拢CloudFoundry基金会加入CNCF,还是主动参与到OpenStack基金会来看,显然这次谷歌对于企业级用户的数字化转型兴趣浓厚。

2015年谷歌还开源了另一个必将影响深远的开源项目TensorFlow,并且也通过联盟的方式于2016年9月和AWS、IBM、Facebook、Microsoft几位IT巨头成立AI联盟,随后谷歌又重新命名B2B云业务品牌,并在GCD Next大会上推出ML平台。Google Brian项目的负责人更是认为“AI将成为更高级的云计算“,而CEO Pichai则表示“要用AI重新定义云服务“,就连已经升任Google母公司Alphabat董事长的Eric Schmidt也说“ML is Next“。

限于篇幅,这次的分享只能先把谷歌在开源领域从技术驱动走向商业战略驱动的大概脉络梳理一下,联盟式开放治理究竟适不适合企业参与?其中治理模型又有哪些?企业该如何设计和参与类似基金会?这些问题待有机会再接着分享,希望能够通过进一步的交流和感兴趣的朋友们一起继续深入讨论企业与开源战略的相关话题。

作者:杜玉杰,华为开源能力中心主任工程师,2015年负责华为Docker生态项目,推动成立OCI和CNCF基金会,目前负责华为IoT开源项目Huawei LiteOS 生态,前OpenStack基金会董事。 联系方式:https://about.me/yujie.du

本文链接:http://www.yunweipai.com/11122.html

网友评论comments

发表评论

邮箱地址不会被公开。

暂无评论

Copyright © 2012-2021 YUNWEIPAI.COM - 运维派 京ICP备16064699号-6
扫二维码
扫二维码
返回顶部