Услуги cdn что это

Что такое CDN и нужен ли он вашему сайту

Скорость загрузки контента — показатель, который влияет на лояльность пользователей и позицию сайта в поисковых системах. Согласно информации Google, медленная скорость загрузки увеличивает число отказов (уходов пользователей). Так, если страница загружается 6 секунд, оно достигает 106%.

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

Что такое CDN и как это работает

Как устроена передача данных на обычном хостинге:

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

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

Рассмотрим, в решении каких задач помогает CDN-хостинг.

1. Увеличивает скорость загрузки сайта

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

Но если посетитель живёт на Дальнем Востоке: в Хабаровске (7 202 км от Польши), на Камчатке (7 459 км от Польши) или на Сахалине (7 521 км от Польши), он будет долго ждать загрузки контента.

Чтобы скорость загрузки не зависела от географии пользователей, выбирают CDN-хостинг. В этом случае запросы пользователей, удалённых от основного сервера, будут автоматически переадресованы к ближайшему CDN-серверу (например, в Магадане), и проблем со скоростью не возникнет.

2. Разгружает основной сервер

Сейчас сайты состоят из статического и динамического контента. К статическому относится содержимое страницы, которое не меняется: тексты, картинки, видео- и аудиофайлы, скрипты. Это «тяжёлый» контент, который должен быстро загружаться у пользователей. К динамическому относятся файлы, которые отображаются по-разному у разных пользователей. Например, местоположение, пол, блок рекомендаций, история просмотра.

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

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

3. Повышает безопасность

Если вы храните данные только на одном сервере, это делает ваш сайт менее устойчивым к кибератакам, например, к DDoS (Distributed Denial of Service). В этом случае злоумышленники будут бомбардировать сервер массой запросов/обращений, чтобы вызвать перебои в его работе. Когда сервер «ляжет», сайт будет недоступен.

При использовании CDN-хостинга запросы к вашему сайту будут обрабатывать сразу несколько серверов в зависимости от месторасположения «клиентов». Это значит, что нагрузка распределится равномерно, и сайт продолжит работу, несмотря на попытки снизить производительность ресурса.

Каким сайтам нужен CDN

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

Если проблемы со скоростью загрузки сайта всё-таки есть, попробуйте решить их с помощью программистов:

Грамотно настроив код и сервер, вы сократите время загрузки сайта. Это решение не требует регулярных затрат, в отличие от CDN-хостинга.

Если вы уверены, что проблема со скоростью загрузки вызвана большим спросом, а не проблемами с кодом сайта, обратитесь к CDN-провайдерам.

Кому не обойтись без CDN:

Как используют CDN

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

Магазин техники «М.Видео» также использует CDN-хостинг. В отличие от Ozon, его файлы содержатся на нескольких серверах, поэтому один и тот же контент доступен по разным адресам. Например:

Популярные CDN-провайдеры

На CDN-хостинге специализируются многие компании. Мы расскажем о четырёх наиболее популярных.

CDNvideo — провайдер услуг в России и СНГ. Узлы сети (CDN-серверы) установлены в 20 городах РФ, на Украине, в Казахстане, Молдавии, Германии, Нидерландах, США и других странах. Согласно исследованию iKS-Consulting «Облачный провайдинг 2018–2022: экономика, стратегия, бизнес-модели» от 2019 года, компания заняла первое место на рынке CDN-провайдеров с долей 38,6%.

Cloudflare CDN — сеть, которая охватывает 200 городов в 100 странах. Другой важный момент: серверы обрабатывают не только статический, но и динамический контент. Ещё и базовые функции предоставляются бесплатно.

selectel.ru — российский CDN-провайдер. Вы платите за количество ТБ: чем больше трафик на серверы, тем меньше стоимость одного Гб. Компания предоставляет свои серверы и CDN зарубежного партнёра, Akamai. Вторые стоят дороже, отличаются высокой пропускной способностью и большим количеством точек присутствия.

Amazon Cloudfront — 216 точек присутствия. Подходит для кеширования статических и динамических файлов, прямой трансляции видео. Сервис бесплатный первый год и за счёт медийности компании сотрудничает с известными брендами (Canon, Slack и др.).

Клиенты RU-CENTER, которые приобрели или собираются купить лицензию 1C-Битрикс, могут подключить CDN-модуль автоматически и пользоваться им бесплатно. Подробности вы можете узнать из описания 1С-Битрикс.

Подытожим

