当你所有的业务都由终端用户通过 络使用你的应用来驱动, 络按理说是基础设施中最为紧要的部分了。这就是为什么搜索引擎、广告服务巨人Google投入了极其大量的投资来创建自己的 络堆栈。Google的业务现在已经扩展到媒体服务,托管企业应用程序和云计算了。
但是为内部数据中心运行一个速度快、有效率、大规模的 络并不足以带来良好的用户体验,这就是为什么Google创造了一个SDN架构来为整个公共互联 做路由,这个系统被称为Espresso。Google认为Espresso不仅能够改变Google用户在互联 上进行路由的方式,并且能够塑造互联 上其他用户进行路由的方式。这可以成为“谷歌先行,世界跟随其后”辉煌时刻的又一个例子。
Amin Vahdat,Google研究员和公司 络技术主管。最近向我们介绍了Google的Espresso在公共互联 上的实现,这是公司迄今为止透露的第四代 络支柱。Vahdat也谈到,就硬件和软件而言,开始可以看到 络技术在经过过去十年艰难的阻碍后终于再次迈出了创新的步伐,这也是我们最近所思考的东西。
所有的超大规模数据中心花费了十多年的时间来组建他们自己的 络,包括自制的交换机、路由器和一个完整的软件堆栈,来使得他们具有和电脑及存储容量同样的扩展性,这使得他们相较于应用提供商的IT部门拥有了巨大的优势。
回到2013,Google透露了它的B4(软件定义广域 )的一些细节,它将它的全球数据中心连接到一起,用于数据复制和分担工作负载。如下图所示,这个WAN的流量呈指数级攀升,特别是当谷歌和它的云客户更加的全球化,并用复制使得应用和数据高度可用。
来到2014年,在下一个平台启动之前,Vahdat公布了Andromeda( 络虚拟化)的细节,其搭载了Google的 络架构,并把 络的功能提供给谷歌公共云计算平台的客户使用。到了2015年6月,Vahdat讨论了为什么Google必须开始搭建自己的交换机和路由器来支持其大规模数据中心的 络,并且推出了创建 络架构的软件,其在2013年可以跨越超过100000台服务器并在谷歌数据中心间提供超过1.3PB/秒的对分带宽。他还谈论到管理Andromeda和Jupiter的软件,其与Borg集群管理系统和集装箱管理系统非常相似,而这可能是在Hadoop中体现的MapReduce数据分析技术之后,Google创造的第二重要的技术。
从概念来说,这是Espresso插入Google 络堆栈的方式:
正如我们上面说的,对等 络对Google非常重要,而且使其更有扩展性和可用性是一个非常棘手的事情,因为Google不控制 络,尽管它产生了互联 上大约%25的流量,他们的 站与超过70个大城市地区的服务供应商挂钩,而且吸引到了数以十亿计的用户(回味一下,领会这一点)。Espresso路由 络创建了一个路由池,突破了单个路由盒子的方式,就像Borg在裸机上实现一个容器层并且创建一个计算池一样。Google是集中而分类控制的虔诚信徒,无论是计算,存储和 络,都依赖于大量的来自于底层系统和应用的自动适应,从终端用户的视角来给终端用户提供最终一致的体验。
这最后一点是非常重要的,以搜索引擎的查询为例,没有人想听它为什么这么慢的解释,他们只想看到它工作,尽管一次查询必须通过数十个路由器和散布在世界各地数千台服务器上的应用,而且都只有亚秒级的响应时间。
这是一个巨大的工程挑战,可能是世界上最大的一个。而Google和它的同行对做这些事的细节谈论的非常少,所以我们来听Vahdat谈谈吧。
TMP:我第一个问题比较蠢,我看到有B4,那B2是什么?B3又怎么了?
Amin Vahdat:这是一个好问题,B3确实曾经存在于某一点,而我们为了支持B4让它退休了。看待它们的方式是B4是我们私有数据中心 络的互相连接,B2是连接我们的数据中心和公共 络的。
Google今天带来了大概25%的互联 流量。换句话说,通过互联 传递给终端用户的四个字节中就有一个来自Google。这并不是全部都在B2 络上,因为我们在ISP 络中也有一个相当大的Google全球缓存,但这确实是我们B4 络的情况,将我们的数据中心连接在一起的B4,比B2 络规模更大,增长更快。
TPM:有趣。这两个 络都运行在Jupiter设备上吗?或者,它们不一样吗?它们怎么工作?
Amin Vahdat:进一步分解来讲,Jupiter是我们的数据中心 络,它有一套自己的交换机。B4使用类似的交换机技术,它以前分开运行,但它是一个不同的软件系统。我们还没有公开过关于我们的B2硬件设备的样子。但是我们说过,B4和Jupiter运行在我们自己的硬件和软件应用上,都是自制的。
TPM:Espresso是下一个Google有关 络的大曝光吧,我们洗耳恭听。
Amin Vahdat:关于Espresso最重要的一点是,以前我们自制 络技术的应用是在内部使用的基础上。但这在公共 络上是非常有用的。所以Jupiter这个我们的数据中心 络,被包含在数据中心内,在将我们的数据中心重新连接在一起之前,是一个私有 络。
我们从一点历史开始吧。我们面临的一个问题是,标准的现有路由协议,主要是BGP(用于不同 络之间的所有配对),专注于单个路由盒子,这基本上意味着他们必须用一个非常本地的视角来看待连接。一旦他们能找到一条资源和目的之间的路径,两台想要通过 络交谈的计算机,那么BGP就很开心了。它不会去尝试寻找最佳的路径,而且他不会尝试做动态优化。
我喜欢用这个比喻是因为它看起来像一个实时的道路系统,你从点A到点B的路径会在一天的过程中发生巨大的变化,而且当然你会有许多不同的选项。所以对我们来说,我们希望能够对我们服务器做的是,无论他们是在我们的 络上运行,还是在Google云上为外部客户端发布内容,我们希望能够用互联 丰富的内容来为世界各地的用户提供最优质的体验。而基本上Espresso做的是将智能路由从单个路由器中拿出来,放到一个服务器池中,在这里我们可以对数据做离线分析。
所以,来想象一个路由器,它正在对单个数据包作出转发决定,通常要几百纳秒的时间,是非常短的时间。它不知道,而且它没有足够的时间来考虑这个数据包属于哪个应用,或者考虑带宽、延迟或其他的什么。我们用Espresso做的是,我们实际上使用应用信 来表示,当我在这个 络中使用这个特定的路由到这个用户群时,我做的怎么样?如果我做的好就继续使用它,如果我做的不好,让我考虑一些可用的替代方案,在一个配对地点,可能在,就说纽约吧,或者在一个不同的配对地点,可能是华盛顿或者新泽西或附近的某个地方。换句话说,如何平衡在不同地方之间我可以使用的流量,来达到一个 络用户获得的最佳性能呢?
我们已经完成的有两件事。一,我们简化了路由器设计。换句话说,我们需要在我们 络边缘使用的路由器变得更加简单,更加高效,而且占用更少空间,使用更少能源,造价更低。二,更加重要的是,我们允许我们的 络做一些更智能的决策,比以前更多的实时决策。
TPM:你们有没有为此定制路由器?或者你们仍然使用现成的东西?我假设你们把所有的智能和你们通常做的处理放到ASIC里,并且你们把它移动到软件层,例如NFV和SDN方法。你们知道根本不再需要那个设备,所以我想你们通过不必再购买昂贵的路由器,大大的降低成本。
Amin Vahdat:确实…
TPM:或者使用不同的路由器芯片,即使它不是定制的,它可以是一个更简单的芯片。
Amin Vahdat:从这个角度看,它比前者更像后者。你是正确的,这是更简单的一个例子。另一件我要提到的事是:一般来说很少有供应商,两位数的数量,能够建立一个互联 规模的路由器。我的意思是这些是在先进的盒子中也是最先进的。他们的设计极其的好,可靠性高,他们需要为每一个客户提供查询表条目,来确保他们在互联 上。我们所做的是我们真正的简化了我们对互联 路由器的需求,所以根据我们使用的方式,我们真正的有了更多的选择。
TPM:明白了。我知道现在许多的交换机ASIC有路由功能,可能很快就会足够简单到你可以使用相同的ASIC进行交换和路由。
Amin Vahdat:嗯,很好的意见。
假如你对技术细节感兴趣,我们让主机在每一个数据包中插入一个标签,这个标签实际上为路由器提供路由决策。所有的路由器要做的是看那个标签,而标签告诉它这个数据包的转发决定。所以我们重新设计了大脑,服务器上的功能,它们有许多廉价的内存。所以这个决定是在主机末端,而不是在路由器上做出的。
TPM:现在你们在自己的基础设施上运行所有控制Espresso的软件。这需要花多少钱?需要一整个服务器来管理这些边缘路由器吗?计算和路由的比例是多少?我甚至都不知道如何聪明的问这个问题。Admin Vahdat:我完全理解你在问什么,这是个好问题。为了冗余,和其他各种各样的原因,我们使用的服务器不止一台。精确的比率不重要,但我想我能告诉你的是,服务器的成本加法不可忽略。
TPM:Espresso已经上线两年了,它的服务在Google的流量中占多少比例呢?
Admin Vahdat:20%的流量,而且数值每一天都在提高。所以换句话说,我们所有新的部署都在转向Espresso。当然,我们有一个大的安装基础,但重点是当我们刷新或者扩展我们的 络时,它与Espresso一起。所以每一天我们都有许多流量转向Espresso,所以自然的就提高了。
TPM:那其他80%的流量在做什么呢?
Admin Vahdat:传统供应商设备。
TPM:要花多长时间才能彻底更换它?大概三四年?
Admin Vahdat:我不知道。这可能是准确的。我不知道具体答案,但对我们来说,这并不重要,因为所有的效益都在那里,并且正在增长。支出方面也不重要,因为所有现有的东西都在贬值,或者说基本上都在贬值。
TPM:在全世界有人有这样的东西吗?谷歌不是整个世界,你知道的,当然…
Admin Vahdat:嗯,我们觉得我们确实生活在整个世界中,但这是一个很好的观点。让我这样说,我不知道有任何接近这个的东西。这并不意味着它不存在。
TPM:嗯,如果你不知道它,我很确定它不存在,因为如果能够买到它,你们就会买。
Admin Vahdat:是的,我认为这真的很大的偏离了标准互联 思维。因为标准的互联 路由器思维以路由盒子为中心。你需要有两个路由盒,两个路由器彼此建立连接,交换协议消息,并且给他们需要的所有数据,他们所需要做的只是数据包转发。我的意思是这是 络的运行方式。这是教条。但我们真的以一种坚实的方式在打破它。所以这是为什么可能没有其他人做这个的原因。它与传统互联 协议思维相违背。
TPM:培养这种技术是你的愿望吗?我的意思是你们一直在这样做。你们发表论文,发布开源软件。你的愿望是把Espresso捐赠给世界吗?或者这只是炫耀的权利,它能帮助你们得到你们特殊需要的特殊硬件产品?Espresso的计划是什么?不包括使用它,显然。
Admin Vahdat:这是个好问题,也是一个很大的问题。我们没有卖 络设备的业务,未来也不会进入卖 络设备这个行业。我们相信使互联 变得更好,无论是更高的可用性还是更快,是我们使命的核心。所以,发布这些技术的部分原因是我们认为其他人应该采用更好的想法。此外,当我们采用这些想法时,它确实是有意义的,让我们能够在ISPS之间扩展互联 协议。因为到现在,一切都已经通过特殊的方式完成了,这给我们带来好处,但我们仍在在对外面的世界说BGP。
TPM:我认为所有人都使用像Espresso这样的东西,是有益的。
Admin Vahdat:对我而言,是的。我绝对相信,通过更全面的全球视野, 络将会比现在的状况好很多。
这里还有一点,这是让我非常兴奋的东西。
因为互联 的历史,只有遵循我们的原则才能让互联 达到这个规模。换句话说,通过使用配对连接。我的意思是,想象一下这个 络,你要做的就是找到一个互联 成员,把你的设备插进去,然后突然你就成了这个全球 络的成员。这太不可思议了,太棒了。协议的出现是有很大的原因的,当然,没有互联 的这种遗产,我坚信我们无法建立起我们所做的 络。但是我们现在到了这样的这样的时间点,互联 不再仅仅是寻找一个路径,两个服务器之间的任意路径,而是利用丰富的连接来提供最高等级的可用性,最好的性能,最低的延迟。知道了这一点,现在如何设计协议已经从成对决策转移到更全球的视野。
TPM:之前我在想,而且我试着在我脑袋里构思这样的画面:如果所有人每时每刻都在优化,它最终变成了一场比赛,你最终可能会得到类似于高频交易一样的东西,所有人都一直在互相干扰。一旦每个人都开始这样做,我不知道有什么东西能够完成。通过所有人都一直在动态优化, 络会变得更复杂吗?
Admin Vahdat:是的,这是可能的,但可以再次聚合。另外要记住的一点是,现在每个人都一直在优化,只是他们完全依靠他们的单个盒子来做这个。所以现在想象一下,我们允许人们少做一些优化,然后将其聚合在一个更大的视图上。
TPM:或者,如果你真的能有意的推动某些方向上的流量,相反,我猜这不是真的被动,你知道,找到最好的路线和实际上警察告诉你走哪条路是有差别的。
Admin Vahdat:是的,相当多的流量主管。绝对的。
TPM:有趣。所以,在这一点上Espresso有什么计划呢?你在这方面发表过论文吗?
Admin Vahdat:还没有。但请保持关注。
TPM:我想要再问你一个问题,只是为了有趣。你谈到SDN的四个关键部分。这些是主要的东西,还是有其他的东西?我只想知道是否有其他东西,或者这是基本的东西?
Admin Vahdat:肯定有。我在演讲中想要表达的意思是,我认为我们,特别是在我心中,我们已经把它带到互联 上,我们越过了临界点。换句话说,三四年前有一个巨大的争论:SDN是个好点子吗?这是做 络的正确道路吗?我再次思考了,对我来说,我们已经越过临界点了。即使在Google内部,几年前,这也是一个巨大的争论。现在不再有SDN了,它变成了N。换句话说,软件定义 络就是我们做 络的方式。所以争论结束了,我们越过了临界点,还有更多的事要做。
所以只有这些吗?不,实际上我们将会在未来几年告诉你们第五支柱和第六支柱。但是现在我们也在思考下一个挑战是什么。换句话说,如果SDN就是做 络的方向,那么它的含义是什么呢?如果你在 络的生态系统中思考,例如,管理,或者当我们思考 络的安全性,或者当我们思考 络的可用性。
TPM:两年前,你在一个关于Jupiter的演讲中演讲,然后谈到对5Pb/秒交换机结构的需求。你通过一个非常合理的解释来解释为什么会这样。你关于此事的想法改变了吗?或者你依旧急切的想要得到尽可能多的带宽。
Admin Vahdat:是的,我非常急切的想要得到尽可能多的带宽,并且我认为另一个方面是我们如何在更高级别的软件中打破一些关于带宽可用性的假设。换句话说,有许多软件被编写来适应慢速的 络。这意味着如果我们使 络变得更快,在很多情况下软件不能利用这个优点,因为软件变成了瓶颈。
TPM:这是一个愚蠢的写软件的方式。我相信,当时是有道理的。
Admin Vahdat:是的。作为一个软件人,我可能不同意你,但我完全理解你说的。我觉得我自己一直都是这样。
TPM:Google目前在过渡期的哪个阶段呢?或者只是一般的 络?内部的迁移从40Gb/秒上升到100Gb/秒了吗?你觉得200Gb/秒的以太 怎么样?Innovium和Mellanox有400G/秒的交换机问世,而且有许多大规模数据中心支持他们。Google实际上是在投资Innovium,所以我怀疑你对此有兴趣。
Admin Vahdat:我们在 络的黄金年代。我不会告诉你我们在过渡计划中处于何处的细节,但这是做 络激动人心的时刻。长时间以来第一次我们在这个领域中有了创业公司。
你知道这很有趣,同时处理器的速度在放缓,或者改善的速度正在放缓,但 络并没有显示出放缓的迹象。而对我来说,这指出一个巨大的机会,因为我认为 络正在成为总体上提高计算性能的核心,通过使我们能够在服务器之间利用更多的并行性。
TPM:我不能同意更多了。 络终于赶上来了,它已经松懈了一段时间了。
Admin Vahdat:是的,如果你看一看这些转变,例如从1Gb/秒到10Gb/秒的转变,花费了相当长时间。从10Gb/秒到40Gb/秒好了一些,而从40Gb/秒到100Gb/秒甚至更短了,而你指出的速度,从200Gb/秒到400Gb/秒甚至更高,改变的非常快。
英文原文:https://www.nextplatform.com/2017/07/17/google-wants-rewire-internet/
译者:南北丶
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!