Наша почта:
В Москве:
РФ (звонок бесплатный):
DNS и CDN: Если внедрять, то когда?
{ Head of Product B2B SaaS в Deeplay }
Александр Штейн

Видео доклада

Презентация спикера

DNS и CDN: Если внедрять, то когда?
DNS и CDN обычно вспоминают в двух ситуациях: когда сайт начал ложиться под нагрузкой и когда бизнес собрался расти в новые регионы. Но вопрос «внедрять или нет» стоит не всегда — важнее понимать, в какой момент компания реально с этим сталкивается и что при этом происходит. Доклад рассматривает тему с позиции механики и экономики (включая импортозамещение): когда с внешними DNS и CDN в принципе стоит начинать работать, а когда можно обойтись без них.

Исходная ситуация

Есть простая компания «Очень горячая еда». Сначала это один киоск с шаурмой, потом два, потом три. Затем выясняется, что в киоск можно поставить ноутбук и продавать кратно больше. Из онлайна — около 100 DAU (ежедневных активных пользователей), продукция представлена в Адлере.
Инфраструктура минимальная: сайт с меню, картинками, авторизацией, корзиной и чекаутом, размещённый на обычном хостинг-провайдере, который берёт на себя весь головняк по DNS. CDN на этом этапе не нужен: стоит одна машина с картинками, и всё с неё нормально отдаётся.
Потом происходит то, что предсказать было невозможно, — COVID-19. Пользователей внезапно становится не сто, запрос огромный, а оказаться у палатки люди не могут. Онлайн быстро набирает репутацию, внимания к сайту становится много, и сайт периодически ложится. Несчастная машина греется и страдает, не все могут увидеть картинку с шаурмой и заказать. Вдобавок бизнес планирует экспансию: раз есть спрос, надо присутствовать не только в Адлере, но и в Петербурге, Москве и далее. В Питере, правда, шаверма, а не шаурма, — там продукт локально адаптируется и разворачивается отдельный инстанс.

Как работает DNS

Со стороны клиента всё просто. Человек обращается через маршрутизатор в интернет с запросом «хочу сайт», и запрос идёт по цепочке серверов сверху вниз: корневая зона, зона домена верхнего уровня (например, .pro), затем нужный домен вроде gitnet.pro. Обратно возвращается адрес машины, с которой клиент забирает информацию.

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

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

Пример проще показать на другой компании. Человек делает проект «Букашка ТВ» и заливает туда смешные видео. Пока пользователей немного — сотня человек спокойно смотрит, проблем нет. Но один из друзей уезжает во Владивосток, оказывается далеко от источника, и ролики грузятся долго. А потом на сервис натыкается блогер с аудиторией около ста тысяч человек: стандартно порядка 10% заходят посмотреть, и пользователей внезапно становится десять тысяч. Сервер с роликами перегревается и падает: полосы до сервера, скорее всего, хватает, а вот сам сервер страдает.

Далее под CDN понимается система edge-серверов, на которой кэшируется контент. Это, как правило, географически распределённая коммерческая сеть, где под контент выделяется целый сервер или кластер. Контент реплицируется: загружен на источник — появился везде, удалён — стёрся отовсюду. Оплата идёт за трафик, возможны дополнительные опции вроде сжатия контента по пути. Благодаря распределённости пользователь во Владивостоке смотрит видео без задержек, а при всплеске от блогера нагрузка размазывается по сети, и сервис не падает. Масштабирование гибкое, обычно по модели pay-as-you-go: при подключённой монетизации сервис фактически сам оплачивает свой CDN.
Итого:
DNS — это система внешних авторитативных серверов, CDN — система edge-серверов по краям сети, которые хранят, резервируют и передают контент.

От бизнес-задач к сетевым требованиям

Бизнес видит проблему просто: ничего не работает, невозможно заказать еду, плюс готовится инстанс для Петербурга. Сетевой инженер преобразует это в требования:
  • 1.
    Высокая доступность. Сайт не должен лежать, картинки должны быть всегда доступны.
  • 2.
    Учёт географически распределённой аудитории.
  • 3.
    Защита от DDoS хотя бы в базовом виде, расширенная маршрутизация. Сайт уже не на одной машине, и пользователь должен попадать на ближайшую доступную
Справляться приходится с высокими нагрузками, медленной загрузкой и высокими затратами на пропускную способность. Если рефлекторно ставить всё больше машин с контентом и строить над ними маршрутизацию, не посчитав экономику, в какой-то момент можно уйти в огромные расходы. Особенно на старте экспансии, когда «больше» — пока абстракция и реальные объёмы измерить нельзя. В этот момент важно потратить как можно меньше, не уйдя в лишние расходы.

