74  /  97

CDN

Просмотров: 26162
Дата последнего изменения: 17.01.2024
Сложность урока:
3 уровень - средняя сложность. Необходимо внимание и немного подумать.
1
2
3
4
5

  CDN

Сеть доставки (и дистрибуции) контента - (англ. Content Delivery Network или Content Distribution Network, CDN) - географически распределённая сетевая инфраструктура, позволяющая оптимизировать доставку и дистрибуцию контента конечным пользователям в сети Интернет. Использование контент-провайдерами CDN способствует увеличению скорости загрузки интернет-пользователями аудио-, видео-, программного, игрового и других видов цифрового контента.

Считается, что не так уж много в Рунете проектов, которым требуется CDN: новостные агентства, сайты с видео контентом и подобные им проекты с большими файлами. Считается, что сайты поменьше (которых подавляющее большинство: интернет-магазины, блоги, корпоративные сайты и т.д.) вполне могут обойтись и без этого сервиса, так как это дорого и сложно.

Например, в компании CDNvideo тарифы начинаются от 3000 руб. в месяц с трафиком от 1 Тб. Для большинства проектов такая дополнительная нагрузка - чрезмерна.

Само подключение, вроде бы, не должно вызвать сложностей (настроить DNS, заменить локальные ссылки на новые). Но надо не забыть заменить все ссылки (они могут генерироваться динамически приложением, быть жестко прописаны на страницах, могут указываться в файлах стилей (css) и скриптов (js)). Надо сохранить удобство разработки и отладки, работая на девелоперских серверах с локальными копиями. Надо обновлять кэш CDN при обновлении файлов. В общем, технически все не слишком однозначно.

Нужен ли CDN обычному сайту?

На обычном сайте нет "тяжелого" контента, который достоин CDN. Даже самые прогрессивные интернет-магазины, размещающие на сайте, например, видео-отзывы от клиентов, скорее всего просто ставят ссылки на YouTube, а не хранят все у себя.

Тем не менее, «подвинуть» поближе к посетителю можно весьма многое: все картинки, файлы стилей (css), javascript (js) и т.п. — по сути, практически весь статический контент можно вынести в CDN. А это, в среднем, до 80% объема трафика.

Помимо ускорения собственно сетью CDN за счет раздачи контента с ближайших к посетителям серверов, сайт, включивший CDN, получает дополнительное ускорение на клиентской стороне (во время рендеринга страницы браузером) за счет распределения запросов по разным доменам.

Все современные браузеры имеют лимит на количество одновременных соединений к одному домену (обычно - не более 6). Таким образом, даже если сервер может отдавать страницы с максимальной скоростью, а скорость клиентского подключения достаточно высока, то все равно загрузка всех элементов страницы (картинок, скриптов, файлов стилей) будет осуществляться максимум в 6 потоков.

При подключении CDN локальные ссылки заменяются на разные домены, и уже лишь каждый отдельный домен имеет ограничение на число соединений. Их же реальное максимальное число становится в несколько раз больше (по числу доменов, с которых осуществляется загрузка файлов).

