可以进行YouTube规模分配的技术?


34

我们知道,Youtube非常庞大。它有成千上万的并发用户,每个视频流至少2 MB。显然,这将带来大量流量……对于任何一台服务器而言,这都太多了。

哪些网络技术可以每天推送40亿个视频?

Answers:


51

在后端扩展

在一个非常简单的设置中,一个DNS条目进入一个IP,该IP属于一台服务器。世界各地的每个人都使用那台机器。有了足够的流量,在您达到YouTube的规模之前,要处理的时间太长了。在一个简单的场景中,我们添加了一个负载均衡器。负载平衡器的工作是将流量重定向到各种后端服务器,同时显示为一台服务器。

拥有与YouTube一样多的数据,就无法期望所有服务器都能够提供所有视频,因此我们要添加另一层间接方法:分片。在一个人为的示例中,一台服务器负责以“ A”开头,另一台拥有“ B”等所有内容,依此类推。

将边缘移近

最终,带宽变得越来越大,您将大量数据移入一个房间。因此,现在我们非常受欢迎,我们将其移出了那个房间。这里重要的两种技术是内容分发网络和任意广播

在世界各地都需要大量静态文件的地方,我不再指向托管服务器的直接链接。相反,我要做的是建立指向我的CDN服务器的链接。当有人要求观看视频时,他们会向我的CDN服务器询问。CDN负责已经拥有视频,从托管服务器索取副本或重定向我。这将根据网络的架构而有所不同。

CDN有什么帮助?嗯,一个IP实际上可能属于世界各地许多地方的许多服务器。当您的请求离开您的计算机并转到ISP时,他们的路由器会将最佳路径(最短,最快,成本最低……等等)映射到该IP。通常是CDN,它位于您最近的Tier 1网络上或附近。

因此,我要求YouTube提供视频。实际存储的计算机至少为iad09s12.v12.lscache8.c.youtube.comtc.v19.cache5.c.youtube.com。这些内容显示在我正在查看的网页源中,并由某种形式的索引服务器提供。现在,从缅因州,我发现tc19服务器位于佛罗里达州的迈阿密。在华盛顿,我发现tc19服务器位于加利福尼亚的圣何塞。


4
您精心设计的分片示例是我所见过的最好的示例。出于某种原因,每个人似乎都将这个简单的概念弄得很复杂。
kizzx2 2012年

@Jeff,如果您添加一些引用或明确指出这是最终用户的猜测,那将很棒。
Pacerier '16

23

大型站点使用了几种技术。

www.youtube.com ->任意数量的IP地址

让我们看一下DNS:

www.youtube.com is an alias for youtube-ui.l.google.com.
youtube-ui.l.google.com has address 74.125.226.14
youtube-ui.l.google.com has address 74.125.226.0
youtube-ui.l.google.com has address 74.125.226.1
youtube-ui.l.google.com has address 74.125.226.2
youtube-ui.l.google.com has address 74.125.226.3
youtube-ui.l.google.com has address 74.125.226.4
youtube-ui.l.google.com has address 74.125.226.5
youtube-ui.l.google.com has address 74.125.226.6
youtube-ui.l.google.com has address 74.125.226.7
youtube-ui.l.google.com has address 74.125.226.8
youtube-ui.l.google.com has address 74.125.226.9
youtube-ui.l.google.com has IPv6 address 2001:4860:800f::88

因此,www.youtube.com实际上可以访问多个IP地址。

任播IP地址

单个IP可以同时由任意数量的自治系统(Internet上的网络)处理。例如,许多根DNS服务器以及Google的8.8.8.8DNS服务器在全球许多地方都是任意播出的。这个想法是,如果您在美国,则访问了美国网络;如果您在英国,则访问了英国网络。

来自不同服务器的媒体

仅仅因为您在使用www.youtube.com,并不意味着所有内容都必须来自同一服务器。在此站点上,从而sstatic.net不是从提供静态资源serverfault.com

例如,如果我们观看Kaley Cuoco的Slave Leia PSA,我们会发现媒体是由投放的v10.lscache5.c.youtube.com

多个互联网连接

我向你保证,Youtube有多个互联网连接。尽管使用了所有其他技术,即使Youtube确实是一个站点和一台服务器,从理论上讲,它也可以与向其提供视频服务的每个其他网络建立连接。在现实世界中,这当然是不可能的,但请考虑一下这个想法。

