碎片百科网

当前位置: 首页 > 生活百科

Google开源了哪些重要秘密?

时间:2023-12-03 21:20:01    浏览:9

在云计算领域,Google 的开源技术无疑是主要推动力之一,尤其是在 Hadoop 和 NoSQL 等类数据库的开发和推广方面。然而,尽管 Google 在技术方面的贡献举足轻重,但其对于开源的态度却一直颇具争议。一方面,Google 担心将自身核心竞争优势开源化可能导致市场份额下滑;另一方面,面对微软、VMware、EMC 等公司的开源策略以及云计算业务的需求,Google 也明白拥抱开源已成为大势所趋。近期,Google 推出了一系列开源项目,包括 Kubernetes,旨在借助开源的力量进一步推进自己在云计算领域的战略布局。虽然 Kubernetes 的未来尚存在一定的变数,但它无疑已经成为了软件开发未来的一个重要指向标,而 Google 也在这场变革中充当了领导者的角色。

Google 的技术是云计算开源化的主要推动力之一,Hadoop 和 NoSQL 等类数据库等开源软件都源于 Google 的技术。但作为搜索巨头的 Google 本身对于自身技术的开源态度却有点纠结。这种纠结主要源于不想放弃自身的竞争优势,但是在微软、VMware、EMC 等公司纷纷拥抱开源的大趋势下,Google 最终意识到在开源环境下推进自己云战略的重要性,哪怕把它最大的秘密部分开源化也在所不惜。如今,这一战略已初见成效。Craig McLuckie 将自己的想法告诉了 Urs Hölzle,谷歌全球数据中心网络的监管人并不喜欢这个想法。

McLuckie 和 Google 西雅图分部的一位工程师们希望将 Borg 重塑为一个开源项目。Borg 是管理调度 Google 从搜索到地图等一系列服务的资源工具,使得 Google 能够将其庞大的全球网络上的众多计算任务进行打包并分配。多年来,Borg 一直被视为 Google 保守得最紧的一个秘密。McLuckie 希望将其蓝图(至少是将其中的一部分)分享给互联网。

“当我们第一次去找 Urs 时,他对这个想法实际上是不高兴的,”McLuckie 说道:“因为我们要做的是将 Google 的秘密武器——运营调度器——作为开源技术公之于众。”Kubernetes 代表了 Google 在云计算领域的战略转变,标志着其在 Amazon、微软等竞争对手的挑战下,开始重视与其他公司和开发者共享基础设施。

Kubernetes 最初由 McLuckie 以及其他两位工程师 Joe Beda 和 Brendan Gregg 所创建。在传统的 Google 模式中,该公司对于驱动其在线帝国的基础技术保护非常严格,Borg 就是一个典型的例子。然而,随着 Google 对云计算越来越认真,它开始邀请其他公司和开发者在其基础设施上建立和应用程序。这种方式类似于亚马逊在 AWS 上开放基础设施的做法,从而实现了更广泛的平等交换。

Burns与Google云服务开发团队的成员共同构想了这个想法。他们都是Google云服务的开发团队成员。在他们眼中,Kubernetes这个开源项目推动了开发者使用Google Compute Engine,这项云服务为外部开发者和构思提供了“虚拟机”。在这台虚拟机上,几乎可以运行任何代码。Kubernetes则作为代码跨环境运行的有效管理工具,无论是云服务还是本地数据中心,都提供了有效支持。Hölzle最终同意这一观点,认为牺牲保留自己代码的优势是值得的。McLuckie表示:“对于Google来说,云绝对势在必行。我们必须以新的方式运营。我们必须将自己的专长带给社区。”

Google的演变

Google的行动也反映了云计算崛起所带来的更大转变。如今,开发者可以在众多机器上进行软件开发,并且通常都是通过开源实现的。在众多机器上运行专用软件的成本高昂,满足特定需求变得困难。无论是提供像Google Compute Engine这样的服务,还是为这类服务开发软件,当前的云公司都必须拥抱开源。微软已经意识到了这个趋势,为了推动其Azure云计算服务的发展而积极拥抱开源。VMware和EMC也采取了类似的做法。

然而,Google的态度稍显挣扎。其技术是云计算领域开源力量崛起的主要推动力之一。但这家公司一直保持适当的开源距离。如今,它正在走向更接近开源的方向。

在过去的十年里,Google开发了一种软件,用于管理其数百万台机器上的软件运行。该公司非常警惕,将运行大型机器的能力视为自己的竞争优势,并希望保持该软件的秘密。然而,经过数年之后,Google开始不定期地发布与该技术相关的论文,开源社区便开始模仿Google的技术。许多技术的发展都是以这种方式进行的,例如MapReduce催生了Hadoop,而BigTable的出现导致了许多"NoSQL"数据库的涌现。Borg的情况大致也是如此。几年前,Twitter和加利福尼亚大学伯克利分校的工程师们开发了一款名为Mesos的工具,如今,它已成为Twitter、Airbnb等知名互联网服务的基础。此外,还有一些围绕Docker容器技术(Borg的运作方式也是如此,将软件打包进软件“容器”,并通过Google的网络进行广泛分发)的项目。

然而,随着云计算业务需求的推动,Google正在改变其角色。他们不再只是发布一篇研究论文,而是开放一些小型的在线基础设施,将其转变为开源项目(至少在某种程度上)。正如Burns所说,他和Beda、McLuckie都注意到有许多其他项目正在利用Borg和容器技术的概念,因此他们认为Google可以推动这一进程。"我们感觉大家在将各个部分拼凑在一起时遇到了困难,"他说:“我们已经有了这个图案。我们已经有了十多年的经验,知道如何将这些部分整合在一起。”

但是Borg和Omega的部分开发者也在做Kubernetes,其中包括Uber的工程师Eric Brewer、John Wilkes及Brian Grant。这些有做过的人来做Kubernetes对于这个开源项目来说意义重大,因为这个项目的未来目标是纠正Borg、Omega的错误,并最终超越这两位前辈。在这个对开源如此器重的世界里,这是Google参与竞争的最好方式。对于许多人来说,容器就是软件开发的未来。而Google现在正扮演着这个未来的领导角色。

然而,尽管Kubernetes在容器技术领域具有重要的地位,但也有人对其前景表示质疑。例如,曾在Pivotal帮助开发过类似系统的Mark Kropf就质疑Google对这个项目的态度究竟有多认真。他注意到Beda已经离开了公司。另外,云服务提供商Digital Ocean的CEO Ben Uretsky也认为,Kubernetes等系统的应用情况并没有那么广泛。"容器技术尚未成熟,"他说:“我们还处在炒作周期的顶峰。”

尽管如此,Kubernetes仍然指出了软件开发的未来方向。虽然Google在自己的数据中心使用着自己的软件容器,但在推出Kubernetes时,它选择了与Docker合作。当时,Docker母公司寻求将自己的容器技术与某些自己的软件工具进行捆绑,而Google和Kubernetes项目却开始拥抱Docker的替代品Rocket——一个完全独立的容器格式。

McLuckie强调了Kubernetes现在同时支持Docker和Rocket。他希望能看到业界最终回归到一个独立的容器格式,但他解释这并非选择立场。他表示,Kubernetes“应该成为一个中立者。”这种说法听起来有些理想主义,但对于云公司来说,提供开源软件,让他人自由使用是必要的。McLuckie表示:“我们现在所经历的变革比任何一家公司都要大。”

猜你喜欢
热搜美食更多