Google为什么要把最重要的秘密开源?

标签: 企业服务 | 发表时间:2015-06-11 22:57 | 作者:boxi
出处:http://36kr.com

Image title

Google的技术是云计算开源化的主要推动力之一,Hadoop、NoSQL类数据库等开源软件都源于Google的技术。但搜索巨头本身对于自身技术的开源态度却有点纠结。这种纠结主要源于不想放弃自身的这一竞争优势,但是在微软、VMware、EMC等纷纷拥抱开源的大趋势下,Google终于意识到在开源的环境下推进自己云战略的重要性,哪怕把它最大的秘密部分开源化也在所不惜,现在这一战略已经初见 成效

Craig McLuckie把想法告诉了Urs Hölzle,这位Google全球数据中心网络的监管人并不喜欢这个想法。

McLuckie跟Google西雅图分部的两位工程师希望把Brog再造成一个开源项目。Brog是管理调度Google从搜索到地图等一切服务所需资源的软件工具,正是有了它,Google才能将一个个计算任务打包分配到它庞大的全球网络。多年以来,Brog一直是Google保守得最好的秘密之一。而McLuckie想把它的蓝图(至少是部分蓝图)共享给互联网。

“我们第一次去找Urs时,他对这个想法实际上是不高兴的,” McLuckie说:“因为我们要做的是把运营Goolgle的秘密武器作为开源技术拱手让人。”

但Hölzle等Google要员最终批准了这一项目—Kubernetes这个名字起源于古希腊,是船长或者驾驶员的意思。今天是它推出1周年的日子,过去12个月,已有超过370名程序员给项目提交了12500份“commit”,他们当中大部分都不是Google的人,其中就包括3名顶级贡献者。

Kubernetes代表了Google在云计算领域与Amazon、微软等努力进行竞争时的战略转变。传统上,Google对于驱动其在线帝国的基础技术的保护是非常严的—Borg就是很好的一个例子,且从某种程度上来说仍然如此。但现在Google已经是一家对云计算态度非常认真的公司,它正在邀请别的公司和开发者在自己的基础设施之上做网站、开发应用(注:类似Amazon当年做AWS的路子),因此是封闭的、不公开的。邀请其他公司在其基础设施之上开发运行应用,所以开源更多的是面向整个软件社区做出的一种平等交换。

Kubernetes最初是由McLuckie和其他两位工程师Joe Beda 、Brendan Burns一起构思的,他们都是Google云服务的开发团队成员。在他们看来,Kubernetes这个开源项目开源推动开发者使用Google Compute Engine,这项云服务可为外部构思和开发者提供“虚机”,在虚机上面几乎可以跑任何代码,而Kubernetes则为代码的跨环境运行(云服务、本地数据中心)提供有效的管理手段。Hölzle最终同意这一点值得牺牲掉保留自己代码的优势。“云对于Google来说绝对是势在必行,” McLuckie说:“我们必须用新的方式运营。我们必须把自己的专长带给社区。”

Google的演进

Google的举动也是对云计算崛起所推动的更大转变的响应。现在开发者很容易就可以在一堆机器上面开发软件,而且往往都是用开源的。在那么多机器上跑专用软件的成本高昂,满足特定需求很困难。无论是提供像Google Compute Engine这样的服务,还是为此类服务开发软件,现在的云公司都必须拥抱开源。微软也已经意识到这个不争的趋势,为了推动其Azure云计算服务的发展而拥抱开源。VMware和EMC也已经这样做了。

但Google的态度有点挣扎。它的技术是云计算领域开源力量崛起的主要推动力之一。只是这家公司一直对开源运动保持着适当的距离。现在它走得更近了。

过去10年,Google开发出软件来管理软件在其成千上万台机器上的运行。它疑心很重,把运行大规模机器的能力视为自己的竞争性优势,不想让人看到这一软件的面目。然后,过了几年,Google会时不时公布1、2篇相关技术的论文,开源界就会开始山寨Google的技术,很多技术都是这样,如MapReduce催生了Hadoop,BigTable公布出来后,一大堆“NoSQL”数据库就如雨后春笋般冒出来了。

