Облом прямой трансляции Apple

Original author: Dan Rayburn
  • Translation


Прямая трансляция презентации 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, но как видно, не это было основной причиной – просто акция была плохо спланирована и проведена.
Support the author
Share post

Similar posts

Comments 47

    0
    Еще заметил что в первые дни у меня при открытии сайта apple.com на айпаде все врем крешилось полностью сафари. Сейчас вроде уже нет. Но интересно — что у них такое было?
      0
      Они ведь ко всему прочему еще и сайт обновили как раз в день анонса.
      +71
      Зато в Apple открылись новые вакансии администраторов.
        0
        На Apple TV постоянно всё отваливалось, так что подконец она зависла :)
        Китайский перевод шел только на РФ (или МСК).
        Я подключался через свой сервер в Германии — тормозов и обвалов было меньше + косяков с китайским переводом не было.
          +3
          Китайский перевод был везде, даже в Mountain View :-) его просто потом пофиксили.
            –1
            Каким магическим образом я его не слышал? :)
            PS У меня параллельно было «запущено» 2 трансляции на apple tv (стандартное подключение) и ноутбуке (через VPN)
              0
              Я из Германии смотрел, первые минут 15-20 был китайский язык
                –2
                Может его раньше отключили в Германии, я как раз минут через 15 решил другой канал попробовать :)
            0
            Китайский перевод был как с канадским IP адресом, так и с латвийским, пока не исправили минут через 20-30 после начала трансляции
          • UFO just landed and posted this here
              +7
              Одного никогда не понимал в яблотрансляциях: почему просто не пользоваться сервисами типа twitch для трансляций, а использовать свои костыли, которые работают только на «своих» девайсах?
              А в 2014 еще и «полуработают».
                +3
                У Твича даже на небольших киберэвентах на десятки тысяч человек лагает безбожно. Для такого события как презентация Apple, Твич упал бы и не поднялся.
                  +2
                  Странно. Недавно смотрел TI4 — все было хорошо, кроме момента, когда отключился вообще весь инет на сцене. Там сотни тысяч просмотров было.
                    0
                    Больше полумиллиона человек на всех языках суммарно.
                    0
                    Там было больше года назад. Сейчас они хорошо поработали над производительностью.
                  • UFO just landed and posted this here
                      +1
                      Похоже тот, кто отвечает за эту трансляцию до сих пор застрял в 90х с QuickTime, RealMedia и Bink. Ну ничего, 2 последние проприетарщины похоронены под битами истории, та же участь ждет и QuickTime
                    +19
                    Бред какой-то. Какая связь между незакешированой HTMLкой (что тоже сомнительно) и раздачей видео ?!
                      +6
                      Такая же, как между AJAX и кешированием страницы. Никакой, то есть.
                        +4
                        Сказано же, что они встроили видео в страницу! Наверное, в base64, всю трансляцию, как шрифты и графику, ха-ха-ха :)
                        Простите, счётчик бреда при чтении зашкалило…
                          –1
                          Makes sense
                        +29
                        Трансляция получилась отвратительной, но в статье написана какая-то ерунда.
                          +4
                          Страница сайта никак не связана с видео, т.к. на хабре давали прямую ссылку на видеопоток, который открывался в VLC и тоже отваливался каждую минуту.
                            +19
                            Автору поста, я конечно понимаю что перевод. Но бред то зачем постить?
                              +31
                              Я больше не буду…
                                0
                                Ну и что, что не пятница. Зато посмеялись %)
                                –1
                                Не понимаю, зачем нужно было на одну страницу вешать и видео и текстовую трансляцию. Сделали бы две разных странички.
                                  +4
                                  1. Делать трансляцию на ютубе. У того же самсунга или гугла на ютубе трансляция стабильно работала всегда. Никаких затрат на сервак. видео сразу можно будет залить на ютуб.
                                  2. Использовать P2P при вещании. Кэшировать на клиентских машинах 10-60 секунд видео. Получаем небольшой рассинхрон, хотя в теории по P2P можно поддерживать неплохие трансляции. Каждый узел будет ретранслировать новым подключившимся, каждый будет получать данные с 10-100 узлов. В итоге эпл бы получил нагрузку от видео вероятнее всего на 100-200 человек которые получают основной поток. Остальные миллионы людей просто бы получали ретрансляцию от тех 100-200. Можно даже на серваке держать и десяток тысяч человек. тогда по идее все смотрящие получили бы сигнал не более чем через 5-10 узлов. При средней задержке даже в 100 мс. Получаем задержку в просмотре в 1 секунду, а этом случае кэшировать можно вообще где то 10 секунд. С сайта всегда будет идти поток наперед, а показываться будет на 10 секунд раньше. Передаваться по цепочке оно будет с учетом зардержки, т.е. каждый последующий на 100мс быстрее будет смотреть (в зависимости от пинга) для компенсации. Итого этих 10 секунд хватит на 100 цепочек. Учитывая прогрессию и текущие скорости интернета некоторых люедй на ПК трансляцию посмотрел бы скорее всего весь мир. т.к. при отдаче в 100 мбит можно отдавать десятку людей.
                                    0
                                    Использовать P2P при вещании

                                    А случаем не знаете ли какие-то готовые решения для этого? Чтобы не писать с нуля, а можно было в минимум телодвижений организовать такую раздачу видео.
                                      +1
                                      У стандартного адобовского Флэш-плеера такое есть. Мне кажется, почитав официальные доки это можно на коленке соорудить.
                                        +1
                                        Кажется, эппл закопал флеш уже достаточно давно… С чего бы вдруг им опять его использовать?
                                        0
                                        Посмотрите на torrent-tv.ru. У них свой плагин к браузеру на основе VLC и P2P. Я его использую чтобы футбол на компьютере смотреть. Но по идее можно любые трансляции вести. Из минусов — обилие рекламы на сайте и в самом видеоряде.
                                          0
                                          А SopCast не подойдет? Я не знаю, потому это скорее уточнение вопроса от меня.
                                          +1
                                          А как сделать p2p-вещание в браузерах без специальных плагинов и приложений?
                                          Думаю, большинство смотрит через браузер, так что p2p-оттянул бы лишь небольшую часть трафика, а проблему не решил.
                                            0
                                            www.youtube.com/watch?v=E8C8ouiXHHk вроде как WebRTC в описании даже есть пример с минискайпом через веб. Заходишь разрешаешь доступ к камере и микрофону, даешь ссылку другу и общаешься с ним. Вроде как все через p2p обменивается.
                                            www.html5rocks.com/en/tutorials/webrtc/basics/
                                          +6
                                          Представляю какой бы разнос устроил Джобс технарям за такую лажу.
                                            +3
                                            Думаю что разнос был и без Джобса. Именно лагающая трансляция испортила впечатление от презентации.
                                              +4
                                              Уволил бы всех и провел презентацию заново.
                                              +3
                                              Ещё можно поставить замечание Apple за то, что презентация в разрешении 1080p стала доступна для скачивания только через сутки после события. Помнится Google IO, транслировавшийся через Youtube был доступен сразу после окончания трансляции. Я предпочитаю в записи, чтобы смотреть чисто техническую информацию и пропускать маркетинговую чушь и овации по 5 минут. Рекомендую подписаться на RSS «Apple Keynotes (1080p)».
                                                0
                                                До сих пор не работает видео по ссылке www.apple.com/iphone-6/films/#video-product — у всех так?
                                                0
                                                Хехе, шутки шутками, а Apple действительно ищет «Senior Engineer: Emerging Technology» https://jobs.github.com/positions/6d221d46-392a-11e4-99c7-1498ca7dfb9c
                                                  0
                                                  Это им кара за то, что когда я откликался на их околоадминские вакансии они мне даже письмо не написали :-p
                                                  +2
                                                  Ну на самом деле у меня ни одна презентация Эпла нормально не отображалась никогда. Всегда есть подвисания видео и приходится в ручную рефрешить страницу, зависания были и на ЭплТВ, но в этот раз, да — было хуже чем обычно.
                                                    +1
                                                    Таки не надо было кокетничать и использовать каналы YouTube!
                                                    А то рассыпающийся на квадраты бред с китайской дорожкой очень грустно наблюдать было…

                                                    Only users with full accounts can post comments. Log in, please.