Integrare IaC nelle pipeline CI/CD

Automatizzare i deployment su AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Prima il codice, poi l'infrastruttura

code-first

  • Il codice viene distribuito con CodePipeline; l'infrastruttura aggiornata a mano
  • I dev scalano Lambda; gli ops ridimensionano la coda SQS
  • Il disallineamento tra codice e infra causa interruzioni
  • Collega CloudFormation alla stessa pipeline
Automatizzare i deployment su AWS

CloudFormation come azione di pipeline

pipeline-action

  • CodePipeline supporta un'azione di deploy CloudFormation
  • La pipeline passa un artifact del template all'azione
  • Modalità: CREATE_UPDATE, DELETE_ONLY, REPLACE_ON_FAILURE, CHANGE_SET_REPLACE / EXECUTE
  • Esegui insieme ad azioni di source, build e deploy app
Automatizzare i deployment su AWS

Una tipica pipeline end-to-end

typical

  • Source: un push Git attiva la pipeline
  • Build: produce un template + artifact dell'app
  • Deploy infra: CloudFormation crea o aggiorna lo stack
  • Deploy app: CodeDeploy distribuisce la nuova versione
Automatizzare i deployment su AWS

Rollback automatico in caso di errore dello stack

  • Gli update falliti fanno rollback automatico all'ultimo stato valido
  • Lo stage della pipeline fallisce e blocca i successivi
  • Gli avvisi di errore collegati nel Capitolo 1 si attivano automaticamente

automatic

Automatizzare i deployment su AWS

Stack annidati per template modulari

  • Uno stack annidato è dichiarato come tipo AWS::CloudFormation::Stack
  • Suddividi un template da 2.000 righe in moduli riutilizzabili
  • Lo stack padre passa parametri e legge output
  • Ogni modulo viene distribuito in modo indipendente dentro il padre

nested

Automatizzare i deployment su AWS

StackSet per multi-account e multi-region

  • Uno StackSet distribuisce un template su molti account e region
  • Utile per security baseline, guardrail, infra condivisa
  • Aggiungi o rimuovi istanze di stack senza riscrivere il template
  • Gestito centralmente, distribuito localmente

stackset

Automatizzare i deployment su AWS

Scegliere la forma giusta

right-shape

  • Stack singolo: app piccola, un ambiente
  • Stack annidati: template grande, componenti modulari
  • StackSet: stesso template, molti account e region
  • Tutti e tre integrati bene con CodePipeline
Automatizzare i deployment su AWS

Esercitiamoci!

Automatizzare i deployment su AWS

Preparing Video For Download...