Borg的情况大抵也是一样的。几年前,Twitter和加州大学伯克利分校的工程师开发了一款名为Mesos的工具,现在,它成了Twitter、Airbnb等知名互联网服务的基础。还有好些项目也在围绕着Docker容器技术(Brog的运作也是这样,将软件打包进软件“容器”然后通过Google网络到处交付出去)开发类似的工具。

不过现在在云业务需求等力量推动下,Google正在改变角色。它分享出来的不仅仅只是一篇研究论文,把一些小的在线基础设施开源,而是把整个体系转变成开源项目(至少在某种程度上)。

如Burns所述,他和Beda 、McLuckie都看到了有很多其他项目正在利用Borg及容器技术的想法,所以他们认为Google可以帮助推进这件事情。“我们感觉大家在把一块块碎片拼接完整是遇到了困难,”他说:“我们有那个图案。我们有10年的经验,知道怎么把碎片拼到一起。”

诚然,Kubernetes并不是开源的Borg。它没有Borg或者Borg的继任者Omega那么复杂。从目前情况来看,它不能管理那么多台机器。“我们仍在朝着接近Borg同等规模努力,”Beda说:“Kubernetes初期关注的焦点是核心概念要对。”

但是Borg和Omega的部分开发者也在做Kubernetes,其中包括Uber的工程师Eric Brewer、John Wilkes及Brian Grant。有做过的人来做Kubernetes对于这个开源项目来说意义重大,而这个项目的未来目标是纠正Borg、Omega的错误,最终超越这两位前辈。

在这个对开源如此器重的世界里,这是Google参与竞争的最好方式。对于很多人来说,容器就是软件开发的未来。而Google现在正扮演着这个未来的领导角色。

随便跑

不过,曾在Pivotal帮助开发过类似系统的Mark Kropf质疑Google对这个项目的态度究竟有多认真,他指出Beda已经离开了公司。而云服务提供商Digital Ocean的CEO Ben Uretsky则认为,Kubernetes等系统的应用情况并没有那么广泛。“容器技术尚未成熟,”他说:“我们还处在炒作周期的顶峰。”

但无论Kubernetes的命运如何,从很多意义上来说,它仍指出了软件开发的未来。

Google在自己的数据中心使用着自己的软件容器。不过1年前推出Kubernetes时,它找到开源的Docker作为搭档。当Docker母公司寻求将自己的容器技术与某些自己的软件工具进行捆绑时,Google和Kubernetes项目却开始拥抱Docker的替代品Rocket—一个完全独立的容器格式。

McLuckie强调,Kubernetes现在同时支持Docker和Rocket。他希望业界最终能回归到一个独立的容器格式去,但他解释说这不是选边站。他说,Kubernetes“应该成为瑞士。”听起来有点理想主义,但这是云公司必须干的事情:提供开源软件,然后随便别人怎么用。McLuckie 说:

正在发生的这场颠覆要比任何一家公司都要大。

相关 [google 秘密 开源] 推荐:

Google为什么要把最重要的秘密开源?

- - 36氪
Google的技术是云计算开源化的主要推动力之一,Hadoop、NoSQL类数据库等开源软件都源于Google的技术. 但搜索巨头本身对于自身技术的开源态度却有点纠结. 这种纠结主要源于不想放弃自身的这一竞争优势,但是在微软、VMware、EMC等纷纷拥抱开源的大趋势下,Google终于意识到在开源的环境下推进自己云战略的重要性,哪怕把它最大的秘密部分开源化也在所不惜,现在这一战略已经初见 成效.

Google开源LevelDB

