Масштабирование на бэкэнде
В очень простой настройке одна запись 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 находится в Сан-Хосе, штат Калифорния.
Несколько методов используются для больших сайтов.
www.youtube.com
-> любое количество IP-адресовДавайте посмотрим в DNS:
Таким образом, www.youtube.com может фактически перейти на несколько IP-адресов.
любые адреса IP
Один IP может обрабатываться любым количеством автономных систем (сеть в Интернете) одновременно. Например, многие из корневых DNS-серверов, а также Google
8.8.8.8
DNS-сервер находятся в разных точках земного шара. Идея заключается в том, что если вы находитесь в США, вы попадаете в сеть США, а если вы в Великобритании, вы попадаете в сеть Великобритании.медиа, поступающие с другого сервера
То, что вы
www.youtube.com
включены, не означает, что весь контент должен поступать с одного сервера. Прямо на этом сайте статические ресурсы обслуживаютсяsstatic.net
вместоserverfault.com
.Например, если мы посмотрим ролик PSA «Кейли Куоко» Slave Leia, мы обнаружим, что средства массовой информации обслуживаются
v10.lscache5.c.youtube.com
.несколько подключений к интернету
Уверяю вас, Youtube имеет более одного подключения к Интернету. Несмотря на все другие методы, даже если Youtube действительно был одним сайтом и одним сервером, теоретически он мог иметь подключения к любой другой сети, в которую он отправлял видео. В реальном мире это, конечно, невозможно, но подумайте над идеей.
Любая или все эти идеи (и даже больше!) Могут использоваться для поддержки сети доставки контента . Прочтите эту статью, если хотите узнать больше.
источник
Вы ошибаетесь, представляя, что у YouTube (он же Google) есть только один сервер; эта информация может помочь проиллюстрировать масштаб системы, которая поддерживает эту услугу.
Даже если у вас есть только одна точка присутствия, вы можете иметь более одного сервера за одним именем и даже IP, используя такие инструменты, как балансировщик нагрузки и все такое.
Google, тем не менее, обладает огромным количеством точек присутствия и использует такие инструменты, как AnyCast - метод публикации одного и того же IP-адреса в нескольких местах в Интернете, и люди направляются в ближайший пул серверов, владеющий им, - для поддержки инфраструктуры.
источник
Я немного коснусь сетевых аспектов: у 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 миллиардов просмотров в день!
Если вам интересно узнать о серверной части, я написал сообщение в блоге, в котором разбиты некоторые недавно выпущенные образы центров обработки данных.
источник
Если вы хотите узнать больше о крупномасштабных системах и технологиях, которые используют эти компании, лучшим источником сейчас является http://highscalability.com
Крупнейшие компании, такие как Google или Akamai, всегда имеют компоненты, которые они написали / создали сами. (например, Akamai разработала веб-сервер для своих услуг)
источник