Компьютерные сети
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% веб-трафика, используется банками и медиа
Предварительные знания
Что такое 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 может замедлить сайт вместо ускорения?