От автора: термин CDN (Content Delivery Networks) продолжает оставаться для нас акронимом. Возможно, вы встречали его в URL-адресах, возможно, на целевых страницах, но вы не могли перейти на него — так что такое CDN, и что именно они делают? Мы расскажем об этом в этой обзорной статье и проиллюстрируем на примере двух самых популярных CDN.
Что такое CDN
CDN — это сеть компьютеров, которые доставляют контент. Более конкретно, это множество серверов, географически расположенных между исходным сервером какого-либо веб-контента и запрашивающим его пользователем, их целью является более быстрая доставка контента за счет уменьшения латентности.
Эти географически более близкие серверы, также называемые PoP или Points of Presence, также кэшируют содержимое, что позволяет удалить большую часть загружаемого контента с исходного сервера. Существуют различные типы CDN, предлагающие различные виды услуг, они могут иметь различную топологию сети: распределенные CDN стремятся иметь как можно больше серверов по всему миру. Akamai — один из таких CDN. Консолидированные CDN имеют меньше точек, но больше настроены на увеличение производительности сети, пропускной способности и противодействие DDoS.
Типы CDN
Мы сказали, что их основной целью является сокращение времени ожидания и ускорение рендеринга. Но в современном мире 2 МБ изображений и 500 кб JavaScript-библиотек, загрузка на сайт которых занимает 3 минуты, не имеют большого значения. Однако с течением времени CDN эволюционировали, и у них появились и другие задачи.
Контент-ориентированные CDN
Первоначально CDN были предназначены только для статического контента (JS, CSS, HTML). Вы должны были отправлять контент, когда вы его создали / загружали (они не знали, что им необходимо обновить кэш вашим контентом, даже если кто-то запрашивал его).
Затем были добавлены пуллинги источника, что позволило все автоматизировать — это означало, что, когда пользователь запрашивал URL-адрес CDN, CDN автоматически запрашивал URL-адрес исходного сайта, кэшируя контент после его возвращения. Кроме того, важным фактором стала доступность. Многие CDN теперь кэшируют состояние «последнего живого» веб-сайта, поэтому, если источник дает сбой, контент на CDN все еще доступен для пользователей, создавая иллюзию стабильности, пока все не вернется к нормальному состоянию.
Кроме того, современные CDN часто предлагают уровни автоматической оптимизации, которые автоматически изменяют размер изображений и сохраняют их для будущего использования в зависимости от требуемого размера изображения. Это означает, что если ваш сайт содержит изображение заголовка в 2 МБ, а кто-то запрашивает его на экран шириной 300 пикселей, CDN сделает копию размером 30 КБ и шириной 300 пикселей и будет обслуживать ее в будущем для всех мобильных пользователей, автоматически делая сайт быстрее.
CDN, ориентированные на безопасность
Последним уровнем функционала, добавленным в CDN, стала защита от DDoS и ботов. Такие CDN, как Incapsula, специализируются именно на этом.
Поскольку CDN является внешним слоем инфраструктуры веб-сайта и первым получателем трафика, он может обнаруживать DDoS-атаки раньше и блокировать их с помощью специальных серверов DDoS-защиты, называемых скрубберами, чтобы атаки они никогда не доходили до исходного сервера.
Кроме того, используя знания, полученные от многочисленных клиентов, CDN может узнать о подозрительных IP-адресах, спамерах, ботлерах, даже отдельных типах сканеров и их поведении. Например, на сайте A работает скрапер, как только он будет идентифицирован, он перестанет работать и на сайте B, если этот сайт будет защищен одним и тем же CDN, потому что фильтр трафика распознает шаблон, который он видел ранее.
Более того, в то время как CDN позволяют клиентам загружать свои сертификаты, они также предлагают собственные. Это возможность имеет два преимущества:
Когда появляется уязвимость в сертификатах, CDN обычно реагируют быстро, потому что они много теряют (всех своих клиентов). Следовательно, исправление обычно реализуется, прежде чем большинство людей даже узнает о бреши в безопасности.
Более быстрое соединения, потому что, если многие веб-сайты используют один и тот же CDN, вы уже установили корректное соединение и взаимное доверие с CDN через его сертификат SSL, и этот процесс не должен повторяться для каждого сайта, использующего этот сертификат CDN. Это не влияет на отдельный веб-сайт так же, как на всю сеть.
Основные игроки
Некоторые из крупнейших игроков в сфере CDN — это такие компании, как Akamai, Cloud Cloud, Cloudinary, Incapsula, MaxCDN, Fastly и другие.
Вместо того, чтобы приводить их полное сравнение, мы перечислим аспекты, в которых каждый имеет определенные преимущества:
Защита от скраперов и DDoS
Несмотря на то, что Incapsula отлично справляется со всеми основными задачами, это непревзойденный сервис в том, что касается защиты от скраперов и DDoS. Благодаря обширной базе данных, которая не только предоставляет IP-адреса прокси-серверов, но и шаблоны поведения мыши и браузинга ботов и скраперов, Incapsula останавливает большинство автоматических атак, блокируя их еще на полпути.
Выберите, если: Вы владеете интернет-магазином и не хотите, чтобы ваши конкуренты «передирали» ваш каталог.
Скорость и глобальный охват
Akamai, CDN, который использует даже Facebook*, имеет проверенную репутацию глобальной доступности. Их распределенная модель топологии сети и доступность даже в более бедных частях мира (чего не достает другим CDN) делают контент, обслуживаемый с помощью Akamai, легко доступным даже в регионах с плохим интернетом. Близким к нему и вторым по этому показателю является AWS Cloudfront от Amazon.
Выберите, если: Вы нацелены на глобальный охват, от Китая до США, от Финляндии до Антарктики.
Стоимость
Amazon Cloudfront — самый дешевый из платных планов (мы не учитываем бесплатные планы, поскольку часто им не хватает важных функций), и имеет, возможно, самый большой охват после Akamai, который не совсем дешев (распределенная топология стоит недешево).
Выберите, если: Стоимость является проблемой.
Хотлинкинг
Хотлинкинг — это когда кто-то выбирает «Копировать адрес изображения» для изображения, размещенного на вашем сайте, и включает этот исходный URL-адрес, как адрес своего изображения. Это, как правило, связано с небрежной работой воров контента, но может привести к дополнительной нагрузке, если вору удастся поделиться ссылкой на свой сайт на крупных сайтах социальных сетей, например Facebook* или Reddit, и ваш сервер пострадает от этого. MaxCDN и KeyCDN предлагают очень хорошую защиту от хотлинкинга.
Выберите, если: У вас есть галерея, блог путешествий или любой другой сайт с большим количеством изображений, который подвержен риску хотлинкинга.
Другие
Мы призываем вас провести исследование самостоятельно. Есть бесчисленное множество постов, в которых различные CDN сравниваются друг с другом, и каждый план каждого CDN чем-то отличается от других вариантов. Крайне сложно охватить их все, с учетом еще и того, что общая картина постоянно меняется.
Процесс реализации
Реализация CDN обычно влечет за собой изменение некоторых записей DNS в панели управления регистратора (компания, предоставляющая доменное имя). Это приводит к тому, что весь трафик сначала попадает на CDN. Поскольку все это происходит за кулисами (через IP-адреса), процесс прозрачен для пользователя.
Иногда сайты добавляют специальный поддомен, на котором размещаются изображения, JavaScript, CSS и другой статический контент. Если вы откроете вкладку «Сеть» в консоли разработчика браузера или просто обратите внимание на строку состояния браузера, в то время как загружается сайт, подобный Facebook*, вы увидите много URL-адресов с cdn — это часть его контента, загружаемая из CDN.
Почему бы не запросить весь контент через CDN? Поскольку статический контент обычно большой — 2 МБ изображений, 500 КБ JS и т. д., его стоит обслуживать быстро, потому что: а) он не меняется часто и может кэшироваться в течение длительного времени и б) это позволяет значительно разгрузить основной сервер приложения, который может быть динамическим.
Заключение
В этой статье вы узнали, что такое CDN и как это работает. Вы узнали о различных типах CDN и их потенциальных преимуществах, а также о крупнейших игроках в этой сфере.
В двух последующих статьях мы представим CloudMan и Cloudflare, а так как наш крупнейший проект Performance-Month-Project мы фактически реализуем на одном из них, вы сможете увидеть их в действии на реальном примере. Оставайтесь на связи!
Автор: Bruno Skvorc
Источник: //www.sitepoint.com/
Редакция: Команда webformyself.
* Признана экстремистской организацией и запрещена в Российской Федерации.