AWS SAM a CDK pro serverless a IaC

Automatizace deploymentů na AWS

Dunieski Otano

Amazon Web Services Solutions Architect

YAML soubor o 2 000 řádcích

yaml

  • Jedna funkce Lambda + API Gateway narostla na 2 000 řádků YAML
  • Každá IAM role, log group a oprávnění popsané do detailu
  • Překlep se schová uprostřed politiky oprávnění
  • SAM a CDK to zredukují na pár řádků
Automatizace deploymentů na AWS

AWS SAM v kostce

sam

  • SAM je rozšíření CloudFormation pro serverless
  • Stručné typy zdrojů: AWS::Serverless::Function, ::Api
  • SAM CLI sestavuje, balí a nasazuje
  • Šablony se transformují na čistý CloudFormation
Automatizace deploymentů na AWS

Pracovní postup v SAM

pracovní postup

  • sam init: vytvoří projekt ze šablony
  • sam validate: zkontroluje šablonu před sestavením
  • sam build: zkompiluje a zabalí kód
  • sam deploy: nasadí do zásobníku CloudFormation
Automatizace deploymentů na AWS

AWS CDK v kostce

  • Piš infrastrukturu v TypeScriptu, JavaScriptu, Pythonu, Javě, C# nebo Go
  • Zkompiluj ji do CloudFormation pomocí cdk synth
  • Nasaď pomocí cdk deploy; při každé změně kódu se vše znovu sestaví
  • Stejné koncepty zásobníků a zdrojů jako v CloudFormation

cdk

Automatizace deploymentů na AWS

Úrovně konstruktů v CDK

  • L1: přímý obal zdroje CloudFormation v poměru 1:1
  • L2: promyšlené konstrukty s rozumnými výchozími hodnotami
  • L3: vzory spojující více zdrojů dohromady
  • Vyšší úroveň = méně řádků, méně kontroly

konstrukt

Automatizace deploymentů na AWS

Kdy použít co

  • Čistý CloudFormation: plná kontrola, vhodné pro provoz
  • SAM: čistě serverless aplikace, nejrychlejší cesta
  • CDK: složitá infrastruktura, týmy pracující v programovacích jazycích
  • Všechny tři nasazují stejným způsobem pod kapotou

srovnání

Automatizace deploymentů na AWS

Všechny tři nasazují jako CloudFormation

trychtýř

  • SAM se transformuje na CloudFormation
  • CDK se syntetizuje do CloudFormation
  • Výsledný zásobník používá stejné události, drift a change sets
  • Rollbacky fungují stejně bez ohledu na nástroj
Automatizace deploymentů na AWS

Pojďme cvičit!

Automatizace deploymentů na AWS

Preparing Video For Download...