Управление окружениями и утверждёнными версиями

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

Dunieski Otano

Amazon Web Services Solutions Architect

Один код, три окружения

одинаковый код

  • Продвижение версии Lambda из staging в prod
  • Тот же артефакт, без пересборки
  • Один вызов API обновляет алиас prod — код не меняется
  • Это принцип «собрать один раз, развернуть много раз»
Автоматизация развёртывания на AWS

Утверждённые версии по каждому сервису

версии

  • Lambda: алиасы указывают на версии функций
  • ECR + ECS: теги образов + ревизии определений задач
  • API Gateway: этапы с развёртываниями
  • S3: версии объектов в бакетах с включённым версионированием
Автоматизация развёртывания на AWS

Как работают алиасы Lambda

три версии

  • Версия — это неизменяемый снимок функции
  • Алиас — это именованный указатель на версию
  • Чтобы продвинуть версию, обновите алиас
  • Алиасы поддерживают взвешенную маршрутизацию для canary-релизов
Автоматизация развёртывания на AWS

Теги ECR и определения задач ECS

  • Образы ECR неизменяемы для каждого digest
  • Тег — это перемещаемая метка на digest
  • Определения задач ECS ссылаются на image:tag или @digest
  • Для production фиксируйте по digest, чтобы закрепить точную версию

ecr

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

Этапы API Gateway кратко

  • Этап — это развёртывание API
  • У каждого этапа есть свой URL и история развёртываний
  • Чтобы продвинуть версию, разверните API на следующем этапе
  • Переменные этапа хранят значения времени выполнения для каждого окружения

api-2

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

Продвижение версии

  • Соберите артефакт один раз
  • Проверьте его в dev, затем в staging
  • Обновите алиас или тег prod — без пересборки
  • Один и тот же артефакт работает во всех окружениях

продвижение

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

Отдельное хранение конфигурации

разделение

  • Код остаётся неизменным во всех окружениях
  • Конфигурация содержит различия между dev и prod
  • Переменные этапа, переменные окружения, Parameter Store, Secrets Manager
  • Никогда не прописывайте значения окружения жёстко в артефакте
Автоматизация развёртывания на AWS

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

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

Preparing Video For Download...