Когда нужен внешний DNS и когда — CDN

  • Глобальная аудитория:
    Решается и DNS, и CDN. Авторитативные серверы должны быть распределены и направлять пользователя на ближайшую работающую машину: скорость загрузки напрямую влияет на удержание — не открылось за пару секунд, человек ушёл к конкуренту. CDN приближает статику к пользователю и снимает нагрузку с инфраструктуры.
  • Частые DDoS-атаки:
    Нужны и DNS, и CDN, но с оговоркой: не все CDN умеют размазывать нагрузку по сети, это стоит уточнять сразу. Важный дисклеймер: внешние CDN и DNS не являются полноценной DDoS-защитой. При целенаправленных атаках нужны отдельные решения.
  • Медленная загрузка:
    На неё внешний DNS влияет не всегда; дольше всего обычно грузится статика. При большом объёме тяжёлого статического контента (картинки, видео, JSON) задачу оптимально решает CDN: закэширует и будет отдавать быстрее.
  • Высокие требования к аптайму:
    Нужны и DNS, и CDN. С CDN понятно. DNS решает случай, когда сервер выключен из сети, но всё ещё считается оптимальным для кластера пользователей. Внешний DNS обычно имеет DNSSEC и DNS failover: делает лёгкие проверки ко всем машинам и при отказе одной автоматически меняет список машин и приоритетов.
  • Геобалансировка:
    Помимо геораспределения бывает балансировка по весу: машины разной мощности выдерживают разный RPS, и можно статически задавать, сколько запросов приземляется на какую. По сути внешние DNS и CDN — это хорошо настроенный Nginx, заточенный под разные виды балансировки.

Последовательность и виды бизнеса

Начинать стоит с внешнего DNS: так быстро видно, в чём проблема — велик ли time to first byte до сайта, а контент грузится уже позже. Если после этого сайт доступен, атак меньше, но статика по-прежнему грузится долго и падает ретеншн, — подключается CDN. Последовательность важна: бизнес любит гипотезы, а проверять их одновременно нежелательно; к тому же «и то, и другое сразу» тяжелее продать наверх.
По видам бизнеса:
  • Локальному сервису с малой нагрузкой можно обходиться без внешних DNS и CDN.
  • Стартапу с растущим трафиком сначала нужен DNS, затем CDN.
  • Интернет-магазинам с клиентами сразу по всей РФ, СНГ или миру DNS и CDN нужны на старте — и здесь особенно важна модель pay-as-you-go, чтобы не переплачивать за простаивающие инсталляции.

Симптомы и масштабирование

Для сетевого специалиста есть характерные сигналы.
  • По DNS:
    обрывы, медленный TTL и атаки, из-за которых падает аптайм, — повод брать отдельный DNS у полноценного провайдера, а не у хостинга.
  • По CDN:
    высокий time to first byte, рост задержки доставки при масштабировании и появление международной аудитории.
Критичность зависит от объёма статики: сайт-книжка — не критично, сплошные картинки — важнее, видеохостинг — максимально.

При масштабировании требований становится больше:

  • географически распределённый DNS
  • приземляющий регионы на нужные машины
  • более полноценная DDoS-защита
  • на самом крупном уровне — полное кэширование, защита и оптимизация

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

Собственные DNS и CDN и экономика

О собственных DNS и CDN стоит думать на дальнейших стадиях — у компаний с миллионом пользователей и больше, где pay-as-you-go перестаёт быть выгодным, и у компаний с высокими внутренними требованиями (госпроекты, крупный B2B), где выгоднее самим хранить и обрабатывать всё с точки зрения резервирования, затрат и безопасности. Чаще всего это приходит от бизнеса как требование, которое не выполняется ни одним провайдером.


По затратам

Капитальные — серверы, сети, ПО, оплачиваются условно один раз; у внешнего сервиса это фактически pay-as-you-go — сколько трафика израсходовано, столько и оплачено.
Операционные затраты на администрирование и защиту с внешним сервисом обычно прописаны в SLA. Собственную инфраструктуру масштабировать дорого, но слово «дорого» применимо примерно до ста тысяч пользователей. Когда ежемесячная плата за трафик становится сопоставимой с собственной инсталляцией, стоит думать о переходе на неё.
Финал
Внешние DNS и CDN — не разовое «внедрение по умолчанию», а инструменты, которые подключаются под конкретную проблему и в определённый момент роста. Логика простая: локальному сервису они не нужны; при росте нагрузки и проблемах с доступностью начинают с DNS, а при медленной статике добавляют CDN; бизнесу с изначально глобальной аудиторией — оба сразу и обязательно по модели pay-as-you-go. На больших объёмах и при жёстких внутренних требованиях экономика разворачивается в сторону собственной инфраструктуры.
Ключевой принцип — не наращивать машины и сервисы рефлекторно, а считать экономику и подключать ровно то, что решает текущую проблему. А для аудитории в РФ и СНГ российские провайдеры дают меньшие задержки, устойчивость к санкциям и соответствие требованиям регуляторов — при растущем, хоть и пока не полном, функционале.
В Москве:
РФ (звонок бесплатный):
Наша почта:
GetNet
Остались вопросы?
Группа компаний VoxLink © 2011-2026