这些想法中的任何一个或全部(甚至更多!)都可用于支持内容交付网络。如果您想了解更多信息,请阅读该文章。


“从理论上讲,它可以与向其提供视频服务的每个其他网络建立连接。在现实世界中,当然不可能,但要考虑这个想法。” 为什么在现实世界中不可能?您可以订阅许多互联网提供商
2012年

您真的要与超过三万五千个独立的网络建立独立的连接吗?这不切实际。
MikeyB 2012年

12

您以为YouTube(又称Google)只有一台服务器是错误的。此信息可能有助于说明支持该服务的系统的规模。

即使您只有一个接入点,也可以使用诸如负载均衡器之类的工具,在一个名称甚至IP后面绝对拥有一台以上的服务器。

但是,Google有很多存在点,并使用AnyCast之类的工具-一种在Internet上的多个位置发布相同IP的技术,并将人们路由到拥有它的最近的服务器池中-以支持基础结构。


1
Google如何在全球范围内放置一百万台服务器?他们租用服务器吗?他们为维持所有这些第三方服务器的数据安全性难吗?
user1034912 2012年

2
他们拥有其中的每一个。认真地讲,这些天他们购买-好,制造。在某些方面,这成本与您想象的一样多,而在其他方面则更低。
丹尼尔·皮特曼

1
Investor.google.com/financial/tables.html可能有所帮助;2011年第4季度,有10,000欧元...百万美元进账。说真的,它们的规模令人难以想象。
丹尼尔·皮特曼

2
@ user1034912-是的,这很惊人。但这是Google,那为什么不呢?全球有成千上万个数据中心,而Google恰好运作其中的一小部分。
tombull89 2012年

1
@Tomtom-对于不熟悉服务器技术的用户,为什么不难相信?说一个不知道Google有数百台服务器的人生活在一块岩石下是不礼貌的,而且极具冒犯性。出去看看一些普通的非技术人员,我保证他们不知道Google服务器的规模,甚至不知道它们的大小。另外,普通人通常浏览资产负债表吗?您是否总是需要阅读有关数据中心的所有新闻?老实说,我不在乎你有多少代表,但粗鲁,不尊重和贬低会使你一生无路。
DMan 2012年

3

我会稍微谈谈网络方面的问题:Google在全球73个独特的数据中心(不包括它们自己的)中拥有一个Point of Presence(PoP)。他们是69个独特的Internet交流的成员。Google在peeringdb上列出的其他网络中的数据中心和Internet Exchange点更多。

Google的总互联网交换容量> 1.5Tbps,而该1.5Tbps保留给与Google的流量> 100Mbps的网络使用,但比我估计的2-3Gbps小。拥有足够的容量后,您将移至专用对等(PNI)。

除了Internet Exchange对等和专用对等(使用AS15169)外,YouTube还运营一个传输网络:AS43515,我假设还有一个用于付费对等/溢出的网络AS36040。Google还运营Google Global Cache服务器,供ISP在其网络内甚至更多地本地部署。(数据来自peeringdb,bgp.he.net)。

根据我的经验,我相信YouTube不仅会使用IP地理位置或Anycast来选择提供视频的位置。

Google拥有庞大的全球骨干网,拥有深色光纤为海底电缆提供资金。YouTube带来的流量巨大!我猜想YouTube的峰值流量超过12Tbps。Google 至少占所有域间互联网流量的7%(可能超过10%)。

因此,要从网络角度真正回答您的问题,要像YouTube那样进行扩展,您必须对网络进行大量投资-从地面光纤到WDM设备以及路由器。您必须使内容和网络尽可能靠近用户。这通常意味着对等,IX,并且可能需要一些过渡。您必须能够智能地告诉用户从何处获取内容,以使流量尽可能平均地分布并且便宜。当然,您必须拥有庞大的服务器基础架构才能每天存储,处理,转换和交付40亿个视图!

如果您对服务器端感到好奇,我写了一篇博客文章,其中介绍了一些最近发布的数据中心映像。


顺便说一句,您在Google工作吗?
Pacerier '16

2

如果您想了解有关大型系统和这些公司使用的技术的更多信息,现在最好的资源是http://highscalability.com

像Google或Akamai这样的大公司,总是拥有自己编写/创建的组件。(例如,Akamai为他们的服务开发了一个网络服务器)


一些有过时虽然数据....
Pacerier
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.