Если ваш сайт рассчитан на широкую аудиторию и/или содержит большое количество контента (много товаров, видео, аудио и т. п.), то пользователи могут ждать загрузки дольше обычного. Чтобы сократить скорость загрузки, попробуйте исправить ошибки в коде и настройках сервера. Если это не решило проблему, воспользуйтесь CDN-хостингом.

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

Источник

Что такое CDN и как это работает?

Услуги cdn что это

Цифры и факты (вместо введения)

О том, что в Интернете с каждым годом становится все больше «тяжелого» контента.
А также о том, что в современном мире огромную роль играет скорость работы веб-сайтов и сервисов. Если скорость слишком мала ― это чревато потерей аудитории, а во многих случаях ― ещё и прибыли. Один из надёжных способов решения этой проблемы ― использование сетей доставки контента (Content Delivery Networks, CDN).

Selectel предлагает услугу CDN с 2014 года, и мы подробно изучили техническую сторону вопроса. В этой статье поговорим об устройстве и особенностях работы современных CDN.

Основные термины

Прежде чем начать предметный разговор об особенностях CDN, определимся с основной терминологией.

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

Ориджин (origin) — сервер, на котором хранятся исходные файлы или данные, раздаваемые через CDN.

PoP (point of presence, точка присутствия) — кэширующий сервер в составе CDN, расположенный в определенной географической локации. Для обозначения таких серверов также используется термин edge.

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

Статический контент ― контент, хранимый на сервере в неизменяемом виде (например, бинарные файлы, аудио- и видеофайлы, JS и CSS).

Немного истории и теории

Резкий рост Интернета в середине 1990-х привел к ситуации, что серверы стали с трудом выдерживать нагрузку. С серверами того времени (которые по техническим характеристикам иногда были слабее не самого производительного современного ноутбука) приходилось идти на разные ухищрения: погуглите, например, «‎иерархическое кэширование» и information superhighway ― сейчас эти словосочетания используются разве что в статьях по истории интернет-технологий. Чтобы понять, как развивались технологии раздачи контента, сделаем небольшое теоретическое отступление.

Обратим внимание: раздача статического и динамического контента связаны с разными типами нагрузки на сервер. В случае с динамическим контентом, генерация которого связана с обращениями к базе данных, важны быстродействие процессора и объём оперативной памяти.

Для раздачи статического контента, который в большинстве случаев оказывается очень «‎тяжелым»‎ и который нужно загрузить очень быстро, важна в первую очередь скорость сети. Смысл технических решений для ускорения раздачи статики заключается в следующем: обеспечить горизонтальное масштабирование без сложных двусторонних синхронизаций с основным сервером.

Для снижения нагрузки владельцы веб-сервисов ещё в конце 1990-х годов начали раздавать статику и динамику с разных серверов. Крупные веб-проекты с огромной аудиторией, разбросанной по всему миру, начали размещать серверы со статикой в разных географических точках.

Тогда же, в конце 1990-х, стали появляться компании, у которых организация раздачи статики стала одним из основных направлений бизнеса. В 1998 году студент Массачусетского технологического института Дэниэл Левин и преподаватель математики Томсон Лейтон основали компанию Akamai. Ныне она является одним из крупнейших (если не самым крупным) CDN-провайдером в мире.

Уже в 2004 году CDN использовали более 3000 компаний; общий объем расходов на доставку контента составлял до 20 миллионов долларов в месяц.

Количество CDN во всём мире постоянно растет: соответствующие услуги предоставляют как крупные международные компании (например, Akamai, Amazon, Cloudflare), так и многочисленные региональные провайдеры (подробные обзоры).

CDN используется не только для раздачи статики в строгом смысле слова: распределение контента по многочисленным серверам в разных точках планеты помогает обеспечивать доступность в периоды пиковых нагрузок.

В течение последних 10-12 лет широкое распространение в Интернете получил еще один тип контента ― стриминговый (многочисленные сервисы потокового аудио и видео, которые в наши дни имеют огромную популярность и миллионную, если не миллиардную, аудиторию). Раздача сегодня является еще одним распространенным сценарием использования CDN.

Рассмотрим принципы работы и особенности использования CDN более подробно.

Услуги cdn что это

Как работает CDN

