Інтеграція IaC у конвеєри CI/CD

Автоматизація розгортань в AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Спершу код, інфраструктура потім

code-first

  • Код розгортає CodePipeline; інфраструктуру оновлюють вручну
  • Деви масштабують Lambda; опси змінюють розмір черги SQS
  • Дрейф між кодом і інфрою спричиняє збої
  • Підключіть CloudFormation до того ж конвеєра
Автоматизація розгортань в AWS

CloudFormation як дія в конвеєрі

pipeline-action

  • CodePipeline підтримує дію розгортання CloudFormation
  • Конвеєр передає до дії артефакт шаблону
  • Режими: CREATE_UPDATE, DELETE_ONLY, REPLACE_ON_FAILURE, CHANGE_SET_REPLACE / EXECUTE
  • Запускається разом із діями source, build і app-deploy
Автоматизація розгортань в AWS

Типовий наскрізний конвеєр

typical

  • Source: push у Git запускає конвеєр
  • Build: створити артефакт шаблону + застосунку
  • Deploy infra: CloudFormation створює або оновлює стек
  • Deploy app: CodeDeploy постачає нову версію
Автоматизація розгортань в AWS

Автовідкат при збої стека

  • Невдалі оновлення автоматично відкочуються до останнього робочого стану
  • Етап конвеєра провалюється, зупиняючи наступні етапи
  • Сповіщення про збої з Розділу 1 спрацьовують автоматично

automatic

Автоматизація розгортань в AWS

Вкладені стеки для модульних шаблонів

  • Вкладений стек оголошують як тип AWS::CloudFormation::Stack
  • Розбийте шаблон на 2 000 рядків на повторно вживані модулі
  • Батьківський стек передає параметри та читає виходи
  • Кожен модуль розгортається незалежно всередині батьківського

nested

Автоматизація розгортань в AWS

StackSets для мультиакаунтів і мульти-регіонів

  • StackSet розгортає один шаблон у багатьох акаунтах і регіонах
  • Корисно для базових політик безпеки, обмежень, спільної інфри
  • Додавайте або вилучайте екземпляри стеків без переписування шаблону
  • Централізоване керування, локальне розгортання

stackset

Автоматизація розгортань в AWS

Обрати правильну форму

right-shape

  • Один стек: невеликий застосунок, одне середовище
  • Вкладені стеки: великий шаблон, модульні компоненти
  • StackSets: той самий шаблон, багато акаунтів і регіонів
  • Усі три добре працюють із CodePipeline
Автоматизація розгортань в AWS

Давайте потренуємось!

Автоматизація розгортань в AWS

Preparing Video For Download...