Какая практическая польза от выигранных секунд? Например, для интернет-магазина?

  1. На быстром сайте выше конверсия и больше просмотров страниц. Чем дольше загружается страница сайта, тем больше вероятность того, что самые нетерпеливые посетители не дождутся ее загрузки, уйдут с сайта и больше на него не вернутся.

    Есть разные исследования, в которых предпринимаются попытки посчитать таких потенциальных клиентов, которых «недополучает» сайт. Например, инфографика от 5coins говорит о том, что 25% посетителей сайта покидают страницу, загрузка которой занимает более 4 секунд:

    Специалисты компании GoMez, проанализировав 150 миллионов хитов на 150 сайтах, получили такие цифры: замедление загрузки страницы на 1 секунду снижает конверсию на 7%, а количество просмотров - на 11%.

    Все эти исследования, конечно, не бесспорны, вызывают вопросы и методики исследования, и полученные цифры. Но главный вывод - "быстрее сайт - больше просмотров" - кажется абсолютно справедливым.
  2. В поисковых системах позиции быстрого сайта выше. Поисковые алгоритмы и формулы ранжирования результатов каждая поисковая система держит в секрете. Однако абсолютно очевидно то, что поисковые роботы, индексирующие сайты в интернете, не дождавшись загрузки страницы, не будут учитывать ее в общем поисковом индексе. Кроме того, все большее значение на результаты поиска оказывают поведенческие факторы. А это значит, что посетитель, ушедший с «медленной» страницы, автоматически понизит ее вес для поисковой системы. Ну и наконец, представители практически всех популярных поисковых систем так или иначе говорят о том, что напрямую учитывают скорость загрузки страниц в формулах ранжирования.
  3. Медленный сайт приносит прямые финансовые потери во время рекламных кампаний. Вы хотите активно продвигать свой проект. Заказываете для него контекстную, баннерную рекламу. Каждый клик стоит вполне определенных денег. Если посетитель вашего сайта пришел к вам по рекламному объявлению, но не дождался загрузки страницы, то за его клик вы просто заплатили впустую.
  4. Подключение CDN снижает нагрузку на основные серверы сайта. Так как весь статический контент загружается посетителями вашего сайта не напрямую с ваших серверов, а с узлов CDN, которые умеют очень эффективно кэшировать контент, снижается количество обращений непосредственно к вашим серверам. В среднем для статического контента соотношение числа запросов к самому сайту от серверов CDN к числу запросов от живых посетителей сайта составляет 1:50.

CDN в продуктах Bitrix Framework

Внимание! С версии 22.100.0 модуля Облачные сервисы (bitrixcloud) отключён функционал "Ускорение сайта CDN".

Интеграция платформы с CDN для пользователя выглядит максимально просто: сначала нужно через стандартную систему обновлений установить новый модуль «Облачные сервисы Битрикс», а затем в административной панели сайта в разделе Настройки > Облачные сервисы Битрикс > Ускорение сайта (CDN) включить и настроить модуль.

После этого ссылки на статические файлы сайта (картинки, файлы стилей css, скрипты js) будут заменены: вместо локальных URL'ов будут использоваться служебные имена серверов сети CDN. При этом не потребуется вносить никакие изменения в DNS и не нужно заботиться о сбросе кэша CDN при обновлении файлов.

Непосредственно для раздачи контента в дальнейшем используется сеть российского провайдера CDN - CDNvideo, в партнерстве с которым реализована эта услуга.

Модуль Ускорение сайта (CDN) является бесплатной дополнительной опцией для любой активной коммерческой лицензии на «1С-Битрикс: Управление сайтом». Никаких дополнительных платежей помимо стоимости самой лицензии или ее продления.

Для каждой отдельной лицензии определены ежемесячные лимиты трафика, который может быть передан через узлы CDN конечным пользователям.

Источник контента - origin - должен быть один. 1С-Битрикс организовала кусочек собственной облачной инфраструктуры (отказоустойчивой и масштабируемой):

Это "облачко" является таким ориджином для сети CDN, проксируя через себя трафик подключенных клиентов и решая несколько важных задач:

  • Определяется, может ли тот или иной сайт использовать CDN (проверяем активность лицензии, квоты на трафик и т.п.)
  • Определяется соответствие запросов тому или иному домену.
  • Распределяются запросы к картинками, css, js по разным доменам.
  • Происходит управление запросами: если происходит отключение (при неактивной лицензии или превышению трафика), то меняются ссылки на редиректы и ожидается, пока отключится замена ссылок на самом сайте. То есть, ни при каком варианте сайт не «ломается».
  • Происходит управление HTTP заголовками для обеспечения максимально эффективного кэширования.

Модуль Ускорение сайта (CDN), работающий непосредственно на клиентском сайте:

  • Управляет заменой ссылок в контенте.
  • К каждой ссылке добавляет модификатор в QUERY STRING вида "/image.gif?1339164408" с датой модификации файла. Если файл изменяется, меняется модификатор, и для кэша CDN по сути появляется новый объект. Таким образом решается проблема инвалидации (сброса) кэша при изменении файлов с теми же именами.

5
Курсы разработаны в компании «1С-Битрикс»

Если вы нашли неточность в тексте, непонятное объяснение, пожалуйста, сообщите нам об этом в комментариях.
Развернуть комментарии