Представим себе веб-сервис, которым пользуются люди на всей территории России. Основные серверы расположены в Санкт-Петербурге, а пользователи находятся в самых разных географических точках: скажем, в Краснодаре (2 604,2 км от Петербурга), Новосибирске (3 826,1 км), Иркутске (5 661, 7 км) или Владивостоке (9 602, 4 км). Чем дальше пользователь находится от оригинального сервера, тем больше время «‎оригинального»‎ ответа. На заре Рунета, в самом начале 2000-х, жители Южно-Сахалинска или Петропавловска-Камчатского могли дожидаться полной загрузки простой веб-страницы полновесные 5, а то и все 10, минут.

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

Услуги cdn что это

Для ускорения раздачи динамики при использовании CDN используются другие механизмы: CDN-провайдер за счет своей сети сокращает сетевой маршрут.

Ещё один интересный сценарий использования CDN ― так называемый live-streaming: пользователи Интернета со всего мира могут в браузере (а иногда и в специальном приложении) смотреть или слушать трансляцию с мест событий. Устроено это так: один или несколько ориджин-серверов принимают c видеокамеры транслируемый поток, который сразу же ретранслируется на точки присутствия. Ориджин-серверы при этом контент клиентам не раздают. В состав стриминговых CDN входят также балансировщики нагрузки, перенаправляющие запросы к наименее загруженным на текущий момент edge-серверам.

Как организована раздача контента?

Как правило, для настройки раздачи статического контента через CDN необходимо выполнить следующие шаги:

Шаг 1: Вынести статику сайта на отдельный домен, например, static.example.com — это будет origin.

Шаг 2: Для работы через CDN создать домен вида cdn.example.com.

Шаг 3: Подключить CDN у провайдера. Для подключения владельцу веб-сервиса необходимо сообщить провайдеру следующее:
домен, с которого он будет забирать статику — static.example.com;
домен, с которого будет идти раздача — cdn.example.com.

Шаг 4: У своего DNS-регистратора настроить CNAME запись с cdn.example.com на домен CDN-провайдера, который CDN провайдер выделяет при подключении.
Например, в CDN Selectel такой домен имеет вид 85e77c09-bc03-43bf-b8f3-9492ae33390f.selcdn.net, где 85e72c09-bc03-43bf-b8f3-9492ae33390f генерируется автоматически.

Шаг 5: На своем сайте изменить домен для статики, которую планируется раздавать через CDN, на cdn.example.com.

Пользователь набирает в строке браузера адрес www.example.com, с которого он получает HTML-страницу. При этом весь статический контент, например, графические изображения, подгружается из CDN (с адреса cdn.example.com).

Статический контент, предназначенный для раздачи, часто помещается в объектные хранилища (об этом мы писали еще шесть лет назад). Существует множество плагинов и расширений для популярных CMS (WordPress, Joomla, Drupal, 1C Битрикс и других), с помощью которых можно настроить интеграцию с облачными сервисами хранения и раздачу статики через CDN.

Веб-сервис после подключения CDN будет работать на том же оригинальном сервере. Кэшированные части сайта будут загружены на серверы CDN-сети. Система находит для пользователя ближайший сервер и максимально быстро загружает статику сайта с него.

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

Как CDN понимает, где находится ближайший кэширующий сервер?

Как правило, для подгрузки контента из CDN используются две популярные технологии: GeoDNS и AnyCast.

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

При использовании технологии Anycast адреса общие, но маршрутизация происходит на «‎свои» серверы в пределах региона. При обращении к адресу www.example.com пользователь переадресуется на ближайшую точку присутствия. Провайдер пользователя получает несколько анонсов от разных сетей, в которых есть точка присутствия, и маршрутизатор провайдера выбирает из них самый близкий. Ответ аналогичным образом возвращается по наиболее короткому маршруту.

Как кэшируется контент?

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

Здесь очень важна география: например, после обращения пользователя из Рио-де-Жанейро данные будут закэшированы на сервере, находящемся на территории Бразилии, что не решит проблемы со скоростью доступа для пользователей из Парижа или Лондона.

Для преодоления ограничений, накладываемых этой схемой, используются технологии регионального извлечения: соседние серверы, входящие в состав CDN, забирают контент друг у друга, а не обращаются к оригинальному серверу.

В большинстве CDN пользователь, отправивший запрос на получение статического контента, переадресуется к ближайшей точке присутствия и получает кэшированную версию этого контента с неё. Если ближайшая точка присутствия не сможет найти файлы, начнётся поиск по соседним точкам присутствия, откуда и будет перенаправлен ответ пользователю. В CDN Akamai эта процедура называется tiered distribution (на русский можно перевести как «многоуровневая раздача»).

