Sunucusuz ve IaC için AWS SAM ve CDK

AWS üzerinde Dağıtımları Otomatikleştirme

Dunieski Otano

Amazon Web Services Solutions Architect

2.000 satırlık bir YAML dosyası

yaml

  • Tek Lambda + API Gateway, 2.000 satır YAML'a dönüştü
  • Her IAM rolü, günlük grubu ve izin tek tek yazıldı
  • Bir yazım hatası izin politikasının ortasında
  • SAM ve CDK bunu birkaç satıra indirir
AWS üzerinde Dağıtımları Otomatikleştirme

AWS SAM kısa bakış

sam

  • SAM, sunucusuz için bir CloudFormation uzantısıdır
  • Özlü kaynak tipleri: AWS::Serverless::Function, ::Api
  • SAM CLI derler, paketler ve dağıtır
  • Şablonlar düz CloudFormation'a dönüşür
AWS üzerinde Dağıtımları Otomatikleştirme

SAM iş akışı

workflow

  • sam init: bir şablondan proje iskeleti oluştur
  • sam validate: derlemeden önce şablonu kontrol et
  • sam build: kodu derle ve paketle
  • sam deploy: bir CloudFormation yığınına gönder
AWS üzerinde Dağıtımları Otomatikleştirme

AWS CDK kısa bakış

  • Altyapıyı TypeScript, JavaScript, Python, Java, C#, Go ile yaz
  • cdk synth ile CloudFormation'a derle
  • cdk deploy ile dağıt; her kod değişiminde yeniden kurar
  • CloudFormation ile aynı yığın ve kaynak kavramları

cdk

AWS üzerinde Dağıtımları Otomatikleştirme

CDK yapı seviyeleri

  • L1: CloudFormation kaynağının bire bir sarmalayıcısı
  • L2: mantıklı varsayılanlara sahip seçkili yapılar
  • L3: birden çok kaynağı paketleyen desenler
  • Seviye yükseldikçe = daha az satır, daha az kontrol

construct

AWS üzerinde Dağıtımları Otomatikleştirme

Hangisini ne zaman kullanmalı

  • Ham CloudFormation: tam kontrol, operasyon dostu
  • SAM: saf sunucusuz uygulamalar, en hızlı yol
  • CDK: karmaşık altyapı, programlama dili ekipleri
  • Üçü de altta aynı şekilde dağıtır

each

AWS üzerinde Dağıtımları Otomatikleştirme

Üçü de CloudFormation olarak dağıtır

funnel

  • SAM, CloudFormation'a dönüşür
  • CDK, CloudFormation'a sentezler
  • Ortaya çıkan yığın aynı olaylar, sapmalar, değişiklik setlerini kullanır
  • Geri almalar, araçtan bağımsız olarak aynı çalışır
AWS üzerinde Dağıtımları Otomatikleştirme

Hadi pratik yapalım!

AWS üzerinde Dağıtımları Otomatikleştirme

Preparing Video For Download...