AWS SAM y CDK para serverless e IaC

Automatización de despliegues en AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Un YAML de 2.000 líneas

yaml

  • Una Lambda + API Gateway acabó en 2.000 líneas de YAML
  • Cada rol IAM, grupo de logs y permiso detallado
  • Un typo a mitad de una política de permisos
  • SAM y CDK lo reducen a pocas líneas
Automatización de despliegues en AWS

AWS SAM en breve

sam

  • SAM es una extensión de CloudFormation para serverless
  • Tipos de recurso concisos: AWS::Serverless::Function, ::Api
  • La CLI de SAM compila, empaqueta y despliega
  • Las plantillas se transforman en CloudFormation puro
Automatización de despliegues en AWS

Flujo de trabajo de SAM

workflow

  • sam init: crea un proyecto desde una plantilla
  • sam validate: verifica la plantilla antes de compilar
  • sam build: compila y empaqueta el código
  • sam deploy: envía a un stack de CloudFormation
Automatización de despliegues en AWS

AWS CDK en breve

  • Escribe infraestructura en TypeScript, JavaScript, Python, Java, C#, Go
  • Compila a CloudFormation con cdk synth
  • Despliega con cdk deploy; reconstruye en cada cambio de código
  • Mismos conceptos de stack y recursos que CloudFormation

cdk

Automatización de despliegues en AWS

Niveles de constructs en CDK

  • L1: envoltorio 1 a 1 de un recurso de CloudFormation
  • L2: constructs curados con valores por defecto sensatos
  • L3: patrones que agrupan varios recursos
  • Niveles altos = menos líneas, menos control

construct

Automatización de despliegues en AWS

Cuándo usar cada uno

  • CloudFormation puro: control total, amigable para ops
  • SAM: apps serverless puras, vía más rápida
  • CDK: infra compleja, equipos con lenguajes de programación
  • Los tres despliegan de la misma forma por debajo

each

Automatización de despliegues en AWS

Los tres despliegan como CloudFormation

funnel

  • SAM transforma a CloudFormation
  • CDK sintetiza a CloudFormation
  • El stack resultante usa los mismos events, drift, change sets
  • Los rollbacks funcionan igual con cualquier herramienta
Automatización de despliegues en AWS

¡Vamos a practicar!

Automatización de despliegues en AWS

Preparing Video For Download...