API'lerini test etme ve dağıtma

AWS üzerinde Uygulama Geliştirme

Ricardo Sueiras

Principal Technologist

Geliştiriciler için Infrastructure-as-Code

 

iac

  • Bulut yerel uygulamalar Infrastructure-as-Code (IaC) ile dağıtılır.
  • Bulut kaynaklarını yapılandırma dosyalarında tanımla.
  • AWS Management Console'da manuel kurulumdan (clickops) kaçınır.
AWS üzerinde Uygulama Geliştirme

AWS CloudFormation

 

cloudformation

  • AWS'deki temel IaC hizmeti.
  • AWS kaynaklarını YAML veya JSON şablonlarla tanımla.
AWS üzerinde Uygulama Geliştirme

AWS Cloud Development Kit (CDK)

 

cdk

  • CDK, IaC'yi kodla tanımlar.
  • YAML veya JSON yerine Python, TypeScript ya da Java ile yaz.
  • Uygulamalar dağıtımda CloudFormation şablonlarına dönüştürülür.
AWS üzerinde Uygulama Geliştirme

AWS Serverless Application Model (SAM)

  • CloudFormation'ı genişletir.
  • Sunucusuz kaynaklar ve API'ler için basitleştirilmiş sözdizimi.
  • Bir dönüşüm katmanı gibi çalışır.
  • SAM sözdizimini tam CloudFormation şablonlarına çevirir.

 

sam

AWS üzerinde Uygulama Geliştirme

SAM özellikleri

  • En az ayrıcalıklı IAM rolleri otomatik üretir; ince ayara açıktır.
  • Dağıtım hattını yapılandırma olarak tanımla.
  • sam build ve sam deploy ile paketle ve dağıt.
  • sam validate ile şablon hatalarını erkenden yakala.
  • sam local start-lambda ile Lambda'yı yerelde taklit et.
    • Kalıcı bir yerel uç nokta sağlar

 

sam features

AWS üzerinde Uygulama Geliştirme

SAM ile test

  • Dağıtmadan önce sunucusuz uygulamaları yerelde derle, çağır ve test et.
  • Lambda fonksiyonlarını ve API Gateway entegrasyonlarını test et.
  • sam local invoke ile bir fonksiyonu yerelde çağır.
    • Tek seferlik çağrı
  • sam local start-api ile API Gateway'i taklit et.

 

testing with sam

AWS üzerinde Uygulama Geliştirme

Birim testleri

 

unit tests

  • Lambda davranışını doğrulamak için SAM'i birim testleriyle kullan.
  • Yerel test geliştirme döngülerini hızlandırır.
  • pytest, JUnit veya Jest gibi çerçevelerle eşleştir.
AWS üzerinde Uygulama Geliştirme

Test iş akışı

 

test workflow

  • sam local generate-event ile test olayları üret.
  • JSON olay dosyaları çıkarır.
  • sam local invoke FunctionName -e event.json ile yerelde çağır.
  • Dağıtmadan önce yanıtı doğrulamak için çerçeve iddiaları ekle.
AWS üzerinde Uygulama Geliştirme

AWS hizmetlerini sahtelemek (mock)

 

mocking tests

  • Yerel testleri moto gibi sahteleme kütüphaneleriyle birleştir.
  • Gerçek çağrı olmadan simüle AWS hizmetleriyle etkileş.
  • Test hızını artırır.
  • Test maliyetlerini düşürür.
  • Throttling veya hatalar gibi senaryoları doğrular.
AWS üzerinde Uygulama Geliştirme

Sürekli entegrasyon ve sürekli dağıtım (CI/CD)

  • SAM uygulamaları genelde CI/CD hatlarıyla dağıtılır.
  • Derleme, test, paketleme ve dağıtımı otomatikleştir.
  • AWS CodeCommit kodu ve SAM şablonlarını saklar.
  • AWS CodeBuild testleri ve sam buildi çalıştırır.
  • AWS CodePipeline iş akışını orkestre eder.

 

cicd

AWS üzerinde Uygulama Geliştirme

CI/CD iş akışı

  • Kaynak kodu ve SAM şablonunu bir depoya işle.
  • Otomatik test ve doğrulamayı çalıştır.
  • sam build ile uygulamayı paketle.
  • sam deploy ile kaynakları dağıt.
  • Dağıtımdan sonra CloudWatch ile izle.

 

workflow

AWS üzerinde Uygulama Geliştirme

Dağıtımlarda sorun giderme

  troubleshooting

  • Sorun giderme önemli bir operasyon becerisidir.
  • Yaygın dağıtım hataları:
  • IAM izin sorunları.
  • Geçersiz SAM veya CloudFormation şablonları.
  • Başarısız Lambda paketleme veya eksik bağımlılıklar.
  • Hatalı API Gateway yapılandırmaları.
AWS üzerinde Uygulama Geliştirme

Dağıtımlarda sorun giderme

  troubleshooting

  • SAM dağıtımları perde arkasında CloudFormation üzerinde çalışır.
  • Yığın olayları ve otomatik geri alma sağlar.
  • Dağıtım hatalarını belirlemeye yardımcı olur.
  • Önceki ortam durumuna geri döndürür.
AWS üzerinde Uygulama Geliştirme

Dağıtımlarda sorun giderme

  troubleshooting

  • Şu araçlarla sorun gider:
  • CloudWatch Logs.
  • API Gateway yürütme günlükleri.
  • Lambda günlükleri.
  • CloudWatch metrikleri.
AWS üzerinde Uygulama Geliştirme

Hadi pratik yapalım!

AWS üzerinde Uygulama Geliştirme

Preparing Video For Download...