当前位置: 首页 > 科技观察

为什么谷歌要公开其最重要的秘密?

时间:2023-03-17 12:44:57 科技观察

谷歌的技术是云计算开源的主要推动力之一。Hadoop、NoSQL数据库等开源软件均源自谷歌的技术。不过,对于自家技术的开源态度,这家搜索巨头本身就有点纠结。这种纠结主要是不想放弃自己的竞争优势。不过,在微软、VMware、EMC等拥抱开源的大趋势下,谷歌终于意识到在开源环境下推进其云战略的重要性,即使它愿意开源一些它最大的秘密,一个战略这已经得到回报。CraigMcLuckie将这个想法告诉了UrsH?lzle,但谷歌全球数据中心网络的主管并不喜欢这个想法。McLuckie和谷歌西雅图办事处的两名工程师希望将Brog变成一个开源项目。Brog是一种软件工具,用于管理和安排Google所需的从搜索到地图的所有资源。正是借助它,谷歌可以将计算任务打包分发到其庞大的全球网络中。多年来,布罗格一直是谷歌保守得最好的秘密之一。McLuckie希望与互联网分享其蓝图(至少部分)。“当我们第一次去找Urs时,他实际上对这个想法并不满意,”McLuckie说,“因为我们想要做的是公开将Google作为开源技术运行的秘诀。”但是H?lzle等人。官方终于批准了这个项目——Kubernetes这个名字来自古希腊语,意思是船长或司机。今天是它推出一周年。在过去的12个月里,超过370名程序员向该项目提交了12,500次“提交”。他们中的大多数不是来自谷歌,包括3位顶级贡献者。Kubernetes代表了谷歌的战略转变,因为它在云计算领域与亚马逊、微软和其他公司展开竞争。传统上,谷歌一直非常保护驱动其在线帝国的底层技术——Borg就是一个很好的例子,在某种程度上现在仍然如此。但是现在谷歌已经是一家非常重视云计算的公司了。它是在邀请其他公司和开发者在自己的基础设施上建站和开发应用(注:类似于亚马逊过去做AWS的方式),所以是Closed,未公开。邀请其他公司在其基础设施之上开发和运行应用程序,因此开源更多的是整个软件社区的平等交换。Kubernetes最初是由McLuckie和另外两名工程师JoeBeda和BrendanBurns共同构想的,他们是GoogleCloudServices开发团队的一员。在他们看来,Kubernetes这个开源项目促使开发人员使用GoogleComputeEngine。这种云服务可以为外部创意和开发人员提供“虚拟机”。几乎任何代码都可以在虚拟机上运行,??而Kubernetes为代码跨环境运行(云服务、本地数据中心)提供了有效的管理手段。H?lzle最终同意,为了保留自己的代码而做出的牺牲是值得的。“云对于谷歌来说绝对是必不可少的,”麦克拉基说。“我们必须以一种新的方式运作。我们必须将我们的专业知识带给社区。”谷歌的演变谷歌的举动也是对云计算兴起所推动的更大转变的回应。现在开发者可以轻松地在一堆机器上开发软件,并且经常使用开源。在这么多机器上运行专用软件成本高,难以满足特定需求。无论是提供GoogleComputeEngine之类的服务,还是为此类服务开发软件,如今的云公司都必须拥抱开源。微软也意识到了这一不争的趋势,拥抱开源以推动其Azure云计算服务的发展。VMware和EMC也做了同样的事情。但谷歌的态度有点挣扎。它的技术是云计算中开源力量崛起的主要驱动力之一。只是该公司与开源运动保持了适当的距离。现在它更近了。在过去的10年里,谷歌开发了软件来管理其数千台机器上的软件运行。它心存疑虑,将运行大型机器的能力视为自己的竞争优势,不想看到软件的本来面目。然后,几年后,谷歌会时不时地发表1、2篇相关技术的论文,开源社区就会开始抄袭谷歌的技术。“NoSQL”数据库如雨后春笋般涌现。博格的情况大概也是如此。几年前,Twitter和加州大学伯克利分校的工程师开发了一个名为Mesos的工具,现在它是Twitter和Airbnb等知名互联网服务的基础。还有其他几个项目围绕Docker容器技术开发类似的工具(这也是Brog所做的,将软件打包到软件“容器”中并在Google网络上交付)。但现在,在云业务需求等力量的推动下,谷歌正在改变其角色。它分享的不仅仅是一篇研究论文,开源一些小型的在线基础设施,而是将整个系统变成一个开源项目(至少在某种程度上)。正如Burns提到的,他、Beda和McLuckie看到有很多其他项目利用Borg和容器技术的理念,因此他们认为Google可以帮助推动这一进程。“我们觉得人们在拼凑各个部分时遇到了困难,”他说。“我们有模式。我们有10年的经验,知道如何将各个部分组合在一起。”不可否认,Kubernetes并不是开源的Borg。它不像Borg或Borg的继任者Omega那么复杂。从现在的情况来看,它管不了那么多机器。“我们仍在努力接近与博格相同的规模,”贝达说。“Kubernetes最初的重点是让核心概念正确。”但Borg和Omega的一些开发人员也在致力于Kubernetes,包括Uber工程师EricBrewer、JohnWilkes和BrianGrant。曾经做过的人来做Kubernetes对于这个开源项目意义重大,而这个项目未来的目标是改正Borg和Omega的错误,最终超越这两个前辈。在一个如此重视开源的世界里,这是谷歌最好的竞争方式。对于许多人来说,容器是软件开发的未来。而谷歌现在正在这个未来中发挥主导作用。尽管如此,在Pivotal帮助开发类似系统的MarkKropf质疑谷歌对该项目的认真程度,并指出Beda已经离开了公司。云服务提供商DigitalOcean的CEOBenUretsky认为,Kubernetes等系统的应用还没有那么广泛。“容器还不成熟,”他说。“我们正处于炒作周期的顶端。”但无论Kubernetes的命运如何,它在很多方面仍然指向软件开发的未来。谷歌在自己的数据中心使用自己的软件容器。但在一年前推出Kubernetes时,它找到了开源Docker作为合作伙伴。虽然Docker的母公司试图将自己的容器技术与自己的一些软件工具捆绑在一起,但谷歌和Kubernetes项目采用了Docker的替代方案Rocket——一种完全独立的容器格式。McLuckie强调,Kubernetes现在同时支持Docker和Rocket。他希望这个行业最终能回归到独立的容器格式,但他解释说这不是选边站。他说,Kubernetes“应该成为瑞士”。听起来有点理想化,但这就是云公司必须做的:提供开源软件,让其他人随心所欲地使用它。McLuckie说:这种正在发生的破坏比任何一家公司都大。