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

简介:

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 说:

正在发生的这场颠覆要比任何一家公司都要大。
文章转载自 开源中国社区 [http://www.oschina.net]

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
1月前
|
机器学习/深度学习 算法 物联网
Google开源Tunix:JAX生态的LLM微调方案来了
Tunix是Google推出的基于JAX的LLM后训练库,支持微调、强化学习与知识蒸馏,集成Flax NNX,主打TPU优化与模块化设计,支持QLoRA等高效训练方法,适用于高性能分布式训练场景。
259 13
Google开源Tunix:JAX生态的LLM微调方案来了
|
8月前
|
人工智能 边缘计算 自然语言处理
Google 发布其开源模型系列最新模型 Gemma 3
Google 发布了其开源模型系列的最新成员 Gemma 3,这是一款轻量级、高性能的 AI 模型,支持多语言和复杂任务。它具备 140+ 语言支持、128K-token 上下文窗口、增强的多模态分析能力以及函数调用功能,适用于聊天 AI、代码生成等多种场景。Gemma 3 在性能上超越 Llama 3-8B 和 Mistral 7B,且仅需单 GPU 即可运行,大幅降低计算成本。提供 1B 至 27B 不同参数规模版本,满足多样化需求,并优化了量化模型以适应边缘计算和移动设备。其多模态设计整合了 SigLIP 图像编码器,扩展上下文窗口至 128k token,显著提升了视觉和文本理解能力。
558 3
Google 发布其开源模型系列最新模型 Gemma 3
|
10月前
|
人工智能 前端开发 API
Gemini Coder:基于 Google Gemini API 的开源 Web 应用生成工具,支持实时编辑和预览
Gemini Coder 是一款基于 Google Gemini API 的 AI 应用生成工具,支持通过文本描述快速生成代码,并提供实时代码编辑和预览功能,简化开发流程。
700 38
Gemini Coder:基于 Google Gemini API 的开源 Web 应用生成工具,支持实时编辑和预览
|
机器学习/深度学习 人工智能 TensorFlow
TensorFlow 是一个由 Google 开发的开源深度学习框架
TensorFlow 是一个由 Google 开发的开源深度学习框架
291 3
|
8月前
|
人工智能 编解码 自然语言处理
Gemma3:Google开源多模态神器,轻量高效,精通140+语言,解锁文本与图像任务
在当今快速发展的 AI 领域,多模态模型正逐渐成为推动技术革新的重要力量。Google 最新推出的 Gemma 3 模型,凭借其轻量级、多模态的特性,为文本生成和图像理解任务带来了全新的可能性。它不仅支持文本和图像输入,还具备强大的语言处理能力,覆盖超过 140 种语言,并且能够在资源有限的设备上高效运行。从问答到摘要,从推理到图像分析,Gemma 3 正在重新定义 AI 模型的边界,为开发者和研究人员提供了一个极具潜力的工具。
734 0
|
数据可视化 JavaScript 前端开发
Google开源了可视化编程框架Visual Blocks for ML
Visual Blocks for ML是一个由Google开发的开源可视化编程框架。它使你能够在易于使用的无代码图形编辑器中创建ML管道。
428 0
|
机器学习/深度学习 数据采集 物联网
【机器学习】Google开源大模型Gemma2:原理、微调训练及推理部署实战
【机器学习】Google开源大模型Gemma2:原理、微调训练及推理部署实战
726 0
|
自然语言处理 测试技术 开发工具
Google开源ToTTo数据集,你的模型还「撑」得住吗?
近日,Google研究人员提出一个大型从表转换到文本的英文数据集,已经在Git上开源。该数据集不仅提供了一个可以受控的句子生成任务,还提供了一个基于迭代语句修订的数据注释过程。实验结果证明,ToTTo可以作为有用且高效的数据集,用来帮助其他研究者建模研究,以及开发可以更好地检测模型改进的评估指标。
418 0
Google开源ToTTo数据集,你的模型还「撑」得住吗?
|
Java 数据安全/隐私保护
SpringBoot【集成Thumbnailator】Google开源图片工具缩放+区域裁剪+水印+旋转+保持比例等(保姆级教程含源代码)
SpringBoot【集成Thumbnailator】Google开源图片工具缩放+区域裁剪+水印+旋转+保持比例等(保姆级教程含源代码)
673 0
|
缓存 安全 JavaScript
别再造轮子了,Google 开源的 Guava 工具库真心强大!
别再造轮子了,Google 开源的 Guava 工具库真心强大!

热门文章

最新文章

推荐镜像

更多