Для чего используются CDN?

Чаще всего CDN используется для уменьшения времени отклика кэшированного контента, что, как мы уже упоминали выше, уменьшает отток посетителей из-за медленной загрузки ресурса и тем самым сокращает возможные финансовые потери. Также CDN помогает снизить риск потери доступа к контенту из-за падения основного сервера. Контент будет доступен всё время, пока вы восстанавливаете работоспособность основного сервера.

Использование CDN существенно снижает нагрузку на основной сервер, что помогает решить проблему пиковых нагрузок. Современная CDN способна переживать очень большие нагрузки. В конце 2018 года компания Akamai заявила о рекордном объеме передаваемого через CDN трафика: 72 Тб/c.

В наше время CDN активно используются также для раздачи стримингового контента.

О чем важно помнить при работе с CDN?

Как и любая технология, CDN обладает рядом особенностей.

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

Чтобы обеспечить доставку «свежего» контента в современных CDN имеется функция очистки кэша, то есть удаление контента из пула кэширования. Кроме того, владельцы сайтов и сервисов могут сами управлять настройками, используя заголовки-валидаторы (см. наши рекомендации на эту тему в опубликованной ранее статье).

Еще одна сложность связана с блокировками: если по той или иной причине будут заблокированы сервисы, являющиеся вашими «соседями» по IP CDN-провайдера, вместе с вами может оказаться заблокированным и ваш сайт. Но и это проблема решаема: по запросу CDN-провайдеры могут изменить ваш IP-адрес.

Кому нужны CDN?

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

CDN может пригодиться также разработчикам мобильных приложений: по статистике, пользователи часто отказываются продолжать работу с приложением из-за проблем со скоростью. В последнее время появились специальные технические решения, ориентированные на раздачу контента на мобильные устройства. Они так и называются ― Mobile CDNs. Соответствующие услуги предлагают многие крупные CDN-провайдеры ― например, Akamai или Amazon.

Нужны CDN и проектам, ориентированным на распространение игрового, мультимедийного контента и стриминг (об этом уже было сказано выше).

На что обратить внимание при выборе CDN-провайдера (вместо заключения)

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

На что нужно обратить внимание при выборе CDN-провайдера?

Во-первых, на количество точек присутствия. Это особенно актуально для проектов с обширной международной аудиторией. Нелишним будет узнать информацию о точках присутствия в наиболее интересных для вас регионах и сопоставить их с потенциальной аудиторией сайта.

Во-вторых, это наличие стыков с операторами связи. Это тоже немаловажный фактор, от которого зависит скорость и эффективность работы CDN. Например, у CDN-провайдера с точками присутствия в 100 городах, но небольшим количеством стыков задержка может быть больше, чем у провайдера, у которого точки присутствия расположены в 5 городах, но стыков с операторами связи гораздо больше.

К сожалению, такую информацию в большинстве случаев CDN-провайдеры не публикуют, поэтому проверить всё можно только тестированием.

В-третьих, на наличие дополнительных услуг и функций. Многие CDN-провайдеры предоставляют такие услуги, как анализ статистики потребления, управление политиками кэширования, управление HTTP-заголовками, предзагрузка очень «тяжёлого» (от 200 МБ и более контента), полная и выборочная очистка кэша.

Кроме того, при выборе CDN-провайдера нужно проверить, поддерживает ли он необходимые вам технологии и протоколы (HTTP/2, IPv6, сертификаты SSL и другие).

Источник

Знакомство с Content Delivery Network

Содержимое: что такое CDN? История возникновения. Зачем она нужна? Кому она нужна, а кому нет? Порог вхождения, стоимость, издержки. Основные технологии.

CDN — сокращение от content delivery network, то есть “сеть доставки контента”. Чаще всего это множество серверов с специализированным ПО, которые ускоряют доставку (“отдачу”) контента конечному пользователю. Сервера расположены по всему миру таким образом, чтобы время ответа посетителям сайта было минимальным. Под “контентом” чаще всего подразумевают видео и статические элементы веб-сайтов (не требующие выполнения кода на сервере или запросов в базу данных, такие как css/js), но к “контенту” относятся и совсем неожиданные вещи — например, игры в Стиме (использует CDN для отдачи игр), обновления для операционных систем и т.д.

Услуги cdn что это

Немного истории

