Развёртывание in-place и blue/green

Автоматизация развёртывания на AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Сбой в 2 часа ночи

2.00

  • Развёртывание сразу на все серверы прошло неудачно
  • На каждом сервере работает неисправная версия
  • Клиенты видят ошибки в течение часа
  • Откат требует ещё одного полного развёртывания
Автоматизация развёртывания на AWS

Почему важна стратегия развёртывания

2.1

  • Неудачный релиз может полностью остановить сервис
  • Развёртывание сразу на все серверы = быстро, но рискованно
  • Постепенное развёртывание = медленнее, но безопаснее
  • Стратегия определяет масштаб последствий при сбое
Автоматизация развёртывания на AWS

Развёртывание in-place

in-place

  • Развёртывание на тех же инстансах, что обслуживают трафик
  • По одной партии за раз: половина, потом половина, или по одному
  • Проверка состояния каждой партии перед переходом к следующей
  • Дёшево: не нужна дополнительная инфраструктура
Автоматизация развёртывания на AWS

Развёртывание blue/green

  • Blue = текущий рабочий парк серверов
  • Green = новый парк серверов с новой версией
  • Балансировщик нагрузки переключает трафик с blue на green
  • Старый парк серверов остаётся доступным для быстрого отката

blue-green

Автоматизация развёртывания на AWS

Lambda и ECS изначально работают по принципу blue/green

  • Lambda: трафик переключается через указатель на псевдоним версии
  • ECS: трафик переключается через замену набора задач
  • Дублирование парка серверов, как в EC2, не требуется
  • Всё равно нужно выбрать конфигурацию развёртывания

ecs

Автоматизация развёртывания на AWS

Выбор между in-place и blue/green

  • Ограниченный бюджет, низкорисковый патч → in-place
  • Нужен нулевой простой или мгновенный откат → blue/green
  • Один устаревший сервер → in-place — единственный вариант
  • Lambda или ECS → blue/green встроен по умолчанию

decide

Автоматизация развёртывания на AWS

Откат в CodeDeploy

rollback

  • Откат = повторное развёртывание последней успешной ревизии
  • Запускается автоматически при сбое развёртывания
  • Запускается автоматически по сигналу CloudWatch
  • Откат blue/green: переключение балансировщика обратно
Автоматизация развёртывания на AWS

Давайте потренируемся!

Автоматизация развёртывания на AWS

Preparing Video For Download...