CDN

CDN (Content Delivery Network) — это сеть серверов, распределённых по всему миру. Их цель — быстро доставлять статический контент (HTML, CSS, JS, картинки, видео) пользователям из ближайших к ним дата-центров.

  1. Ускорение: Если твой сервер в Москве, а клиент в Австралии, физику не обманешь — пинг будет высоким. CDN отдаст картинку с сервера в Сиднее за миллисекунды.
  2. Снятие нагрузки: Твои серверы (Origin) обслуживают в разы меньше запросов, так как CDN принимает удар статики на себя.
  3. Доступность и защита: При DDoS-атаке злоумышленники бьют в CDN (у которого огромная пропускная способность), а не в твой хрупкий бэкенд.
Типы CDN: Push vs Pull
Характеристика Push CDN Pull CDN (Самый частый)
Как работает Ты сам принудительно загружаешь файлы на CDN при каждом релизе. CDN сам тянет файл с твоего сервера при первом запросе от пользователя.
Когда использовать Мало трафика, контент весит много и обновляется редко. Много трафика, контент генерируется или меняется часто.
Плюсы Файлы гарантированно лежат на Edge-серверах и отдаются моментально. Минимум возни: настроил один раз, и CDN сам кеширует то, что реально запрашивают.
Минусы Высокие расходы на хранение даже тех файлов, которые никто не скачивает. Первому пользователю не повезет — он будет ждать скачивания с Origin (Cache Miss).
Темная сторона CDN: Инвалидация кэша

Фил Карлтон говорил: «В Computer Science есть только две сложные проблемы: инвалидация кэша и придумывание имен».

Если ты выкатил новый дизайн (новый CSS-файл), а у старого файла на серверах CDN стоит TTL (Time To Live) 24 часа — твои пользователи еще сутки будут видеть сломанный старый дизайн. Как это решать?

  • Версионирование файлов: Это индустриальный стандарт. Вместо файла styles.css сборщик (Webpack/Vite) генерирует файл с хэшом: styles.a4b8c9.css. При релизе меняется имя файла, и CDN вынужден скачать новый файл как совершенно другой ресурс. Старый кэш никого не волнует.
  • Принудительная очистка: Можно отправить команду в Cloudflare или AWS CloudFront немедленно удалить конкретный файл из кэша всех Edge-серверов. Это дорогая (по ресурсам CDN) и иногда долгая операция.