- 酿泉 - Solidot
Google宣布在BSD许可证下开源其键值存储引擎LevelDB. LevelDB C++库可用于多种不同环境,如被浏览器用于存储最近访问的网页缓存,或者被操作系统使用去储存安装的软件包和依赖包清单,或被应用程序用于存储用户设置. Google称,即将发布的新版Chrome浏览器,就包含了基于LevelDB的IndexedDB HTML5 API实现.

Google X——Google 的秘密实验室曝光

- bo - 爱范儿 · Beats of Bits
《纽约时报》今天头版刊文曝光了 Google 的秘密试验室——Google X. 早在半年前,Business Insider 收到线报称 Google 联合创始人 Sergey Brin 目前真正的职位是 Google X 主管. 不过当时外界只知道 Google X 是一个负责秘密项目的地方,Google 的无人驾驶汽车就出自这里.

Chris diBona 谈 Google 与开源及 Ubuntu

- Riku - Wow! Ubuntu
英文原文:Google: "Android is the Linux desktop dream come true". 原作者:Andreas Proschofsky / 译者:Riku. 这篇文章是由 derStandard.at 网站记者 Andreas Proschofsky 撰写,主要内容是今年 5 月中旬在 Googles I/O 会议上对 Google 开源主管 Chris DiBona 的采访总结.

Google正式开源LevelDB项目

- Jie - 新闻 - LUPA开源社区
  Google 宣布 LevelDB 项目开源,使用的开源授权协议为 BSD.   Leveldb是一个google实现的非常高效的kv数据库,目前的版本1.2能够支持billion级别的数据量了. 在这个数量级别下还有着非常高的性能,主要归功.

开源第三方 Google Dictionary 应用

- SotongDJ - 谷奥——探寻谷歌的奥秘
感谢作者 easisee 的自爆. easisee利用非官方API制作了一个第三方的 Google Dictionary 应用,跟之前我们报道过的那个山寨Google Dictionary不同,这个支持了原有的各种语言,并使用 HTML5,使得iOS和Android设备上即便不安装 flash 也可以直接播放语音,另外可以设定为自定义搜索引擎.

Google code android开源项目(四)

- - CSDN博客推荐文章
一个简洁的android rss阅读器. 创建者写的一些应用包括:闹钟和调节屏幕亮度小工具等. 远程控制winamp(5.5以上版本).  Tesseract OCR(HP实验室开源的)封装的 Android APIs. 使用 visual studio 开发Android NDK C/C++ . android版quake2.

Google 联合 MIT 开源 Android App Inventor

- - 博客园_新闻
Google 联合 MIT 发布了 App Inventor for Android 的开源版本.. AppInventor 是谷歌推出一种软件工具. 这种工具可以使用户更容易的为 Android 智能手机编写应用程序. 谷歌该 Android 应用工具使人们可以拖放代码块(表现为图形图像代表不同的智能手机功能),将这些代码放在一起,类似于将 Lego blocks 放置在一起.

Google开源主管解释为什么开源“残酷”

- - Solidot
Google开源负责人Chris DiBona接受了Red Hat的Jodi Biddle的采访,他谈论到的一个主题是“为什么说开源残酷”. DiBona指出,软件行业的软件工程管理不推崇分散式的开发,一家公司如果依赖于一个分布式的非均质团队是很难运转的. 然而,开源世界却创造出了一些世界级的软件.

通过 Google 网页里的秘密通道窥视没有“硬又黑”的 Google+ 新界面

- SotongDJ - 谷奥——探寻谷歌的奥秘
感谢读者 xiaomotou 和 ninetales 的爆尿. 先是我们昨天接到ninetales的爆料,说他发现自己的搜索结果右侧出现了一个小框(如上图),内有红色字写“保密”,并列出了几个目前正在进行的实验编号. 可惜点击任何一个链接都是404,他似乎也没有发现自己使用的界面有何变化. 之后我们今天接到xiaomotou更劲爆的爆料,他的Google+右侧也有类似的红色“保密”小框,但更厉害的是他看到了传说中新版的Google+界面(如下图,可点击放大).