Дисклеймер:
Данная статья не несет в себе сведений ранее неизвестных читателям, знакомым с понятием CDN, а носит характер обзора технологии
Первая веб-страница появилась в 1990 году и имела размер в считанные байты. С тех пор контент масштабируется как качественно, так и количественно. Развитие ИТ-экосистемы привело к тому, что современные веб-страницы измеряются мегабайтами и тенденция к увеличению пропускной способности сетей с каждым годом лишь укрепляется. Как контент-провайдерам охватить большие географические масштабы и обеспечить пользователям повсеместно высокую скорость доступа к информации? С этими задачами должны справляться сети доставки и дистрибуции контента, они же Content Delivery Network или просто CDN.
В интернете все больше «тяжелого» контента. При этом многочисленные исследования показывают, что пользователи не хотят иметь дело с веб-сервисами, если те грузятся дольше 4-5 секунд. Слишком низкая скорость загрузки сайта чревата потерей аудитории, что непременно приведет и к уменьшению трафика, конверсии, а значит и прибыли. Сети доставки контента (CDN), в теории, позволяют избавиться от этих проблем и их последствий. Но на деле все как обычно решают детали и нюансы конкретного случая, коих в этой сфере предостаточно.
Откуда взялась идея распределённых сетей
Начнем с краткого экскурса в историю и определения терминов. CDN – сеть из группы серверных машин, расположенных в разных местах для предоставления доступа к интернет-контенту с охватом большого количества пользователей. Идея распределенных сетей в наличии сразу нескольких точек присутствия (РоР), которые находятся за пределами исходного сервера. Такая система быстрее обработает массив поступающих запросов, увеличивая отклик и скорость передачи каких-либо данных.
Проблема с доставкой контента пользователям остро возникла на пике развития интернета, т.е. в середине 90-ых. Тогдашние серверы, производительность которых не дотягивала даже до современных флагманских лэптопов, с трудом выдерживали нагрузку и не могли справляться с постоянно растущим трафиком. Майкрософт ежегодно тратила сотни миллионов долларов на исследования, связанные с информационной магистралью (сразу вспоминаются знаменитые 640 КБ от Билла Гейтса). На пути решения этих вопросов приходилось использовать иерархическое кэширование, переходить с модемов на оптоволокно и разбирать подробно топологию сетей. Ситуация напоминала старый локомотив, который несется по рельсам и по ходу модернизируется всеми возможными средствами для увеличения скорости.
Уже в конце 90-ых владельцы веб-порталов поняли, что для снижения нагрузки и обеспечения требуемых запросов нужно использовать сервера посредники. Так появились первые CDN, раздающие статический контент с разных серверов, географически разбросанных по миру. Приблизительно в это же время появился и бизнес на распределенных сетях. Крупнейший (как минимум один из крупнейших) CDN провайдер в мире, компания Akamai, стала пионером в этой области, начав свой путь в 1998 году. Пару лет спустя CDN стал массовым, а доходы от доставки и контрибуции контента исчислялись десятками миллионов долларов ежемесячно.
Сегодня мы сталкиваемся с CDN каждый раз при переходе на коммерческую страницу с большим трафиком или общении в социальных сетях. Услугу предоставляют: Amazon, Cloudflare, Akamai, а также множество других транснациональных провайдеров. Причем крупные компании стремятся использовать собственные CDN, что приносит им ряд преимуществ в скорости и качестве доставки контента. Если бы Facebook не имел распределенных сетей, а довольствовался б только исходным сервером, располагаемым в США, загрузка профиля у пользователей восточной Европы могла бы занимать значительно большее времени.
Пару слов о CDN и стриминге
Агентство FutureSource Consulting провело анализ музыкальной индустрии и сделало вывод, что в 2023 году число подписок на музыкальные стриминговые сервисы достигнет почти полумиллиарда человек. Причем более 90% доходов сервисы будут получать именно от потоковых аудио. С видео ситуация похожая, в народном лексиконе уже закрепились такие термины, как: летсплей, онлайн концерт и онлайн кинотеатр. Свои стриминговые сервисы есть у Apple, Google, YouTube и многих других компаний.
В раннем представлении CDN использовался преимущественно для сайтов со статическим контентом. Статикой называют информацию, которая не изменяется в зависимости от действий пользователя, времени и других факторов, т.е. не является персонализированной. Но развитие потоковых видео и аудио сервисов добавило еще один распространенный сценарий для использования распределенных сетей. Сервера посредники, находясь вблизи целевой аудитории по всему миру, позволяют обеспечить стабильный доступ к контенту в периоды пиковых нагрузок, исключая недостаток «узких мест» интернета.
Как это работает
Суть всех CDN приблизительно одинакова: использовать посредников, чтобы иметь возможность быстрее доставлять контент к конечному потребителю. Работает это следующим образом: пользователь отсылает запрос на загрузку файла, его получает СDN сервер, который единоразово обращается к оригинальному серверу и отдает пользователю контент. Параллельно с этим СDN кэширует у себя файлы на заданный промежуток времени и уже все последующие запросы обрабатывает с собственного КЭШа. Опционально они также умеют предварительно подгружать файлы с исходного сервера, настраивать срок хранения КЭШа, сжимать тяжелые файлы и многое другое. В самой идеальной ситуации, хост передает весь поток узлу CDN, которая уже использует собственные ресурсы для доставки контента пользователям. Само собой, что эффективное кэширование информации, а также распределение запросов не на один сервер, а на сеть, приведет к более сбалансированной нагрузке трафика.
Второй важной особенностью работы CDN является уменьшение задержек на передачу данных (они же RTT – round trip time). Установка ТСР-соединения, загрузка медиаконтента, JS-файла, запуск TLS-сессии, все это зависит от пинга. Очевидно, что чем ближе вы находитесь к источнику, тем быстрее сможете получить от него отклик. Ведь даже у скорости света есть свой предел: около 200 тысяч км/с по оптоволокну. Это означает, что от Москвы до Вашингтона задержка составит около 75 мс в RTT, и это без влияния промежуточного оборудования.
Чтобы лучше понять какие задачи решают сети распространения контента, приведем список актуальных на сегодняшний день решений:
- Google, Yandex, MaxCDN (используют бесплатные CDN с целью раздачи JS-библиотек, имеют более 90 точек присутствия в большинстве стран мира);
- Cloudinary, Cloudimage, Google (сервисы и библиотеки клиентской оптимизации: картинки, видео, шрифты и т.д.);
- Jetpack, Incapsula, Swarmify и т.д. (оптимизация ресурсов в системах управления контентом: bitrix, wordpress и т.д.);
- CDNVideo, StackPath, NGENIX, Мегафон (CDN для раздачи статического контента, используются в качестве сетей общего назначения);
- Imperva, Cloudflare (решения для ускорения загрузки веб-сайтов).
Первые 3 типа CDN из приведенного списка рассчитаны на передачу только части трафика с основного сервера. Оставшиеся 2 используются как полноценные прокси серверы с полной передачей каналов от исходного хоста.
Кому и какие выгоды предоставляет технология
В теории, любой сайт, продающий свои товары/услуги корпоративным клиентам или физическим лицам (В2В или В2С) может иметь профит от внедрения CDN. Важно, чтобы его целевая аудитория, т.е. пользовательская база, находилась за пределами их географического местоположения. Но даже если это не так, сети распространения помогут с балансировкой нагрузки при больших объемах контента.
Не секрет, что для забивки серверного канала достаточно пары тысяч потоков. Поэтому раздача видеотрансляции на широкие массы неминуемо приведет к образованию узкого места – пропускной способности интернет-канала. Это же наблюдаем, когда на сайте множество мелких не склеенных картинок (превью товаров, например). Исходный сервер использует одно ТСР-подключение при обработке любого количество запросов, что поставит загрузку в очередь. Добавление CDN приводит к необходимости разнести запросы на несколько доменов и использовать несколько TCP-подключений, разгрузив канал. А формула круговой задержки, даже при самых печальных раскладах, дает величину 6-7 RRT и приобретает вид: TCP+TLS+DNS. Сюда справедливо также включить задержки, связанные с активацией радиоканала на устройстве и передачей сигнала на сотовых вышках.
Обобщив сильные стороны технологии для бизнеса в интернете, специалисты выделяют такие пункты:
- Быстрое масштабирование инфраструктуры + уменьшение пропускной способности. Больше серверов = больше точек, на которых хранится информация. В результате одна точка обрабатывает меньшее количество трафика в единицу времени, а значит может иметь меньшую пропускную способность. Дополнительно в ход вступают инструменты оптимизации, что позволяет справляться с пиковыми нагрузками без потери времени.
- Меньший пинг. Мы уже упоминали, что люди не любят долго ждать в интернете. А поэтому высокий пинг способствует высоким показателям отказов. Задержка может быть вызвана проблемами с обработкой данных на сервере, использованием старого оборудования или просто непродуманной топологией сети. Большинство из этих проблем частично решают сети распространения контента. Хотя здесь важно отметить, что реальная польза от внедрения технологии будет видна только в том случае, когда «потребительский пинг» превышает 80-90 мс, а это расстояние от Москвы до Нью-Йорка.
- Безопасность данных. DDos`ы (вирусные атаки типа «отказ в обслуживании») направлены на сбой в работе сервера с целью получения какой-либо выгоды. Один сервер намного больше подвержен уязвимостям информационной безопасности чем распределённая сеть (положить инфраструктуру такого гиганта как CloudFlare задача не из простых). Благодаря использованию фильтров и грамотному распределению запросов по сети можно без проблем предотвратить искусственно созданные сложности с доступом к легитимному трафику.
- Быстрое распространение контента и дополнительные сервисные функции. Распределение больших массивов информации на серверную сеть позволит быстрее донести предложение до конечного потребителя. За примерами, опять же, далеко ходить не нужно – достаточно вспомнить Амазон и АлиЭкспресс.
- Возможность «замаскировать» проблемы с основным сайтом. Не нужно ждать пока обновятся DNS, можно перебросить его на новую локацию с раздачей ранее закэшированного контента. Это в свою очередь может улучшить отказоустойчивость.
С преимуществами разобрались. А теперь рассмотрим каким нишам это выгодно.
Рекламный бизнес
Реклама – двигатель прогресса. А чтобы двигатель не перегорел, его нужно нагружать в меру. Вот и рекламный бизнес, пытаясь соответствовать современному цифровому миру сталкивается с проблемами «тяжелого контента». Под тяжелым понимается мультимедийная реклама (в основном анимированные баннеры и видеоролики), которая требует высоких пропускных способностей сети. Веб-сайт с мультимедиа грузится долго и может подвисать, проверяя на прочность нервы пользователей. Большинство отказываются от таких ресурсов еще до того, как они прогрузят всю имеющуюся информацию. Рекламные компании могут использовать преимущества CDN в решении этих проблем.
Продажи
Электронная коммерция нуждается в постоянном расширении географического покрытия. Еще одним важным моментом является борьба с конкурентами, коих в каждом сегменте рынка в избытке. Если веб-сайт не соответствует требованиям пользователя (в том числе долго грузится) он не будет популярен и не сможет приносить стабильно высокую конверсию. Внедрение CDN должно показать свое преимущество при обработке запросов данных из разных мест. Также распределение трафика поможет предотвратить его всплески и последующие за этим сбои в работе сервера.
Площадки с развлекательным контентом
Сюда подходят всевозможные развлекательные площадки, начиная от загрузки фильмов и игр, заканчивая потоковым видео. Несмотря на то, что технология работает со статикой, потоковые данные могут быстрее попадать к пользователю посредством ретрансляторов. Снова же, кэширование информации CDN является спасением для владельцев крупных порталов – хранилищ мультимедиа.
Онлайн игры
Интернет игры необходимо вынести в отдельный пункт. Если реклама нуждается в больших пропускных способностях, то онлайн-проекты еще более требовательны к ресурсам. Провайдеры сталкиваются с проблемой, имеющей две стороны: скорость доступа к серверам + обеспечение высокой игровой производительности с красивой графикой. CDN для онлайн игр – это возможность иметь так называемые «push-зоны», где разработчики могут хранить игры на серверах, расположенных рядом с пользователями. Это позволяет уменьшить влияние скорости доступа к исходному серверу, а значит и обеспечить повсеместно комфортный геймплей.
Почему CDN – не панацея
Не смотря на очевидные достоинства, не все и не всегда стремятся внедрять технологию в свой бизнес. Почему так? Как это не парадоксально, некоторые недостатки вытекают из преимуществ, плюс добавляется еще пару пунктов, связанных с развертыванием сети. Маркетологи красиво расскажут о всех достоинствах технологии, забыв упомянуть о том, что все они теряют смысл в широком диапазоне условий. Если более подробно рассматривать минусы CDN, то стоит выделить:
- Работа только со статикой. Да, большинство современных сайтов имеют низкий процент динамического контента. Но там, где страницы персонализированы, CDN ничем помочь не сможет (разве что разгрузит большой объем трафика);
- Задержка кэширования. Сама по себе оптимизация является одним из главным преимуществ распределительных сетей. Но при внесении изменений на исходном сервере проходит время, прежде чем CDN перекэширует ее на всех своих серверах;
- Массовые блокировки. Если по какой-либо причине банят IP адрес CDN, то закрываются все сайты, которые на нем размещены;
- В большинстве случаев браузер будет устанавливать два соединения (с исходным сервером и CDN). А это дополнительные миллисекунды ожидания;
- Привязка к IP адресу проектов (в том числе несуществующих), которые ранее были за ним закреплены. В результате получаем осложненную ранжировку от поисковых ботов Гугла и сложности с выводом сайта в топ при SEO продвижении;
- CDN узел – это потенциальная точка отказа. Если их использовать, важно заранее понимать, как устроена маршрутизация системы, и какие ошибки могут возникнуть в ходе работы с сайтом;
- Банально, но за услуги доставки контента необходимо платить. В основном затраты пропорциональны объему трафика, а значит может потребоваться контроль для планирования бюджета.
Немаловажный факт: даже близость CDN к пользователю не гарантирует низкий пинг. Построение маршрута может осуществляться от клиента к хосту, расположенному в другой стране или даже на другом континенте. Это зависит от политики маршрутизации конкретной сети и ее взаимоотношений с операторами связи (пиринга). Многие крупные поставщики CDN имеют несколько тарифов, где стоимость напрямую влияет на близость точки присутствия при передаче контента целевым пользователям.
Есть возможности – запускай собственную CDN
Не устраивает политика компаний, предоставляющих услуги сетей распространения контента, но бизнес нуждается в расширении? Если есть возможности, то почему бы не попробовать запуск собственного CDN. Это имеет смысл в следующих случаях:
- Текущие расходы на распространение контента не оправдывают своих ожиданий и не являются экономически обоснованными;
- Нужен постоянный кэш, без соседства с другими сайтами по серверу и каналу;
- Целевая аудитория находится в регионе, где нет точек присутствия доступных вам CDN;
- Необходимость персонализировать настройки при доставке контента;
- Требуется ускорить доставку динамического контента;
- Подозрения в нарушении конфиденциальности пользователей и других неправомерных действиях со стороны сторонних сервисов.
Запуск CDN потребует от вас доменного имени, несколько серверов в разных регионах (виртуальных или выделенных) и инструмента по обработке запросов. Не забываем об установке SLL сертификатов, настройке и редактированию программ по отдаче статического контента (Nginx или Apache), ну и эффективному мониторингу всей системы.
Правильное конфигурирование кэширующих прокси является материалом отдельной статьи, поэтому здесь не будем подробно расписывать: где и какой параметр правильно выставить. Учитывая стартовые расходы и время на развертывание сети, использование готовых решений может быть более перспективно. Но руководствоваться необходимо сложившейся конъюнктурой и планированием на несколько шагов вперед.
Что в итоге
CDN – это набор дополнительных мощностей для ретрансляции вашего трафика на широкие массы. Нужны ли они для бизнеса в интернете? И да, и нет, все зависит от того, на какую аудиторию рассчитан контент и какие цели преследует владелец бизнеса.
Региональные и узкоспециализированные проекты получат от внедрения CDN больше минусов, чем плюсов. Запросы все также будут приходить сперва на исходный сервер, но уже через посредника. Отсюда сомнительное уменьшение пинга, но вполне определенные ежемесячные затраты на пользование услугой. При наличии хорошего сетевого оборудования можно спокойно совершенствовать существующие алгоритмы информационной безопасности, размещать свои сервера ближе к пользователям и получать оптимизации и профит бесплатно на постоянной основе.
А вот кому реально стоит задуматься о серверах-посредниках, так это крупным компаниям, инфраструктура которых не справляется с постоянно растущим потоком трафика. CDN отлично показывает себя как технология, позволяющая быстро развернуть сеть на широкую географию пользователей, обеспечить комфортный облачный гейминг или продавать товары на большой коммерческой площадке.
Но даже при широкой географии аудитории важно заранее понимать для чего конкретно необходимы сети распространения контента. Ускорение сайта все так же остается комплексной задачей, которая магическим образом не решается внедрением CDN. Не стоит забывать о таких важных функциях, как: кроссплатформенность, адаптивность, оптимизации серверной части, кода, рендеринга и т.д. Предварительный технический аудит и адекватные меры по устранению проблем все также являются оптимальным решением для любого онлайн проекта вне зависимости от его направленности и масштабов.
На правах рекламы
Прямо сейчас вы можете заказать мощные серверы, которые используют новейшие процессоры AMD Epyc. Гибкие тарифы — от 1 ядра CPU до безумных 128 ядер CPU, 512 ГБ RAM, 4000 ГБ NVMe.