Domain IP Lookup

Постепенное переключение лучше мгновенного

Blue

100% трафика

Взвешенное разделение

95/5, затем 50/50

Green

100% трафика

Инфраструктура и эксплуатация

Blue-green-развёртывания и переключение DNS

3 мин чтения

При blue-green-развёртывании одновременно работают две полноценные производственные среды: одна боевая («синяя»), другая простаивающая, но полностью развёрнутая и готовая («зелёная»). Трафик переключается между ними одним быстрым действием, а не постепенным обновлением. Один из распространённых способов выполнить такое переключение, особенно между разной инфраструктурой или провайдерами, — изменение DNS: после проверки работоспособности зелёной среды запись домена обновляют так, чтобы она указывала на её адрес.

Где простая схема перестаёт работать

Переключение через DNS не мгновенно, в отличие от смены целевой группы балансировщика нагрузки. Каждый резолвер, закешировавший старый (синий) ответ, продолжает его отдавать, пока не истечёт TTL этой записи. Это значит, что в течение времени, пропорционального TTL, часть трафика всё ещё попадает в ту среду, от которой вы только что пытались отключиться. При TTL в один час это потенциально час, в течение которого трафик делится между обеими средами, прежде чем переключение завершится везде.

  • Уменьшите TTL заблаговременно до запланированного переключения, в идеале минимум за один полный период прежнего TTL, чтобы к моменту переключения все резолверы уже закешировали запись с новым, более коротким TTL.
  • Держите старую (синюю) среду полностью работающей и исправной минимум в течение периода TTL после переключения, а не выводите её из эксплуатации сразу: в этот период она всё ещё получает реальный трафик.
  • Проверяйте переключение прямым запросом к DNS, а не только по журналам приложения: так вы убедитесь, что сама запись изменилась, независимо от того, сколько трафика успело за ней последовать.
  • Возвращайте TTL к обычному значению, только когда уверены, что переключение завершено и стабильно.

Постепенная альтернатива: взвешенный DNS

Вместо того чтобы переключать все резолверы сразу и надеяться, что зелёная среда сразу выдержит полную производственную нагрузку, несколько DNS-провайдеров поддерживают взвешенные (или процентные) политики маршрутизации: 95% ответов указывают на синюю среду, 5% на зелёную, и это распределение постепенно смещается (80/20, 50/50 и далее) по мере роста уверенности в новой среде.

Жёсткое переключениеПостепенный запуск с весами
Масштаб последствий проблемы100% трафика сразуНебольшая управляемая доля
Скорость откатаБыстрый, но разворачивает всё сразуБыстрый и обратимый мелкими шагами
Сложность настройкиПросто: меняется одна записьНужен провайдер с поддержкой взвешенных записей
Лучше всего подходитНебольшие, хорошо протестированные измененияОтветственные изменения критичной инфраструктуры

Вы меняете чистое и простое переключение на возможность заметить проблему, пока она затрагивает лишь небольшую долю трафика, и за секунды вернуть 100% на синюю среду, если зелёная окажется не готова, вместо того чтобы откатывать полное переключение под давлением.

Одинаковая проверка для любого подхода

Какая бы стратегия ни использовалась, шаг проверки один и тот же: многократно разрешайте домен, причём не из одной точки наблюдения, и убедитесь, что реально наблюдаемое распределение совпадает с настроенным. Взвешенная политика, которая должна была отправлять на зелёную среду 10% трафика, а на деле отправляет 40% (из-за неверно настроенного веса или потому что некоторые резолверы кешируют ответ и перебрасывают жребий реже, чем ожидалось), — это именно тот дрейф, который можно заметить, только проверяя реальные разрешаемые ответы, а не доверяя панели DNS-провайдера в том, что она идеально отражает действительность.

Нужно проверить публичные DNS-адреса домена? Воспользуйтесь инструментом Domain IP Lookup.

Читайте также

Один IP — один сервер, или один IP — много

Unicast

Один IP — ровно один сервер

Anycast

Один IP, анонсируется из многих точек

Инфраструктура и эксплуатация

Anycast DNS: как один IP работает сразу в десятках мест

Один и тот же IP-адрес, анонсируемый сразу из десятков точек: так anycast помогает DNS-провайдерам оставаться быстрыми и отказоустойчивыми по всему миру.

3 мин чтения

Почему проверка показывает CDN, а не исходный сервер

Посетитель

запрашивает домен

Edge-сервер CDN

104.21.x.x

именно его возвращает DNS

Исходный сервер

реальный IP не раскрывается

Инфраструктура и эксплуатация

Как CDN используют DNS для маршрутизации трафика по миру

Главная работа сети доставки контента происходит на уровне DNS, ещё до того, как запрошен хотя бы один байт самого контента.

3 мин чтения

Одно имя хоста — несколько записей A

1-й ответ

93.184.216.34

2-й ответ

93.184.216.35

3-й ответ

93.184.216.36

Резолвер возвращает все записи, обычно с ротацией порядка

Инфраструктура и эксплуатация

DNS round-robin: как распределить трафик между IP-адресами

Как DNS round-robin возвращает несколько адресов, что он может и чего не может для распределения нагрузки и как кеширование влияет на наблюдаемые результаты.

4 мин чтения