在当今加快网站加载时间的竞赛中,每一毫秒都很重要。我们测试并研究了网站速度对销售、转化、用户体验和用户参与度的影响。
但有一个警告。虽然现场优化对于提高速度很重要,但这并不是我们应该关注的唯一方面。支持我们网站并将其连接到我们的访问者的硬件和网络基础设施也很重要。很多。
今天我们将讨论为什么Google会在其网络基础设施上投入大量资金,以及Google Cloud Platform的高级层网络和标准层网络的一些差异。
- 带宽和延迟(托管基础设施性能的关键标准)
- 网络与互联网对等与传输
- 边界网关协议
- 云计算、CDN、边缘市场的发展
- 云提供商如何解决延迟问题?
- 为什么谷歌在其网络基础设施上投入如此之多?
- 这与谷歌云网络有什么关系?
- Google的高级网络与标准层网络
带宽和延迟(托管基础设施性能的关键标准)
在深入了解Google Cloud网络的细节之前,首先了解以下两个概念很重要:带宽和延迟。
带宽是网络的吞吐能力,以Mbps为单位;而延迟是沿途不同路由器添加到我们的网络请求和响应中的延迟或所有延迟的总和。
形象地说,带宽或吞吐量可以被描绘为每秒允许一定体积的水通过的水管容量。延迟可以与从水管打开到开始涌出的延迟进行比较。
由于在不同路由器之间建立连接的开销很小,因此沿途的每个“跳跃”都会为最终请求和响应增加少量延迟。
因此,访问者和托管网站的服务器越远,延迟就越大。此外,网络越分散,延迟就越大。
我们可以通过使用名为traceroute或windows上的tracert的工具来描绘这一点。在接下来的屏幕截图中,我们使用它来检查来自欧洲的两个请求的路由延迟。
微博
另一个bbc.co.uk:
英国广播公司
正如我们预期的那样,中国网站的跃点数几乎是欧洲网站的2倍。因此,与对在英国托管的网站的请求相比,这是增加的延迟。
tracert显示的三列代表三个往返 (RTT)。每行代表沿途不同的路由器或跃点。它们通常具有帮助我们确定特定路由器所在位置的URL。
中国/香港路由器的往返时间接近三分之一秒。
我们使用pingdom工具从Pingdom的澳大利亚位置加载托管在伦敦的网站,以尝试确定网络在网站总加载时间中的份额。
加载时间示例
这是在这个测试场景中加载的一个小CSS文件的数据。Connect部分在加载此资源方面的份额最高,其次是SSL和Wait。直到并包括等待时间的所有时间也称为第一个字节的时间(TTFB),其中包括网络延迟。
当互联网服务提供商宣传互联网连接的速度时,他们通常会宣传他们的带宽(“软管的宽度”还记得吗?)这实际上并不是衡量速度的标准。增加管道的宽度只能在一定程度上提高网站速度。当我们需要每秒发送大量数据时,它会更有用,例如当我们流式传输高清视频内容时。但对于可能正在在线玩实时多人游戏的用户来说,延迟会更重要。
HTTP/2规范和SPDY协议的合著者之一Mike Belshe分析了增加带宽对网站加载速度的影响与减少延迟对网站加载速度的影响。
以下是Belshe在精美图表中的发现:
加载时间/带宽变化与加载时间/延迟变化
应该清楚的是,通过增加带宽来提高网站速度并不是达到更好性能的最有效方法。另一方面,通过减少RTT(往返时间)或延迟,我们可以看到页面加载时间的持续改进。
网络与互联网对等与传输
为了更好地理解我们的主题,我们需要解释互联网拓扑的基础知识。全球互联网的核心是由多个全球、区域和本地网络组成。
截至2018年,有超过60,000个 AS(自治系统)。这些网络属于政府、大学、ISP。
其中,我们区分了第1层、第2层和第3层网络。这些层代表了整个互联网上每个网络的独立性。
- 第 1 层网络是独立的,因为它们无需付费即可连接到Internet上的任何其他点。
- 第 2 层网络与其他ISP有对等协议,但它们也为传输付费。
- 第 3 层网络,最低级别,通过购买更高级别的传输连接到互联网的其余部分。他们实际上就像必须付费才能访问互联网的消费者。
对等关系是指两个网络在平等的基础上交换流量,因此它们中的任何一个都不会为中转支付对方的费用,并免费返回相同的流量。
对等互连的主要好处是大大降低了延迟。
Web请求如何通过ISP的分层网络
在上图中,我们看到了一个经典场景,其中Web请求通过第 1 层、第 2 层和第 3 层ISP的分层网络,以检索托管在远程位置的数据中心中的网站。
箭头代表Web请求旅程。虚线箭头表示传输连接,实线箭头表示对等连接。
一旦到达第 1 层提供者,它与同一级别的另一个提供者的关系就是对等关系。第 1 层网络连接到其他网络,并专门通过对等伙伴中继他们的请求。他们无需支付交通费用即可访问互联网上的所有其他网络。
我们还可以看到另一种情况,其中两个 2 级提供商有一个对等协议,用绿松石色指定。在这种情况下,跃点数较少,网站加载时间也会少得多。
边界网关协议
BGP是一种很少被提及的协议,除非在非常技术性的环境中。然而,正如我们今天所知,该协议位于互联网的核心。它是我们访问互联网上几乎所有东西的能力的基础,它是互联网协议栈中易受攻击的链接之一。
边界网关协议在2006年的IETF Request For Comments #4271中定义,此后进行了多次更新。正如RFC所说:
使用BGP的系统的主要功能是与其他BGP系统交换网络可达性信息。
简而言之,BGP是一种协议,负责决定网络请求的确切路由,超过成百上千个可能的节点到其目的地。
边界网关协议
我们可以将每个节点想象成一个自治系统或一个由多个节点或路由器、服务器和与其相连的系统组成的网络。
在BGP协议中,没有自动发现算法(一种机制或协议,每个新连接的节点都可以通过它发现相邻节点进行连接),而是每个BGP对等体都必须手动指定其对等体。至于路径算法,引用Cisco专家的话:
“BGP没有一个简单的指标来决定哪条路径是最好的。相反,它会为每条路线宣传一组广泛的属性,并使用 由多达13个步骤组成的复杂算法来决定哪条路线是最佳的。”
自治系统将路由数据传输给它们的对等体,但是,没有关于路径选择的硬性规则。BGP是一个基于信任的系统,这可能是当今互联网最大的安全漏洞之一。2018年的盗窃事件, MyEtherWallet.com流量被劫持,200多个以太币被盗(价值152,000美元)暴露了这个漏洞。
实际上,BGP的这种弱点通常会导致各种网络 (AS) 发出BGP数据时考虑到其他利益,而不是最终用户的效率和速度。这些可以是商业利益,如付费交通,甚至是政治或安全考虑。
云计算、CDN、边缘市场的发展
由于IT市场需求不断增长,从网络行业、在线游戏到物联网等,解决延迟问题的服务提供商和产品的市场空间变得明显。
年复一年,我们看到更多基于云的产品缓存靠近访问者的静态资源(内容交付网络)或使实际计算更接近最终用户。Cloudflare的Workers就是这样一种产品,它在Cloudflare的边缘节点网络上执行V8 javascript引擎兼容的代码。这意味着即使是WebAssembly或GO代码也可以在非常靠近访问者的地方执行。
亚马逊的Lambda@Edge是这一趋势的另一个例子,英特尔和阿里云合作提供针对物联网市场的联合边缘计算平台。
另一个值得一提的是,谷歌的全球缓存节点网络既可以用作CDN,也可以用作其子公司YouTube的视频缓存和交付网络。
为了说明云行业已经变得多么精致和先进,以及它为最终用户减少了多少网络延迟 ,让我们来看看GaaS。
GaaS是游戏即服务的缩写。它是一种云产品,使用户能够玩在云中托管和执行的游戏。本文比较了GaaS领域的一些突出产品。
每个曾经为游戏购买过电视或视频投影仪,或者花一些时间在电视和其他设备之间设置Miracast或其他投射连接的人都会知道延迟的重要性。然而,现在有GaaS提供商提供4k分辨率和60Hz刷新率的游戏流媒体 ……玩家不必投资硬件。
近期美国禁止华为的戏剧性事件,引发了人们对5G网络问题的关注,以及迫切需要一条清晰的路径来升级世界网络基础设施。
以最小延迟实时传递大量信息以协调智能城市、智能房屋、自动驾驶汽车的传感器将依赖于边缘设备的密集网络。延迟是目前自动驾驶汽车等事物的上限,具有不同的传感器信息、激光雷达数据、该数据的处理与其他车辆的数据。
内容交付网络和云计算提供商处于这场竞赛的最前沿。我们已经讨论过 由能够控制请求-响应周期的行业领导者推出的QUIC/HTTP3协议。
云提供商如何解决延迟问题?
AWS可能是市场份额最大的云提供商。2016年,他们投资了夏威夷跨太平洋海底光缆系统,旨在提供更大的带宽并减少夏威夷、澳大利亚和新西兰之间的延迟,这是他们对海底基础设施的第一笔投资 。它于2018年上线。
海底光缆(图片来源:NEC)
到那时,谷歌在铺设海底骨干网方面已经遥遥领先。在亚马逊首次投资前一年,ITWorld发表了一篇文章,标题为:“谷歌的数据中心对于正常网络来说增长太快,所以它建立了自己的”。
事实上,在2005年,技术记者Mark Stephens(又名Robert X Cringely)在他的PBS.org专栏中写道,评论了谷歌对暗光纤(已铺设但未使用的光纤基础设施)的疯狂采购:
“这不仅仅是另一个Akamai甚至是类固醇的Akamai。这是一款动态驱动的智能热核Akamai,具有专用的反向通道和特定于应用程序的硬件。会有互联网,然后会有谷歌互联网,叠加在上面。”
谷歌的云网线基础设施(来源:谷歌)
2010年,在zdnet.com上的一篇文章中,Tom Foremski说:
“谷歌是拥有大量互联网的公司之一”,并继续说道:“谷歌一直致力于打造最高效、运营成本最低的私有互联网。这个基础设施是谷歌的关键,也是理解谷歌的关键。”
当时,Cringley的文章提出了一些关于谷歌试图接管互联网的担忧,但当该公司推出Google Fiber时,事情变得更加清晰,谷歌试图征服美国最大城市的ISP市场。自那以后,该项目已经放缓,以至于TechRepublic在2016年发布了该项目的事后分析,但现在在全球范围内对基础设施的投资并没有放缓。
谷歌的最新投资,将于今年投入使用,是连接美国洛杉矶和智利瓦尔帕莱索的骨干网,未来将有一个分支连接巴拿马。
“互联网通常被描述为云。实际上,它是一系列潮湿、易碎的管子,而谷歌即将拥有数量惊人的管子。” — VentureBeat
为什么谷歌在其网络基础设施上投入如此之多?
标准路由
我们都知道谷歌是排名第一的搜索引擎,但它也:
这就是为什么它需要尽可能小的延迟和尽可能大的带宽。谷歌还希望拥有实际的基础设施,因为它对更多带宽和延迟的“贪得无厌”使得谷歌及其亚马逊或微软等大型同行公司处于需要提供完全定制的硬件和软件解决方案的位置.
PoP节点
存在点或边缘PoP节点位于Google全球专用有线电视网络的边缘。在那里,它们充当连接到Google数据中心的流量的入口和出口点。
摩尔定律是英特尔联合创始人戈登摩尔的一项观察,他指出,每两年,我们可以在集成电路上放置的晶体管数量就会翻一番。几十年来,这种期望一直是正确的,但现在,计算行业即将对摩尔定律进行严峻的考验,也许在不久的将来会结束。仅供参考, NVIDIA首席执行官在19年宣布摩尔定律失效。
那么这与云行业以及谷歌的网络基础设施有什么关系呢?
在2018年12月的Open Networking Foundation Connect活动上,谷歌的副总裁兼网络技术负责人Amin Vahdat承认摩尔定律的终结并解释了公司的难题:
我们的计算需求继续以惊人的速度增长。我们将需要加速器和更紧密耦合的计算。网络结构将在将这两者联系在一起方面发挥关键作用。
云提供商跟上对计算能力日益增长的需求的一种方法是集群。简而言之,集群意味着将多台计算机放在一起处理单个问题,执行单个应用程序的进程。显然,从这种设置中受益的一个先决条件是低延迟或强大的网络容量。
当谷歌在2004年开始设计自己的硬件时,网络硬件供应商考虑的是盒子,路由器和交换机需要通过命令行单独管理。在那之前,谷歌一直在从思科等供应商那里购买交换机集群,每台交换机都花了一大笔钱。但设备仍然跟不上增长的步伐。
谷歌需要一个不同的网络架构。对谷歌基础设施的需求呈指数级增长(谷歌2015年的一篇研究论文称,他们的网络容量在十年内增长了100倍),而且增长如此之快,以至于购买现有硬件的成本也促使他们创建自己的解决方案。谷歌开始使用商用硅芯片构建定制交换机,采用更模块化的不同网络拓扑。
Google的工程师开始构建一个名为Clos Network的旧电话网络模型,它减少了每个交换机所需的端口数量:
“Clos网络的优势在于您可以使用一组相同且廉价的设备来创建树并获得高性能和弹性,否则构建成本必须更高。” — Clos Networks:旧的又是新的,网络世界
对于这种新的模块化硬件,Google的团队还必须重新定义现有协议并构建自定义网络操作系统。他们面临的挑战是使用大量的交换机和路由器,并将它们当作一个单一的系统来操作。
自定义网络堆栈以及对重新定义协议的需求导致Google转向软件定义网络 (SDN)。以下是2015年Google副总裁、工程研究员和网络基础设施团队负责人Amin Vahdat的主题演讲,解释了他们提出的所有挑战和解决方案:
对于最好奇的人来说,这篇有趣的博客文章值得一读。
Espresso
Espresso是谷歌SDN的最新支柱。它允许谷歌的网络超越物理路由器的限制,学习和协调进出谷歌对等合作伙伴的流量。
Espresso使Google能够实时测量连接的性能,并根据实时数据为特定访客的最佳接入点做出决定。这样,Google的网络可以动态响应其对等互连/ISP合作伙伴的不同拥塞、减速或中断。
最重要的是,Espresso可以利用Google的分布式计算能力来分析其所有同行的网络数据。所有路由控制和逻辑不再驻留在单个路由器和边界网关协议,而是转移到谷歌的计算网络。
“我们利用我们的大规模计算基础设施和来自应用程序本身的信号来了解各个流的执行情况,这取决于最终用户对质量的感知。” — Espresso让Google Cloud更快,2017
这与谷歌云网络有什么关系?
到目前为止,我们所涵盖的内容重点突出了Google为构建可能是当今可用的最佳全球专用网络而经历的所有问题和挑战(基于硬件和软件)。
在市场份额方面,谷歌云平台是全球第三大供应商(仅次于AWS市场份额和微软的Azure市场份额)。但就其优质的专用网络基础设施而言,它远远落后于竞争对手,正如BroadBand Now的数据所示:
海底电缆所有权,2018年9月(来源:BROADBANDNOW,Centerfield BBN LLC)
2014年,GigaOM发表了一篇比较AWS和谷歌云平台的文章,但仅仅一周后,他们又发表了一篇题为:“我在谷歌与亚马逊云辩论中错过的东西——光纤!” 他们认识到谷歌在基础设施方面领先数年。
“为您和您的客户的流量提供大而快速的管道是一件大事。” — Barb Darrow,GIGAOM
Google的高级网络与标准层网络
谷歌云网络平台
谷歌云平台提供两种不同的网络层,它们在价格和性能上都有所不同。
Google高级层网络
借助Google的Premium Tier Network,用户可以利用全球光纤网络以及全球分布的接入点。从客户到Google数据中心的所有入站(入站)流量都被路由到最近的接入点,这些接入点分布在全球范围内,然后请求100%通过Google的私有骨干网路由。正如我们在之前的文章中提到的 ——这可能意味着延迟提高 30% 或带宽提高 50%。
在返回的路上,从数据中心发送给访问者的所有数据都使用冷土豆策略进行路由。与在标准层网络上使用的Hot Potato路由相反,在该网络中,流量尽可能早地移交(或丢弃)到其他ISP-s,高级层路由意味着出口流量保持只要可能在谷歌自己的光纤上,并被交给尽可能靠近访问者的同行或中转ISP-s。
用外行的话来说。高级层数据包在Google网络上花费的时间更多,反弹更少,因此性能更好(但成本更高)。
对于我们当中的科幻迷来说,它可以比作一个宇宙虫洞,它将我们的流量直接传输到我们的目的地,而无需通过互联网漫游。
Kinsta将Google Cloud的高级层网络与我们所有托管的WordPress计划一起使用。这可以最大限度地减少距离和跳数,从而更快、更安全地在全球传输数据。
Kinsta托管架构
Google标准层网络
另一方面,标准层级网络在我们的内容或Web应用程序所在的数据中心附近使用入网点。这意味着我们的访问者的流量将通过许多不同的网络、自治系统、ISP,并通过许多跃点,直到到达目的地。在这种情况下,速度会受到影响。
在标准层上传输的内容将无法充分利用Google的SDN和强大的计算能力来动态计算最佳路线的好处。流量将受Google和访问者之间所有系统的BGP策略的约束。
用外行的话来说。标准层数据包在Google网络上花费的时间更少,而在公共网络上玩烫手山芋的时间更多,因此性能更差(但成本更低)。
此外,高级层使用全局负载平衡,而标准层仅提供区域负载平衡,这为标准上的客户带来了更多的复杂性和更多的“步法”。
Premium Tier Network提供全球服务水平协议 (SLA),这意味着Google接受提供特定服务水平的合同责任。这就像一个质量保证标志。标准网络层不提供此级别的SLA。
对于那些想要了解更多信息的人,Google Cloud网站上有两个层级的相当广泛的比较和文档。他们甚至提供了一个方便的图表来帮助您更轻松地确定您应该使用哪个网络层:
网络服务层决策树(来源:谷歌云平台)
小结
多年来,谷歌一直在投资创建一个全球网络基础设施,部署自己的协议以及定制的硬件和软件网络堆栈。在摩尔定律似乎年复一年变弱的时候,谷歌的基础设施使公司能够跟上对云资源不断增长的需求。
尽管就市场份额而言,它仍落后于亚马逊云和微软的Azure云,但谷歌在其拥有的光纤以及其工程师部署的尖端硬件和软件解决方案方面都获得了一些关键优势。
我们可以预期谷歌将在物联网、智能城市、无人驾驶汽车技术中发挥关键作用,并且对边缘计算的需求将持续增长。
Google Cloud Network Premium Tier是第一个利用Google创新网络成果的产品。它允许客户利用Google的网络和整个堆栈以极快的速度交付内容。谷歌对延迟的保证。
原文地址:https://www.wbolt.com/google-cloud-network.html