Компьютерные сети

CDN: контент ближе к пользователю

Цели урока

  • Понимать модель CDN: edge-кэш ближе к пользователю + умная маршрутизация (anycast / DNS-based)
  • Различать pull-CDN и push-CDN, и когда какой подходит
  • Знать что хорошо кешируется (статика, видео-чанки) и что нет (личный кабинет, корзина)
  • Использовать Cache-Control, ETag, stale-while-revalidate осмысленно
  • Видеть как Netflix Open Connect ставит CDN-серверы прямо у ISP, чтобы экономить транзит

Ваш сервер в Нью-Йорке. Пользователь в Токио ждёт 150 мс на каждый запрос - физику не обманешь. CDN ставит копию данных в Токио - и теперь 20 мс. Netflix Open Connect разнёс свои edge-серверы по сетям ISP и до 95% видеотрафика отдаёт прямо из стойки оператора, не нагружая магистрали.

  • **Netflix Open Connect** - собственный CDN с серверами у провайдеров, 15% мирового трафика
  • **Cloudflare** - 300+ POP, защита от DDoS, Workers для edge computing
  • **Akamai** - первый CDN, обслуживает 30% веб-трафика, используется банками и медиа

Предварительные знания

  • How DNS Resolution Works
  • Load Balancing: Basics

Что такое CDN и зачем он нужен

**CDN (Content Delivery Network)** - географически распределённая сеть серверов, которая доставляет контент с ближайшего к пользователю узла. Пользователь в Токио получает данные с сервера в Токио, а не с оригинального сервера в Нью-Йорке.

**Akamai** - первый коммерческий CDN (1998). Сегодня: Cloudflare, AWS CloudFront, Fastly, Google Cloud CDN. Netflix Open Connect - собственный CDN Netflix, установленный у провайдеров.

CDN снижает не только latency, но и нагрузку на origin. Популярный файл запрашивается миллион раз → origin отдаёт его один раз на edge → edge отдаёт миллион раз. Origin разгружен на 99.9999%.

Почему CDN не может полностью устранить latency?

Edge-серверы и POP

**Edge-сервер** - сервер CDN, расположенный близко к пользователям. **POP (Point of Presence)** - дата-центр с edge-серверами. Крупные CDN имеют сотни POP по всему миру: в каждом крупном городе, у каждого крупного провайдера.

**Anycast IP** - один IP-адрес анонсируется из множества POP. BGP направляет пользователя к ближайшему POP автоматически. Cloudflare использует 1.1.1.1 как Anycast DNS.

Edge-серверы хранят **кэш** популярного контента. Если контент в кэше (cache hit) - ответ мгновенный. Если нет (cache miss) - запрос идёт к origin или вышестоящему уровню кэша.

Что такое Anycast в контексте CDN?

Иерархия кэша: Edge, Mid-tier, Origin

Крупные CDN используют **многоуровневую иерархию кэша**. Edge (L1) - ближе к пользователям, маленький кэш. Mid-tier/Regional (L2) - региональный кэш, больше места. Origin Shield (L3) - защищает origin от прямых запросов.

**Origin Shield** - единая точка, через которую все cache miss идут к origin. Защищает origin от множества одновременных запросов на один файл (thundering herd problem).

**Cache miss amplification**: без shield 100 edge-серверов делают 100 запросов к origin при cache miss. С shield - только 1 запрос. Shield важен при запуске нового контента или инвалидации кэша.

Зачем нужен Origin Shield в CDN?

DNS-based и Anycast маршрутизация

CDN должен направить пользователя к ближайшему POP. Два основных метода: **DNS-based routing** (DNS резолвит в IP ближайшего POP) и **Anycast** (один IP, BGP выбирает путь). Часто используют комбинацию.

**Anycast + DDoS**: при атаке трафик распределяется по всем POP автоматически. Атакующий не может перегрузить один сервер - нагрузка размазывается по всей сети.

Современные CDN также предлагают **Edge Functions** (Cloudflare Workers, Lambda@Edge) - код выполняется на edge-серверах. A/B тесты, персонализация, редиректы - без обращения к origin.

CDN нужен только для больших компаний с миллионами пользователей

CDN полезен даже маленьким сайтам: бесплатный SSL, защита от DDoS, ускорение по всему миру

Cloudflare Free даёт: бесплатный SSL, CDN на 300+ POP, базовую DDoS protection, DNS. Для блога или стартапа это огромная ценность бесплатно. CDN окупается с первого пользователя из другой страны.

Почему Anycast хорош для защиты от DDoS?

Итоги

  • **CDN** - распределённая сеть edge-серверов, доставляющая контент с ближайшего POP к пользователю
  • **Иерархия кэша** - Edge (L1) → Regional (L2) → Origin Shield (L3) → Origin. Cache hit ratio 90%+ - норма
  • **Anycast** - один IP маршрутизируется к ближайшему POP через BGP. Автоматический failover и распределение DDoS

Связанные темы

CDN объединяет знания о DNS, кэшировании и распределённых системах:

  • DNS Resolution — GeoDNS направляет пользователя к ближайшему POP
  • Reverse Proxy — CDN - это глобально распределённая сеть reverse proxy с кэшированием

Вопросы для размышления

  • Почему Netflix построил собственный CDN вместо использования Akamai/Cloudflare?
  • Как бы вы инвалидировали кэш на CDN при обновлении контента?
  • Когда CDN может замедлить сайт вместо ускорения?

Связанные уроки

  • ds-06-hash-intro
CDN: контент ближе к пользователю

0

1

Войти