Резкий рост Интернета в середине 90-х привёл к ситуации, что сервера тех лет не могли в одиночку выдержать нагрузку (много ли может отдать могучий двухпроцессорный сервер на базе Pentium Pro на частоте в 266 МГц с 128 мегабайтами памяти?). Лимит производительности серверов и потребность во всё большей и большей производительности породила ныне забытые слова: “ферма серверов”, “иерархическое кеширование”… Айтишный новояз удивительно чувствителен к возрасту — и слова вроде “servers farm” или “information superhighway” сейчас ассоциируются с тёплыми ламповыми CRT-мониторами, а не с прогрессом. В ходе разработки и внедрения разных решений была замечена одна важная особенность: есть два типа контента — статический и динамический.

Динамический контент формируется сервером в момент получения запроса сервером, чаще всего при активном участии базы данных. Если на странице снизу надпись “page was generated in 0.333 seconds” — это как раз пример динамического контента.

Статический контент на сервере находится в готовом виде — кто бы не прислал запрос, сервер будет отдавать одно и то же (с поправкой на возможные ACL). Важно, что содержимое при этом не меняется от запроса к запросу.
Статический и динамический контенты создают разный тип нагрузки на сервер. Когда раздаётся “динамика”, то важны процессор, IO (для базы данных) и сколько-то памяти. Когда раздаётся статика, процессор почти не важен, IO важно только для тех файлов, которые не кешированы, а основное требование — это скорость сети. Заставлять раздавать статику серверами, которые раздают динамику, можно, но это совмещение ролей, которое мешает друг другу. Особенно тяжело приходится в тот момент, когда IO от статики начинает мешаться с IO от динамики, а нагрузка на IRQ мешает выполнять скрипты динамики.

Ещё более важной деталью является то, что “динамический” обычно означает наличие “состояния” (сессии и связанных с ним данных), а статика — нет. Статику можно масштабировать горизонтально без сложных двухсторонних синхронизаций с центральным сервером. В случае с динамикой так не получится — нужна либо общая база данных, либо методы синхронизации и блокировок.

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

О главном

10мс задержка), это не существенно. Но если речь про расстояния в континенты — то тут задержка в сотни миллисекунд (до 500-600!) начинает уже играть радикальную роль. А если же контент отдаётся с сервера, который в нескольких километрах от пользователя, то случается чудо! Австралия видит данные с сайта из США в единицы милисекунд, Китай из сайта из России, Франция с сайта из Бразилии. Без участия океанических кабелей.

Работает это и на меньшем масштабе: Например, Яндекс при помощи CDN в свое время знатно ускорил работу почты в регионах России, которым до Москвы по оптике топать и топать.

Ускорение доставки контента стало главной киллер-фичей CDN, а всё остальное (снижение нагрузки, её балансировка и т.д.) — стало второстепенным. Важным, но не критическим. В конце-концов, любую нагрузку можно завалить деньгами. Но никакими деньгами нельзя сделать так, чтобы без локальных точек присутствия сигнал из Перми доходил до Сан-Франциско за десятки миллисекунд.

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

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

Как это работает на практике?

Со стороны посетителя сайта: он заходит на сайт example.com, где ему отдают html-страницу. В этой html-странице все css, js, картинки и видео — указывают на сайт cdn.example.com — контент грузится оттуда. Когда браузер клиента обращается этот адрес, то благодаря магии BGP его запрос отправляется на ближайший узел присутствия. Сама магия BGP состоит в том, что провайдеру посетителя на IP-сеть, в которой находится cdn.example.com, присылается несколько анонсов от разных сетей (в которых есть точка присутствия), а маршрутизатор провайдера из них выбирает самый близкий. В результате, запрос уходит на ближайший сервер, который отвечает на него, и ответ уходит аналогично, тоже по короткому маршруту.

Кстати, она может быть тоже статической. По такому принципу работают, например, страницы на github.io — это чистый CDN, в нём всё раздаётся статикой.

Кому нужен CDN?

Тем, кому важно отдать статику быстро множеству посетителей, которые находятся далеко от серверов компании (ситуация ещё острее для компаний, у которых посетители раскиданы по большой территории, то есть даже перенос серверов “поближе” смысла не имеет — всё равно большинство окажется “далеко”).

Тем, у кого очень большой объём файлов — и стоимость трафика CDN оказывается ниже стоимости трафика, уходящего к аплинкам (у крупных сайтов обычно трафик стоит разных денег — локальный дешевле, “глобальный” дороже).

