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


34

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

Які технології мереж дозволяють просувати 4 мільярди відео на день?

Відповіді:


51

Масштабування на бекенді

У дуже простому налаштуванні один запис DNS переходить до одного IP, який належить одному серверу. Усі люди у всьому світі йдуть до цієї єдиної машини. При достатньому обсязі трафіку це занадто багато, щоб обробити задовго до того, як ти станеш розміром YouTube. У простому сценарії ми додаємо балансир навантаження. Завдання балансира навантаження - перенаправляти трафік на різні бек-сервери, з'являючись як один сервер.

Маючи стільки даних, скільки має YouTube, було б занадто багато очікувати, що всі сервери зможуть обслуговувати всі відео, тому ми маємо додати ще один шар непрямості : шардінг . У надуманому прикладі один сервер відповідає за все, що починається з "A", інший - "B" тощо.

Пересуваючи край ближче

Зрештою, пропускна здатність просто стає інтенсивною, і ви переміщуєте багато даних в одну кімнату. Отже, тепер, коли ми дуже популярні, ми переносимо його з цієї кімнати. Тут важливі дві технології розподілу контенту та Anycasting .

Там, де у мене в усьому світі потрібні великі статичні файли, я перестаю вказувати прямі посилання на свої хостинг-сервери. Що я роблю замість цього - це посилання на мій сервер CDN. Коли хтось просить переглянути відео, він запитує його мій сервер CDN. CDN відповідає за те, що вже має відео, запитує копію з хостинг-сервера або перенаправляє мене. Це залежатиме від архітектури мережі.

Чим корисний цей CDN? Ну, один IP може насправді належати багатьом серверам, які є в багатьох місцях по всьому світу. Коли ваш запит покидає ваш комп’ютер і переходить до вашого провайдера, їх маршрутизатор відображає найкращий шлях (найкоротший, швидкий, найменший вартість ... будь-який показник) до цього IP. Часто для CDN, який буде у вашій найближчій мережі першого рівня чи поруч із ним .

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


4
Ваш надуманий приклад загострення - це найкраще, що я бачив. Здається, кожен робить чомусь великим ускладненням цю просту концепцію.
kizzx2

@Jeff, Було б чудово, якщо ви додасте деякі цитати або зрозумієте, що це спекуляція з кінцевим користувачем.
Печер'є

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 Kaley Cuoco, то виявляємо, що ЗМІ обслуговуються v10.lscache5.c.youtube.com.

декілька підключень до Інтернету

Запевняю, у Youtube є більше ніж один Інтернет-з'єднання. Незважаючи на всі інші методи, навіть якщо Youtube справді був єдиним сайтом та єдиним сервером, він теоретично міг би мати зв’язок із кожною іншою мережею, до якої він обслуговував відео. У реальному світі це, звичайно, неможливо, але врахуйте ідею.

Будь-які або всі ці ідеї (і більше!) Можна використовувати для підтримки мережі доставки вмісту . Читайте цю статтю, якщо хочете дізнатися більше.


"теоретично це може мати з'єднання з кожною іншою мережею, до якої воно обслуговувало відео. У реальному світі це, звичайно, неможливо, але врахуйте ідею". Чому це неможливо в реальному світі? Ви можете підписатися на багато інтернет-провайдерів
user1034912

Ви дійсно хочете мати незалежні підключення до більш ніж тридцяти п’яти тисяч окремих мереж? Це не практично.
MikeyB

12

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

Навіть якщо у вас є лише одна точка присутності, ви можете абсолютно мати більше одного сервера за одним ім'ям і навіть IP, використовуючи такі інструменти, як балансири завантаження та всі.

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


1
Як Google розмістив мільйон серверів у всьому світі? Вони орендують сервери? Чи не було б їм важко підтримувати безпеку даних, керуючи всіма цими сторонніми серверами?
користувач1034912

2
Вони є власником кожного з них. Серйозно, вони купують - ну, роблять, в ці дні - їх. Це коштує стільки, як ви могли б уявити, в одних аспектах, але менше в інших.
Даніель Пітман

1
investor.google.com/financial/tables.html може допомогти; Q4, 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).

Окрім пірінгу та обміну в Інтернеті (приватний пірінг) (з AS15169), YouTube також працює транзитною мережею: AS43515, а інша мережа, на яку я припускаю, призначена для платного peering / overflow, AS36040. Google також управляє серверами Google Global Cache для того, щоб провайдери могли ще більше локально розміщуватись у своїй мережі. (Дані від peeringdb, bgp.he.net).

Виходячи зі свого досвіду, я вважаю, що YouTube використовує набагато більше, ніж просто геолокацію IP або Anycast, щоб обрати місце для розміщення відео.

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

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

Якщо вам цікаво сервер, я написав допис у блозі, в якому розбиваються деякі з нещодавно випущених зображень у центрі обробки даних.


Btw, ти працюєш для Google?
Печер'є

2

Якщо ви хочете дізнатися більше про широкомасштабні системи та технології, якими користуються ці компанії, найкращим джерелом зараз є http://highscalability.com

Найбільші компанії, такі як Google або Akamai, у них завжди є компоненти, які вони написали / створили самі. (наприклад, Akamai розробив веб-сервер для своїх послуг)


Деякі дані там застаріли ....
Pacerier
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.