AWS SAM en CDK voor serverless en IaC

Deployments automatiseren op AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Een YAML-bestand van 2.000 regels

yaml

  • Eén Lambda + API Gateway groeide uit tot 2.000 regels YAML
  • Elke IAM-rol, loggroep en permissie uitgeschreven
  • Een typo halverwege een permissiebeleid
  • SAM en CDK vouwen dit samen tot een paar regels
Deployments automatiseren op AWS

AWS SAM in één oogopslag

sam

  • SAM is een CloudFormation-extensie voor serverless
  • Bondige resourcetypes: AWS::Serverless::Function, ::Api
  • De SAM CLI bouwt, verpakt en deployt
  • Templates transformeren naar plain CloudFormation
Deployments automatiseren op AWS

De SAM-workflow

workflow

  • sam init: maak een project vanaf een template
  • sam validate: check de template vóór het bouwen
  • sam build: compileer en verpak de code
  • sam deploy: lever aan een CloudFormation-stack
Deployments automatiseren op AWS

AWS CDK in één oogopslag

  • Schrijf infrastructuur in TypeScript, JavaScript, Python, Java, C#, Go
  • Compileer naar CloudFormation met cdk synth
  • Deploy met cdk deploy; bouwt opnieuw bij elke codewijziging
  • Zelfde stack- en resourceconcepten als CloudFormation

cdk

Deployments automatiseren op AWS

CDK-constructniveaus

  • L1: een 1-op-1 wrapper van een CloudFormation-resource
  • L2: samengestelde constructs met verstandige defaults
  • L3: patronen die meerdere resources bundelen
  • Hogere niveaus = minder regels, minder controle

construct

Deployments automatiseren op AWS

Wanneer gebruik je wat

  • Ruwe CloudFormation: volledige controle, ops-vriendelijk
  • SAM: pure serverless apps, snelste route
  • CDK: complexe infra, programmeertaalteams
  • Alle drie deployen op dezelfde manier onder water

each

Deployments automatiseren op AWS

Alle drie deployen als CloudFormation

funnel

  • SAM transformeert naar CloudFormation
  • CDK synthetiseert naar CloudFormation
  • De resulterende stack gebruikt dezelfde events, drift, change sets
  • Rollbacks werken hetzelfde, ongeacht toolkit
Deployments automatiseren op AWS

Laten we oefenen!

Deployments automatiseren op AWS

Preparing Video For Download...