С начала 90-х веб-сайты проделали длинный путь. Размер первых из них редко превышал 4 Кбайт. С тех пор эта цифра значительно увеличилась. По данным HTTP Archive, в 2012 году средний размер страницы для десктопа составлял 803 Кбайта, а спустя десять лет — уже 2284 Кбайта. Все это, несомненно, отразилось на скорости загрузки и доставки контента до аудитории.
Есть мнение, что современные интернет-ресурсы стали слишком неповоротливыми. На фоне этой концепции возникли проекты 512 или 250 Кбайт, участники которых уменьшают веб-ресурсы до соответствующих размеров. Отдельные энтузиасты выжимают из оптимизации все соки. Они разрабатывают сайты весом до 14 Кбайт, и такой размер выбран неслучайно.
Сайты, контент и технология Content Delivery Network
Разница в скорости загрузки таких страниц, по сравнению с ресурсами весом в 15 Кбайт, может превышать полсекунды. На первый взгляд это совсем немного, однако опросы показывают — 47% интернет-пользователей ожидают, что сайт загрузится в течение двух секунд. Само по себе ускорение связано с особенностями работы TCP-протокола и процедурой выбора числа пересылаемых пакетов.
Но подобные эксперименты лишь нишевое направление, которое не годится для мейнстрима. Очевидно, что большинство медиа и сайтов невозможно уместить в столь малый объем памяти. Поэтому существуют менее радикальные подходы к повышению скорости загрузки контента — например, технология Content Delivery Network (CDN).
Компании могут самостоятельно создавать распределенные сети доставки контента. Однако стоимость настройки и обслуживания инфраструктуры будет высокой. Чтобы ускорить доставку контента и снизить нагрузку на собственные серверы, бизнес выбирает Cloud CDN. Подключив услугу облачного провайдера, клиент платит только за трафик.
Сегодня обсудим, как устроен сервис Cloud CDN, что привело к его появлению, и как начать работу.
Что было до CDN
Одноточечная дистрибуция (слева) и раздача контента через CDN (справа)
CDN представляет собой географически-распределенную сетевую инфраструктуру. Она оптимизирует доставку контента до пользователей и параллельно сокращает задержки подключения. Но корни технологии уходят глубоко в начало 90-х. Тогда зародилась концепция
паутины, и интернет перестал быть инструментом для исследовательских институтов и госкомпаний. Он стал площадкой для обмена сообщениями, файлами, изображениями и видеозаписями, а бизнес увидел в нем коммерческие перспективы. В этот момент потребовалось решение для пересылки больших объемов данных между пользователями.
Одним из первых таких механизмов стали так называемые серверные фермы. В этом случае группы профильных серверов отвечали за распределенную обработку данных и запуск приложений. Разработчики также применяли иерархическое кэширование и кэширующие прокси, когда прокси-серверы сохраняли востребованный контент у себя, чтобы делиться им с большим количеством пользователей.
Двумя другими технологиями для ускорения обмена данными были зеркалирование и множественная адресация. В первом случае происходит дублирование пакетов с одного порта сетевого коммутатора на другой. Во втором — сервер передает одни и те же данные сразу нескольким клиентам, что снижает нагрузку на отправителя (по сравнению с индивидуальной пересылкой). Все эти технологии проложили дорогу первым CDN-сетям, по которым сегодня проходит порядка 15–30% всего интернет-трафика.
CDN простыми словами
На скорость загрузки контента, конечно же, влияет не только его вес, но и расстояние, на котором находится пользователь ресурса от сервера или ЦОДа. Отличия в скорости загрузки заметны не только, когда клиент и сервер находятся на разных континентах. Они могут располагаться в разных городах такой большой страны, как Россия. Если инфраструктура условного маркетплейса развернута в питерском дата-центре, то скорость загрузки страниц будет отличаться для клиентов из Москвы и Владивостока.
Технология CDN кэширует контент на группе рассредоточенных серверов. В результате уменьшается сетевой путь передачи данных. Дополнительно возрастает безопасность сетевой инфраструктуры. В случае DDoS или неожиданного роста легитимного трафика запросы обрабатывает распределенная инфраструктура. Такой подход защищает основные корпоративные серверы от перегрузки.
В то же время Content Delivery Network включает аналитические инструменты и системы автоматизации, детектирующие проблемы в политиках файрволов и атаки типа man-in-the-middle.
Кому нужна технология CDN
Сети доставки контента часто используют крупные социальные сети и ecommerce-платформы. Провайдеры финансовых сервисов применяют CDN для кэширования API, чтобы обрабатывать быстроменяющийся контент — например, стоимость акций.
Очевидно, что CDN идеально подходит для видеохостингов и стриминговых сервисов, клиенты которых ожидают качественное подключение и отсутствие буферизации.
С технологией работают не только крупные компании, но и начинающие стартапы (причем в самых разных сферах). Так, Content Delivery Network может оптимизировать доступ к хостинг-платформе для подкастов, каталогу товаров нишевого ретейлера.
CDN: что под капотом
Основу CDN составляют так называемые точки обмена. Когда пользователь впервые запрашивает интересующий его контент, тот подгружается с основного сервера. Но затем он кэшируется на промежуточном узле и сохраняется для других запросов. В то же время промежуточные узлы обмениваются данными друг с другом, кэшируя контент ближайших соседей.
Дополнительно CDN реализует механизмы, ускоряющие передачу данных. Например, уменьшает размеры файлов с помощью сжатия и минификации. Последний подход часто применяют в контексте программного кода — из него удаляют ненужные символы. Очевидно, что файлы меньшего размера означают более быструю загрузку.
Еще CDN применяет механизм TLS false start. Он позволяет сократить процедуру рукопожатия при установке соединения с сайтом и переиспользовать данные прошлых сессий.
Современные CDN-системы могут кэшировать как статический, так и динамический контент. Если содержимое страницы генерируется скриптами, то их запускают не на удаленном корпоративном сервере, а прямо в кэше CDN. Так, его не приходится загружать с исходного узла, что ускоряет работу динамических страниц.
Если говорить о потенциальном будущем Content Delivery Network, то есть мнение, что технология перестанет быть простым каналом для поставок контента. Их ждет трансформация в более интерактивные модели. Так, инфраструктура стриминговых сервисов вместо того, чтобы служить «глупым» транспортом для видеопотока, позволит зрителям взаимодействовать со стримом — публиковать комментарии, влиять на его содержание. Также интерес представляет работа с AR и VR составляющими, которые обеспечат более глубокое погружение для пользователей.
Как начать работать с CDN
В теории построить CDN можно самостоятельно. Для этих целей существуют специальные инструменты (в том числе бесплатные и открытые). Но в компании должны быть специалисты, которые будут заниматься настройкой и поддержанием такой инфраструктуры. Кроме того, создать масштабную и геораспределенную сеть в таком формате проблематично. Это под силу только крупным компаниям с большими финансовыми ресурсами.
Малому, среднему бизнесу и стартапам имеет смысл обратиться к CDN-провайдерам. Например, существуют специализированные сервисы для разработчиков сайтов, которые помогают оптимизировать загрузку программных библиотек. Хотя многие из них подходят только для решения каких-то конкретных задач и не годятся для работы с тяжелым контентом.
Здесь на помощь придут облачные провайдеры с услугой CDN. Такой сервис предлагаем мы в #CloudMTS. Здесь на помощь придут облачные провайдеры с услугой CDN. Такой сервис предлагаем мы в #CloudMTS. Гибкое управление сервисом доступно через Консоль управления (личный кабинет):
Актуальная статистика о потреблении трафика доступна в реальном времени:
Подробнее о возможностях рассказываем в Базе знаний.
В нашу сеть доставки контента входит более 800 кэширующих серверов на пяти континентах. Они обеспечивают резервирование, и при аварии трафик принимают другие узлы сети. Бизнесу не приходится тратить время и ресурсы на построение и поддержание собственной распределенной инфраструктуры.
Чтобы протестировать сервис, можно воспользоваться приветственным грантом на 5 000 руб. Зайдите в Консоль управления и нажмите «Получить грант». Применить его можно в течение двух месяцев после предоставления кода.