CDN (Content Delivery Network) — распределенная сетевая архитектура, созданная для ускорения доставки контента пользователям. CDN влияет на скорость загрузки любого контента сайтов и приложений, который видит пользователь: аудио, видео, стриминг, изображения, тексты, графика.
Сеть доставки контента делится на три типа: P2P, Push и Pull. В материале разбираемся в отличиях и особенностях разных CDN.
P2P
Peer‑to‑peer CDN — это децентрализованная сеть, в которой пользователи распространяют контент между собой, а не полагаются на централизованный сервер. Данный метод позволяет снизить нагрузку на исходный сервер и повысить скорость доставки контента.
P2P CDN распределяет контент между пользователями. Данная модель не использует HTTP‑серверы, в отличие от традиционных CDN, когда в сетях размещают множество HTTP‑серверов по всему миру, на которых кэшируется и хранится контент.
Сеть доставки контента P2P не является CDN общего назначения, то есть не обслуживает все виды веб‑контента — peer‑to‑peer сосредоточен исключительно на масштабируемом и эффективном распространении видео. P2P CDN работает путем координации пользователей таким образом, чтобы они отправляли видеосегменты контента друг другу вместо того, чтобы каждый постоянно получал сегменты с пограничного сервера.
Push
Push CDN — метод, при котором контент активно передается с сервера происхождения на пограничные серверы CDN. Это может быть полезно для контента, который часто обновляется или имеет высокий спрос.
Вместо того, чтобы извлекать контент с сервера, когда он нужен CDN, контент загружается в сеть заранее. Таким образом, CDN могут кэшировать статический контент и предоставлять его пользователю.
Push CDN дают преимущество гибкости в работе с контентом. Владелец веб‑сайта и создатель его содержимого может напрямую указать, какой контент будет передан на сервер CDN, когда истечет срок его действия и когда он должен быть обновлен. Это эффективное и более простое использование трафика — контент загружается на сервер CDN только при наличии изменений, что позволяет снизить трафик.
Проблема этого подхода заключается в том, что если вы часто обновляете контент и если ваш сервер уже обслуживает другой тяжелый трафик, то такая синхронизация может увеличить нагрузку на сеть.
Pull
Pull CDN — метод, при котором контент запрашивается пограничными серверами CDN с исходного сервера. В отличие от метода Push, сама CDN отвечает за извлечение нужного контента для доставки посетителям. Это наиболее распространенный тип CDN, который может быть полезен для контента, который не часто обновляется или имеет низкий спрос.
Происходит это так: владелец сайта оставляет контент на исходном сервере и переписывает URL‑адреса так, чтобы он указывал на CDN. Когда выполняется определенный запрос на веб‑страницу, CDN извлекает элементы и файлы веб‑страницы с исходного сервера и передает их посетителю. Затем сервер CDN будет кэшировать эту версию страницы до истечения срока ее действия.
Основное преимущество Pull заключается в том, что его довольно легко настроить, поскольку CDN в основном делает всю работу за вас. Кроме того, Pull извлекает элементы и файлы веб‑страниц только после первоначального запроса, за счет чего уменьшается потребление хранилища.
Но данный метод может привести к некоторым проблемам, ведь он менее гибок, чем Push CDN. Часто возникает избыточный трафик, поскольку элементы и файлы веб‑страниц запрашиваются повторно еще до того, как они были изменены.
Кроме того, Pull может быть медленнее Push, поскольку посетители, которые впервые заходят на страницу, или те, кто пытается открыть веб‑страницу после истечения срока хранения элементов и файлов в CDN, могут испытывать меньшую скорость загрузки страницы.