Облом прямої трансляції Apple


Пряма трансляція презентації iPhone 6 і Apple Watch з самого початку не задалася. У багатьох користувачів, включаючи мене, були проблеми з її переглядом. Спочатку я грішив на проблеми у хмарного сервісу Akamai, але дослідження сторінки сайту Apple показало, що найбільше проблем виникло з того, як вони налаштували Amazon S3 і деяких інших елементів сайту.

На відміну від попередньої прямій трансляції, в цей раз вони вирішили за допомогою JSON додати інтерактивності у сторінку, і відображати твіти, що відносяться до події, внизу сторінки. В результаті цього сторінка оновлювалася кілька разів в секунду. Через рішення використовувати JSON (прим. перекл. — мені здається, що автор плутає JSON і Ajax) сайт перестав кешуватись. Звичайно, Apple використовують кешування від Akamai для таких трансляцій, однак у цей раз кешувати сторінку не можна було, що призвело до сильного просіданню швидкостей завантаження сторінки і відображення відеопотоку. А так як у Apple вставили відео в сторінку, гальма сторінки призвели до гальм відео. У Akamai не захотіли коментувати цю проблему, але судячи по коду сторінки, у них все одно не вийшло б її кешувати. З-за цього також у міняв падав Safari, коли я намагався відкрити сторінку з презентацією на iPad.

З-за всіх цих оновлень сторінок плеєра довелося штучно занижувати якість відео, тому що на стороні сервера було занадто багато запитів. Крім того Apple помилилися і транслювали через Akamai відео з неправильною звуковою доріжкою, тому перші 27 хвилин відео йшло іноземною (для автора статті) мовою. Хтось з Apple неправильно зробив відео, до того ж у них ще спостерігалася розсинхронізація звуку і картинки. Крім того, мені здається я вловив момент, коли Apple довелося один раз перезавантажувати сервер, кодировавший відео, вже після того, як презентація почалася — з-за цього вилазили помилки типу «не можу завантажити відео» і «немає права доступу».

Вивчаючи метадані сторінки, можна встановити, що Apple хоститься на хмарному сервісі Amazon S3. Судячи з усього, Apple розмістили контент в одному бакете, практично без запасу для зростання навантажень, і неправильно його у вас є відповідні. Amazon не прокоментували це питання, але ясно, що Apple неправильно налаштували сховище S3, в результаті чого відчули проблеми з швидкодією, тому що всі запити йшли до однієї локації.

Akamai були єдиною CDN, яку використовували в Apple. Це показали traceroute з різних точок планети. І так як у них не було можливості кешувати сторінку трансляції, швидкодія її сильно впало. Якщо не можна кешувати сторінки на периферійному сервері хмарного сервісу, всі запити надсилаються до центрального серверу, з-за чого втрачається весь сенс розподіленої мережі. На наведеному графіку, отриманому від стороннього сервісу Cedexis, видно падіння доступності серверів Akamai у Західній Європі зі 100% до 96.5% під час трансляції.


За отриманими з різних джерел даних, в піку трансляція відеопрезентації займала канал в 6-8 Tbps. Для порівняння, трансляція чемпіонату світу займала в піку 6.8 Tbps. Так що ніяких екстраординарних навантажень CDN не відчувала.

Підсумок: кодування відео, трансляція, яваскрипт, відеоплеєр, єдиний сервер на S3 і постійні рефреши сторінки і призвели до численних проблем презентації. Можна було б звалити все на CDN, але як видно, не це було основною причиною — просто акція була погано спланована і проведена.

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.