- PVSM.RU - https://www.pvsm.ru -

Прямая трансляция презентации iPhone 6 и Apple Watch с самого начала не задалась. У многих пользователей, включая меня, были проблемы с её просмотром. Вначале я грешил на проблемы у облачного сервиса Akamai [1], но исследование страницы сайта Apple показало, что больше всего проблем возникло из-за того, как они настроили Amazon S3 и кое-каких других элементов сайта.
В отличие от предыдущей прямой трансляции, в этот раз они решили при помощи JSON добавить интерактивности в страничку, и показывать твиты, относящиеся к событию, внизу страницы. В результате этого страница обновлялась несколько раз в секунду. Из-за решения использовать JSON (прим. перев. – мне кажется, что автор путает JSON и Ajax) сайт перестал кешироваться. Обычно, Apple используют кеширование от Akamai для таких трансляций, однако в этот раз кэшировать страницу было нельзя, что привело к сильному проседанию скоростей загрузки страницы и отображения видеопотока. А так как в Apple вставили видео в страницу, тормоза страницы привели к тормозам видео. В Akamai не захотели комментировать эту проблему, но судя по коду страницы, у них всё равно не получилось бы её кэшировать. Из-за этого также у менял падал Safari, когда я пытался открыть страницу с презентацией на iPad.
Из-за всех этих обновлений страниц плееру пришлось искусственно занижать качество видео, потому что на стороне сервера было слишком много запросов. Кроме того Apple ошиблись и транслировали через Akamai видео с неправильной звуковой дорожкой, поэтому первые 27 минут видео шло на иностранном (для автора статьи) языке. Кто-то из Apple неправильно сделал видео, к тому же у них ещё наблюдалась рассинхронизация звука и картинки. Кроме того, мне кажется я уловил момент, когда Apple пришлось один раз перезагружать сервер, кодировавший видео, уже после того, как презентация началась – из-за этого вылезали ошибки типа «не могу загрузить видео» и «нет права доступа».
Изучая метаданные страницы, можно установить, что Apple на облачном сервисе Amazon S3. Судя по всему, Apple разместили контент в одном бакете [3], практически без запаса для роста нагрузок, и неправильно его сконфигурировали. Amazon не прокомментировали этот вопрос, но ясно, что Apple неправильно настроили хранилище S3, в результате чего испытали проблемы с быстродействием, т.к. все запросы шли к одной локации.
Akamai были единственной CDN [4], которую использовали в Apple. Это показали traceroute с разных точек планеты. И так как у них не было возможности кэшировать страницу трансляции, быстродействие её сильно упало. Если нельзя кешировать страницу на периферийном сервере облачного сервиса, все запросы отправляются к центральному серверу, из-за чего теряется весь смысл распределённой сети. На приведённом графике, полученном от стороннего сервиса Cedexis, видно падение доступности серверов Akamai в Западной Европе со 100% до 96.5% во время трансляции.

По полученным из разных источников данных, в пике трансляция видеопрезентации занимала канал в 6-8 Tbps. Для сравнения, трансляция чемпионата мира занимала в пике 6.8 Tbps. Так что никаких экстраординарных нагрузок CDN не испытывала.
Итог: кодирование видео, трансляция, яваскрипт, видеоплеер, единственный сервер на S3 и постоянные рефреши страницы и привели к многочисленным проблемам презентации. Можно было бы свалить всё на CDN, но как видно, не это было основной причиной – просто акция была плохо спланирована и проведена.
Автор: SLY_G
Источник [5]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/apple/69687
Ссылки в тексте:
[1] Akamai: http://www.akamai.com
[2] хостится: https://www.reg.ru/?rlink=reflink-717
[3] бакете: http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html
[4] CDN: https://ru.wikipedia.org/wiki/Content_Delivery_Network
[5] Источник: http://habrahabr.ru/post/236905/
Нажмите здесь для печати.