AWS SAM e CDK per serverless e IaC

Automatizzare i deployment su AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Un file YAML da 2.000 righe

yaml

  • Una Lambda + API Gateway è diventata 2.000 righe di YAML
  • Ogni ruolo IAM, log group e autorizzazione esplicitati
  • Un refuso a metà di una policy di autorizzazioni
  • SAM e CDK riducono tutto a poche righe
Automatizzare i deployment su AWS

AWS SAM in breve

sam

  • SAM è un CloudFormation extension per il serverless
  • Tipi di risorsa compatti: AWS::Serverless::Function, ::Api
  • La SAM CLI builda, crea i pacchetti e deploya
  • I template si trasformano in plain CloudFormation
Automatizzare i deployment su AWS

Il workflow di SAM

workflow

  • sam init: crea l'impalcatura da un template
  • sam validate: controlla il template prima del build
  • sam build: compila e impacchetta il codice
  • sam deploy: distribuisce su uno stack CloudFormation
Automatizzare i deployment su AWS

AWS CDK in breve

  • Scrivi l'infrastruttura in TypeScript, JavaScript, Python, Java, C#, Go
  • Compila in CloudFormation con cdk synth
  • Distribuisci con cdk deploy; ricompila a ogni modifica del codice
  • Stessi concetti di stack e risorse di CloudFormation

cdk

Automatizzare i deployment su AWS

Livelli dei construct CDK

  • L1: wrapper 1-a-1 di una risorsa CloudFormation
  • L2: construct curati con default sensati
  • L3: pattern che raggruppano più risorse
  • Livelli più alti = meno righe, meno controllo

construct

Automatizzare i deployment su AWS

Quando usare ciascuno

  • CloudFormation grezzo: pieno controllo, adatto alle ops
  • SAM: app puramente serverless, percorso più rapido
  • CDK: infrastruttura complessa, team con linguaggi di programmazione
  • Tutti e tre distribuiscono allo stesso modo sotto il cofano

each

Automatizzare i deployment su AWS

Tutti e tre distribuiscono come CloudFormation

funnel

  • SAM transforma in CloudFormation
  • CDK sintetizza (synth) in CloudFormation
  • Lo stack risultante usa gli stessi eventi, drift, change set
  • I rollback funzionano allo stesso modo con qualsiasi toolkit
Automatizzare i deployment su AWS

Esercitiamoci!

Automatizzare i deployment su AWS

Preparing Video For Download...