Что такое CDN в интернете

Что такое CDN в интернете

Объясняем понятие Content Distribution Network

Это статья об устройстве современного интернета. Знать про такое полезно, но необязательно: делать сайты и программировать можно и без этого. Но разбираться в теории полезно, если вы хотите прокачать свой ИТ-кругозор. Если нужна практика и код — посмотрите, как научить компьютер складывать числа любой длины.

Кратко о том, что такое CDN (Content Distribution Network)

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

Теперь погрузимся подробнее. 

Базовая работа без CDN

Допустим, мы сделали сайт и опубликовали его на сервере. Теперь кто угодно может открыть его по какому-то адресу.

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

Расстояние между пользователем и дата-центром может быть каким угодно. Например, если человек сидит в кафе в Петербурге, его запрос может доскакать до дата-центра за каких-нибудь 10 миллисекунд, преодолев 3–5 сетевых узлов. А если человек сидит в Аргентине, его запросу придётся преодолевать несколько десятков сетевых узлов, на что будет уходить 100–300 мс.

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

Что такое CDN в интернете
Cайтом нормально пользуются те, кто живёт рядом, а жители других регионов ждут, пока всё загрузится

Что такое CDN

Чтобы решить эту проблему, придумали CDN: Content Delivery Network (сеть доставки контента). Работает эта технология так:

  1. По всей стране или по всему миру размещаются новые серверы. Обычно их ставят рядом с серверами региональных провайдеров, чтобы запросы далеко не ходили.
  2. Эти серверы объединяются в единую сеть — CDN. 
  3. Новый сайт подключается к CDN, и всё настраивается так, что все запросы к этому сайту идут через эту сеть.
  4. Когда кто-то первый раз заходит на этот сайт, CDN скачивает с нашего сайта нужные страницы и файлы и отдаёт пользователю.
  5. В следующий раз все эти данные будут отправляться пользователю не от нашего сайта, а придут к нему из CDN.
  6. Так как серверов CDN много и они находятся рядом с пользователем, то сайт начинает грузиться намного быстрее.

Что такое CDN в интернете

CDN бывают разные

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

Например, свои CDN есть у Google, HP, Microsoft, Мегафона, Нетфликса и десятков других крупных ИТ-компаний. Ещё есть коммерческие CDN: CloudFlare и Akamai.

Что такое CDN в интернете
Карта покрытия CDN-серверов CloudFlare

Как CDN снижает нагрузку на сервер

Ещё одна ситуация, когда CDN будет полезен, — если на сайт поступает много запросов. 

У видеохостинга Youtube работает много серверов, но, кроме этого, он пользуется Google Cloud CDN — она покрывает большинство стран, позволяя быстро работать с сервисами Google. Это позволяет не отправлять одно и тоже видео каждый раз с основного сервера, а выдавать копию из CDN. Это значит, что только первый просмотр видео идёт с сервера Youtube, а все остальные получают это же видео с серверов CDN. Если Google остановит свои CDN-серверы в России, то видео у нас будет грузиться дольше, потому что всё будет идти напрямую через основной сервер.

Минусы CDN

В некоторых ситуациях сайт без CDN работает лучше, чем с ним, и вот почему.

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

Надо время, чтобы внести изменения, когда они появятся. Если мы обновим скрипт, стили или HTML-файл, то CDN понадобится некоторое время, чтобы это заметить и обновить эти файлы у себя. Иногда на это уходят сутки — а это может быть критично в некоторых проектах.

Текст:

Михаил Полянин

Редактор:

Максим Ильяхов

Художник:

Алексей Сухов

Корректор:

Ирина Михеева

Вёрстка:

Кирилл Климентьев

Соцсети:

Виталий Вебер

Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Начать карьеру в ИТ
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
Еще по теме
Бустинг — ещё один способ машинного обучения

Как с помощью слабых алгоритмов сделать сильный.

medium
Кто такой дата-сайентист

Если вы не знаете, чем заняться ближайшие 15 лет, — идите в дата-сайенс, помогите нейросетям захватить мир.

easy
Что такое логарифм в математике и в жизни
Что такое логарифм в математике и в жизни

И при чём здесь капуста, горные козлы и ракетостроение

medium
Функции. Зачем они нужны и как их писать, чтобы вас уважали программисты
Функции. Зачем они нужны и как их писать, чтобы вас уважали программисты

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

medium
Кто такой инженер по тестированию и стоит ли на него учиться

Раскладываем по полочкам новую профессию.

easy
10 главных конструкций языка Go
10 главных конструкций языка Go

На самом деле 12, но 10 — красиво.

easy
Как устроен Практикум

И зачем там столько тренажёров.

easy
Что такое протокол
Что такое протокол

Почему компьютеры вообще друг друга понимают

medium
Ну что ж, переходим на Linux. С чего начать?
Ну что ж, переходим на Linux. С чего начать?

Краткое пособие по импортозамещению

easy
Знакомство с матрицами
Знакомство с матрицами

Понятие и базовые операции.

medium
medium