При определённой полосе, вынос статики на CDN оказывается выгоднее, чем апгрейд сетевого оборудования. Обычно статика занимает значительную часть полосы, и вместо апгрейда с 1G до 10G, или с 10G до 40G, куда дешевле выкинуть 80% трафика на CDN и оставаться на разумных по цене серверах.

Различия

Если с CDN всё понятно, то как насчёт их поставщиков? Компаний много, они различаются ценой, услугами и качеством.
Вот основные факторы, которые надо определить для себя при выборе поставщика:

1. Количество точек присутствия (Point of Presence)
Чем больше точек, тем лучше, однако… Oднако, зачем вам точки присутствия в Китае, если сайт русскоязычный? А количество точек присутствия в Австралии при выходе на американский рынок… При сравнении CDN следует учитывать число точек присутствия в интересующих странах и регионах. Просто заверений о большом числе точек присутствия и хорошей связности не достаточно — для информированного выбора нужно видеть список точек присутствия и сопоставлять их с потенциальной аудиторией сайта.

Сами точки присутствия так же не равнозначны — связность и пиринговые соглашения с локальными провайдерами очень важны. К сожалению, “иногородцу” оценить связность довольно сложно (нужно понимать расстановку сил на локальном провайдерском рынке), но, сравнивая предложения стоит уточнить о списке пиров каждого из кандидатов в самых важных точках присутствия.

3. SLA
Да, да, легендарный и необъятный Service Level Agreement. Перед тем, как радоваться длинной чреде девяток, уточните — это SLA для CDN “вообще” или для всех точек присутствия? Если в самой важной для вас локации ломается сервер и контент отдают “из соседней страны” это будет засчитываться за даунтайм по SLA? Ну и, основное, чем грозит несоблюдение SLA поставщику? Вам вернут копеечку от месячного платежа, или там есть солидные штрафные санкции?

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

Очень важно обратить внимание на поддержку нужны протоколов и файлов. Узнайте, поддерживает ли выбранный вами провайдер потоковое воспроизведение флеш- и медиафайлов (RTMP, RTSP), если вы планируете доставлять именно такой контент.

Возможно, провайдер очень хорош во всем остальном, но, если он не поддерживает нужные вам технологии, вам это вряд ли понравится.

5. Технические нюансы
Технология переадресации: Это либо эникаст на уровне DNS, либо переадресация через редиректы. Эникаст, по понятным причинам, работает быстрее.

Аккуратность переадресации: К сожалению, этот показатель сам поставщик объективно оценить не сможет, хотя как раз этот показатель очень важен — какая часть целевой аудитории попадает на ближайший сервер. Часто говорят про ожидаемую задержку (так как фактическое расстояние никого не волнует, а всех волнует время прохождения пакетов — например, бывает так, что стык между двумя сетями перегружен и пакеты ходят медленно, в этой ситуации лучше сходить чуть дальше, но быстрее).

6. Аккаунтинг
Как именно поставщик берёт деньги? За мегабайты или за мегабиты в секунду? Есть ли минимальный коммит (“если раздалось меньше предусмотренного договором доплатить до минимума”), что происходит при оверкоммите (превышении лимита) — отключают/берут больше денег? Есть ли минимальный срок контракта? Есть ли вообще контракт (заключающийся между владельцем сайта и поставщиком CDN), или же это автоматический self-serving on-demand provisioning, то есть “закинул денег на счёт и получил панель управления”?

Начиная с каких объёмов имеет смысл думать о CDN?

Повторим мысль: если нужно быстро обслужить клиентов, то объём трафика уже не важен — важны точки присутствия поближе к целевой аудитории.

Если же значительной потребности в низкой latency нет, а CDN используется для облегчения нагрузки на сервера, то осмысленный объём трафика, с которым стоит начинать думать о CDN — это несколько терабайт в месяц.

Главный вопрос: сколько это стоит?

Краткий обзор рынка

Все компании делятся на две категории — работающие по существующим публичным тарифам и работающие на основании договорённостей. Вторые компании крайне сложно сравнивать, так как условия в них могут сильно различаться. Однако, “приватный” не означает “маленький” — у приватных компаний чаще всего очень крупные клиенты с огромными объёмами в сотни терабит (полосы), а на “мелюзгу” с десятком гигабит они не заморачиваются.

Вот список популярных CDN (чтобы никого не обижать, список отсортирован в случайном порядке):

Статья написана при поддержке наших коллег из компании UCDN, которые слишком скромны, чтобы включать себя в список выше.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *