Создание конвейеров с помощью CodePipeline

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

Dunieski Otano

Amazon Web Services Solutions Architect

Многоэтапные конвейеры

video2-preview-multi-stage-pipeline-with-artifacts-approval-eventbridge.png

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

Структура конвейера CodePipeline

  • Конвейер — это последовательность этапов
  • Каждый этап содержит группы действий с действиями
  • Действия создают и используют артефакты (хранятся в S3)
  • Следующий этап использует артефакты как входные данные

codepipeline-anatomy-stages-actions-artifacts.png

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

Связь этапов Source, Build и Deploy

  • Этап Source: CodeCommit обнаруживает push и создаёт исходный артефакт
  • Этап Build: CodeBuild получает исходный код и создаёт артефакт сборки
  • Этап Deploy: CodeDeploy получает артефакт сборки и разворачивает его на целевой платформе
  • Конвейер выполняется полностью при каждом push кода

3-stage-pipeline

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

Действия ручного одобрения

  • Ручное одобрение: контроль человеком между этапами
  • Конвейер приостанавливается, пока кто-то не одобрит или не отклонит действие
  • Часто используется между staging и production
  • Статус показывает «Waiting for approval»; поддерживаются уведомления SNS

manual-approval-gate-team-lead-reviewing-pipeline.png

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

Переходы между этапами и управление конвейером

  • Включение/отключение переходов между этапами
    • Отключите переход, чтобы приостановить конвейер в нужной точке
  • Повтор неудачных действий без перезапуска конвейера
  • Запуск изменения вручную для отправки конкретной ревизии

 

codepipeline-stage-transition-controls-retry-release.png

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

Уведомления о событиях конвейера

codepipeline-anatomy-stages-actions-artifacts.png

  • CodePipeline отправляет события в Amazon EventBridge
  • Среди событий: запуск конвейера, успешное завершение этапа, ошибка этапа
  • Создавайте правила EventBridge для маршрутизации событий к целям
    • темы SNS для уведомлений по email/SMS
    • функции Lambda для собственной автоматизации
  • Детали события включают имя конвейера, имя этапа и причину ошибки
Автоматизация развёртывания на AWS

Дизайн конвейера для нескольких сред

  • Один конвейер разворачивает приложение в нескольких средах
  • Соберите один раз, затем продвигайте: Dev -> Staging -> Approval -> Prod
  • Один и тот же артефакт проходит через все среды
  • То, что вы протестировали, — именно то, что разворачивается

multi-environment-pipeline-dev-staging-approval-prod.png

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

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

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

Preparing Video For Download...