Технологии, которые позволяют распространять YouTube в масштабе?


34

Youtube, как мы знаем, массовый. Он имеет тысячи одновременных пользователей, транслирующих не менее 2 мегабайт на видео. Очевидно, что это будет много трафика ... слишком много для любого сервера.

Какие сетевые технологии позволяют продвигать 4 миллиарда видео в день?

Ответы:


51

Масштабирование на бэкэнде

В очень простой настройке одна запись DNS переходит к одному IP, который принадлежит одному серверу. Все во всем мире ездят на этой единственной машине. С достаточным трафиком, это слишком много, чтобы справиться задолго до того, как вы станете размером YouTube. В простом сценарии мы добавляем балансировщик нагрузки. Задача балансировщика нагрузки состоит в том, чтобы перенаправлять трафик на различные фоновые серверы, пока он отображается как один сервер.

С таким большим количеством данных, как у YouTube, было бы слишком многим ожидать, что все серверы смогут обслуживать все видео, поэтому мы должны добавить еще один слой косвенности: sharding . В надуманном примере один сервер отвечает за все, что начинается с «A», другой владеет «B» и так далее.

Перемещение края ближе

В конце концов, однако, пропускная способность просто становится интенсивной, и вы перемещаете много данных в одну комнату. Итак, теперь, когда мы очень популярны, мы убираем это из этой комнаты. Здесь важны две технологии: сети распространения контента и Anycasting .

Там, где у меня большие статические файлы, запрашиваемые по всему миру, я перестаю указывать прямые ссылки на мои хост-серверы Вместо этого я размещаю ссылку на мой сервер CDN. Когда кто-то просит посмотреть видео, он спрашивает мой CDN-сервер. CDN отвечает за то, что у вас уже есть видео, запрашивает копию с хост-сервера или перенаправляет меня. Это зависит от архитектуры сети.

Чем полезен этот CDN? Ну, один IP может фактически принадлежать многим серверам, которые находятся во многих местах по всему миру. Когда ваш запрос покидает ваш компьютер и направляется к вашему Интернет-провайдеру, его маршрутизатор отображает лучший IP-адрес (самый короткий, самый быстрый, с наименьшими затратами ... независимо от показателя). Часто для CDN это будет в или рядом с вашей ближайшей сетью уровня 1 .

Итак, я запросил видео с YouTube. Фактическая машина, на которой это было сохранено, по крайней мере iad09s12.v12.lscache8.c.youtube.comи tc.v19.cache5.c.youtube.com. Они отображаются в источнике моей веб-страницы, на которую я смотрю, и были предоставлены каким-либо сервером индексирования. Теперь из штата Мэн я обнаружил, что сервер tc19 находится в Майаме, штат Флорида. Из Вашингтона я обнаружил, что сервер tc19 находится в Сан-Хосе, штат Калифорния.


4
Ваш придуманный пример шардинга - лучшее, что я видел. Кажется, что все почему-то сильно усложняют эту простую концепцию.
kizzx2

@Jeff, было бы замечательно, если вы добавите несколько цитат или дадите понять, что это предположение конечного пользователя.
Pacerier

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 может обрабатываться любым количеством автономных систем (сеть в Интернете) одновременно. Например, многие из корневых DNS-серверов, а также Google8.8.8.8 DNS-сервер находятся в разных точках земного шара. Идея заключается в том, что если вы находитесь в США, вы попадаете в сеть США, а если вы в Великобритании, вы попадаете в сеть Великобритании.

медиа, поступающие с другого сервера

То, что вы www.youtube.comвключены, не означает, что весь контент должен поступать с одного сервера. Прямо на этом сайте статические ресурсы обслуживаются sstatic.netвместо serverfault.com.

Например, если мы посмотрим ролик PSA «Кейли Куоко» Slave Leia, мы обнаружим, что средства массовой информации обслуживаютсяv10.lscache5.c.youtube.com .

несколько подключений к интернету

Уверяю вас, Youtube имеет более одного подключения к Интернету. Несмотря на все другие методы, даже если Youtube действительно был одним сайтом и одним сервером, теоретически он мог иметь подключения к любой другой сети, в которую он отправлял видео. В реальном мире это, конечно, невозможно, но подумайте над идеей.

Любая или все эти идеи (и даже больше!) Могут использоваться для поддержки сети доставки контента . Прочтите эту статью, если хотите узнать больше.


«Теоретически он может иметь связь с любой другой сетью, которой он обслуживает видео. В реальном мире это, конечно, невозможно, но подумайте над идеей». Почему это невозможно в реальном мире? Вы можете подписаться на многие интернет-провайдеры
user1034912

Вы действительно хотите иметь независимые подключения к более чем тридцати пяти тысячам отдельных сетей? Это не практично.
MikeyB

12

