Integrarea IaC în pipeline-uri CI/CD

Automatizarea implementărilor pe AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Cod mai întâi, infrastructură mai târziu

cod-întâi

  • Codul se implementează prin CodePipeline; infrastructura se actualizează manual
  • Dezvoltatorii scalează Lambda; echipa de operare redimensionează coada SQS
  • Diferențele dintre cod și infrastructură provoacă întreruperi
  • Integrează CloudFormation în același pipeline
Automatizarea implementărilor pe AWS

CloudFormation ca acțiune în pipeline

acțiune-pipeline

  • CodePipeline acceptă o acțiune de implementare CloudFormation
  • Pipeline-ul transmite acțiunii un artefact șablon
  • Moduri: CREATE_UPDATE, DELETE_ONLY, REPLACE_ON_FAILURE, CHANGE_SET_REPLACE / EXECUTE
  • Rulează alături de acțiunile de sursă, build și implementare a aplicației
Automatizarea implementărilor pe AWS

Un pipeline tipic end-to-end

tipic

  • Sursă: un push Git declanșează pipeline-ul
  • Build: produce un artefact de tip șablon + aplicație
  • Implementare infrastructură: CloudFormation creează sau actualizează stack-ul
  • Implementare aplicație: CodeDeploy livrează noua versiune
Automatizarea implementărilor pe AWS

Anulare automată la eșecul stack-ului

  • Actualizările nereușite se anulează automat la ultima stare validă
  • Etapa pipeline-ului eșuează, blocând etapele următoare
  • Alertele de eșec configurate în Capitolul 1 se declanșează automat

automat

Automatizarea implementărilor pe AWS

Stack-uri imbricate pentru șabloane modulare

  • Un stack imbricat este declarat ca tip AWS::CloudFormation::Stack
  • Împarte un șablon de 2.000 de linii în module reutilizabile
  • Stack-ul părinte transmite parametri și citește rezultatele
  • Fiecare modul se implementează independent în interiorul părintelui

imbricat

Automatizarea implementărilor pe AWS

StackSets pentru mai multe conturi și regiuni

  • Un StackSet implementează un singur șablon în mai multe conturi și regiuni
  • Util pentru configurări de securitate de bază, guardrails, infrastructură partajată
  • Adaugă sau elimină instanțe de stack fără să rescrii șablonul
  • Gestionat central, implementat local

stackset

Automatizarea implementărilor pe AWS

Alegerea formei potrivite

forma-potrivită

  • Stack unic: aplicație mică, un singur mediu
  • Stack-uri imbricate: șablon mare, componente modulare
  • StackSets: același șablon, mai multe conturi și regiuni
  • Toate trei funcționează bine cu CodePipeline
Automatizarea implementărilor pe AWS

Hai să exersăm!

Automatizarea implementărilor pe AWS

Preparing Video For Download...