System Design: От Идеи к Реальной Системе
Сеть Доставки Контента (CDN)
Артемий Мазаев
1 янв. 2024 г.

Сеть доставки контента (CDN) - это географически распределенная группа серверов, работающих вместе для обеспечения быстрой доставки интернет-контента. Обычно CDN используется для предоставления статических файлов, таких как HTML/CSS/JS, фотографий и видео.

Зачем использовать CDN?

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

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

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

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

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

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

Типы

CDN обычно делятся на два типа:

Push CDN

Push CDN получает новый контент каждый раз, когда происходят изменения на сервере. Мы несем полную ответственность за предоставление контента, загружая его напрямую в CDN и перенаправляя URL-адреса на CDN. Мы можем настроить время истечения контента и время его обновления. Контент загружается только тогда, когда он новый или измененный, что минимизирует трафик, но максимизирует хранение.

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

Pull CDN

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

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

Недостатки

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

  • Дополнительные расходы: Использование CDN может быть дорогим, особенно для сервисов с высоким трафиком.
  • Ограничения: Некоторые организации и страны заблокировали домены или IP-адреса популярных CDN.
  • Расположение: Если большинство нашей аудитории находится в стране, где у CDN нет серверов, данные на нашем веб-сайте могут путешествовать дальше, чем без использования CDN.

Примеры

Вот некоторые широко используемые CDN:

Have a doubt?
Post it here, our mentors will help you out.