Вы ошибаетесь, представляя, что у YouTube (он же Google) есть только один сервер; эта информация может помочь проиллюстрировать масштаб системы, которая поддерживает эту услугу.

Даже если у вас есть только одна точка присутствия, вы можете иметь более одного сервера за одним именем и даже IP, используя такие инструменты, как балансировщик нагрузки и все такое.

Google, тем не менее, обладает огромным количеством точек присутствия и использует такие инструменты, как AnyCast - метод публикации одного и того же IP-адреса в нескольких местах в Интернете, и люди направляются в ближайший пул серверов, владеющий им, - для поддержки инфраструктуры.


1
Как Google поставил миллион серверов по всему миру? Они арендуют серверы? Не трудно ли им поддерживать безопасность данных, управляя всеми этими сторонними серверами?
user1034912

2
Они владеют каждым из них. Серьезно, они покупают - ну, сделайте, в эти дни - их. Это стоит столько, сколько вы можете себе представить, в некоторых отношениях, но меньше в других.
Даниэль Питтман

1
investor.google.com/financial/tables.html может помочь; 4 квартал 2011 года, пришло 10 000 ... миллионов долларов. Серьезно, они в таком масштабе, который вы не можете себе представить.
Даниэль Питтман

2
@ user1034912 - да, это ошеломляет. Но это Google , так почему, черт возьми, нет? В мире существуют тысячи центров обработки данных, и Google управляет лишь малой их частью.
tombull89

1
@ Tomtom - Почему не трудно поверить пользователю, который не знаком с серверными технологиями? Грубо и крайне обидно говорить, что тот, кто не знает, что у Google есть сотни серверов, живет в безвыходном положении. Выйдите на улицу и спросите горстку обычных нетехнологов, и я гарантирую, что они не знают масштаб серверов Google или даже, каковы они. Кроме того, обычные люди обычно просматривают балансы? Вы всегда должны читать все новости о дата-центрах? Честно говоря, мне все равно, сколько у тебя репутации, но грубость, неуважение и унизительность не приведут тебя в никуда.
DMan

3

Я немного коснусь сетевых аспектов: у Google есть точка присутствия (PoP) в 73 уникальных центрах обработки данных по всему миру (не считая их собственных). Они являются членами 69 уникальных интернет-бирж . Google находится в большем количестве центров обработки данных и точек интернет-обмена, чем другие сети, перечисленные в peeringdb.

Общая пропускная способность интернет-обмена Google составляет> 1,5 Тбит / с, и 1,5 Тбит / с зарезервированы для сетей с трафиком> 100 Мбит / с с Google, но меньше, чем я предполагаю, около 2-3 Гбит / с. После того, как у вас есть «достаточный объем» , вы перешли на частный пиринг (PNI).

В дополнение к пирингу в Internet Exchange и пирингу в частном порядке (с AS15169) YouTube также управляет транзитной сетью: AS43515 и другой сетью, которая, как я предполагаю, предназначена для платного пиринга / переполнения, AS36040. Google также использует серверы Google Global Cache , чтобы интернет-провайдеры могли развернуть их локально в своей сети. (Данные из peeringdb, bgp.he.net).

Исходя из моего опыта, я считаю, что YouTube использует гораздо больше, чем просто геолокацию IP или Anycast, чтобы выбрать место для показа видео.

Google управляет огромной глобальной магистральной сетью, у них есть темное волокно , они финансируют подводные кабели . Объем трафика, генерируемый YouTube, огромен! Я предполагаю, что у YouTube есть пиковый объем трафика> 12Tbps. Google представляет не менее 7% (и, вероятно,> 10%) всего междоменного интернет-трафика.

Таким образом, чтобы действительно ответить на ваш вопрос, с точки зрения сети, чтобы масштабироваться как YouTube, вы должны сделать огромные инвестиции в вашу сеть - от оптоволокна в земле до оборудования WDM и маршрутизаторов. Вы должны получить контент и сеть как можно ближе к своим пользователям. Обычно это означает пиринг, IX, и, возможно, немного транзита. Вы должны быть в состоянии разумно сообщить пользователям, откуда взять контент, чтобы трафик был равномерно распределенным и дешевым. И, конечно же, вам нужна огромная серверная инфраструктура для хранения, обработки, преобразования и доставки 4 миллиардов просмотров в день!

Если вам интересно узнать о серверной части, я написал сообщение в блоге, в котором разбиты некоторые недавно выпущенные образы центров обработки данных.


Кстати, вы работаете на Google?
Пейсер

2

Если вы хотите узнать больше о крупномасштабных системах и технологиях, которые используют эти компании, лучшим источником сейчас является http://highscalability.com

Крупнейшие компании, такие как Google или Akamai, всегда имеют компоненты, которые они написали / создали сами. (например, Akamai разработала веб-сервер для своих услуг)


Хотя некоторые данные там устарели ....
Pacerier
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.