Статьи

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

CDN — вы продолжаете видеть аббревиатуру. Может быть, в URL-адресах, может быть на целевых страницах, но он никогда не нажимал — что такое сети доставки контента, что они делают точно?

Мы объясним в этой обзорной статье и продемонстрируем две популярные в последующих постах.

сеть

Основы CDN

CDN — это сеть компьютеров, которая доставляет контент.

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

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

Типы CDN

Мы сказали, что их основной целью было уменьшить время ожидания и ускорить рендеринг. Но в современном мире 2-мегабайтных изображений и 500-килобайтных библиотек JavaScript, которые загружаются на веб-сайтах в течение 3 минут, эта задержка не имеет большого значения. Но есть и другие цели для CDN, которые развивались с течением времени.

Контентно-ориентированные CDN

Изначально CDN были только для статического контента (JS, CSS, HTML). Вы должны были загружать контент к ним, когда создавали / загружали его (они не знали, что им нужно обновить кеш с вашим контентом, даже если кто-то его об этом просил).

Затем они добавили извлечение источника , сделав вещи более автоматическими — это означало, что пользователь запрашивал URL-адрес CDN, а затем CDN автоматически запрашивал URL-адрес исходного сайта, кэшируя все, что вернул. Кроме того, доступность стала важным фактором. Многие CDN теперь кэшируют «последнее живое» состояние веб-сайта, поэтому, если источник исчезает, контент CDNed остается доступным для пользователей, создавая иллюзию стабильности, пока все не вернется в нормальное состояние.

Кроме того, современные CDN часто предлагают слои автооптимизации, которые автоматически изменяют размеры изображений и сохраняют их для будущего использования в зависимости от требуемого размера изображения. Это означает, что если на вашем сайте есть изображение заголовка размером 2 МБ и кто-то запрашивает его на экране шириной 300 пикселей, CDN создаст копию размером 30 КБ и шириной 300 пикселей и в будущем предоставит ее всем мобильным пользователям, автоматически делая сайт быстрее. ,

CDN, ориентированные на безопасность

Последний уровень практичности, добавленный к CDN, был DDoS и защита ботов. CDN, такие как Incapsula, специализируются на этом.

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

Кроме того, используя знания, полученные от многочисленных клиентов, CDN может узнавать о подозрительных IP-адресах, спамерах, вредоносных программах и даже типах сканеров и их поведении. Например, скребок, работающий на сайте A, после идентификации перестанет работать и на сайте B, если этот сайт защищен тем же CDN, поскольку фильтр трафика распознает шаблон, который он видел ранее.

Немецкая овчарка

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

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

Крупнейшие игроки

Одними из крупнейших игроков в области CDN являются такие компании, как Akamai, AWS Cloudfront, Cloudinary, Incapsula, MaxCDN, Fastly и другие.

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

Выскабливание и защита от DDoS

Несмотря на то, что Incapsula хороша и во всех других отношениях, она непревзойденна в отношении очистки и защиты от DDoS. Благодаря обширной базе данных не только нарушающих IP-адреса прокси-серверов, но и шаблонов мыши и просмотра ботов и скребков, Incapsula останавливает большинство автоматических атак в своих целях.

Выберите, если: вы интернет-магазин и не хотите, чтобы ваши конкуренты брали ваш каталог

Скорость и глобальный охват

Akamai, CDN, который использует даже Facebook, имеет проверенную репутацию глобальной доступности. Их разбросанная модель топологии сети и доступности даже в самых бедных частях мира (чего нет у других CDN) делают контент, обслуживаемый Akamai, удобным для загрузки даже в областях с низким уровнем соединения. Ближайшая секунда — AWS Cloudfront от Amazon.

Выберите, если: вы стремитесь к глобальному охвату, от Китая до США, от Финляндии до Антарктиды.

Допустимость

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

Выберите, если: цена является проблемой.

Hotlinking

Горячая ссылка — это когда кто-то выбирает «Копировать адрес изображения» на изображении, размещенном на вашем сайте, и включает его самостоятельно, с сохранением исходного URL. Это обычно неаккуратная и ленивая работа со стороны контент-воров, но она может привести к большим затратам, если подражатель преуспеет в том, чтобы поделиться своим сайтом на таких значимых сайтах социальных сетей, как Facebook или Reddit, и ваш сервер страдает от этого. MaxCDN и KeyCDN обеспечивают очень хорошую защиту от хотлинкинга.

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

Другой

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

Процесс внедрения

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

Передний конец против заднего конца

Иногда сайты добавляют специальный поддомен в свой основной домен, на котором размещаются изображения, JavaScript, CSS и другой статический контент. Если вы откроете вкладку «Сеть» консоли разработчика браузера или просто обратите внимание на строку состояния браузера, когда загружается такой сайт, как Facebook, вы заметите множество URL-адресов с cdnчасть его контента из CDN.

Почему бы не запросить весь контент через CDN? Поскольку статический контент обычно большой — 2 МБ изображений, 500 КБ JS и т. Д. Это стоит того, чтобы его быстро обслуживать, потому что а) оно не меняется часто и его можно долго кэшировать; б) удаляет большую, большую нагрузку с Основной сервер приложения, который может быть динамическим.

Вывод

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

В двух последующих статьях мы представим Cloudinary и Cloudflare, а в нашем главном проекте Performance-Month-Project мы фактически внедрим одну из них в наше реальное приложение, чтобы вы могли увидеть ее в действии на живом примере. Будьте на связи!