Testování a nasazování API

Developing Applications on AWS

Ricardo Sueiras

Principal Technologist

Infrastructure-as-Code pro vývojáře

 

iac

  • Cloud native aplikace se nasazují pomocí Infrastructure-as-Code (IaC).
  • Cloudové zdroje se definují v konfiguračních souborech.
  • Odpadá ruční nastavení v AWS Management Console (clickops).
Developing Applications on AWS

AWS CloudFormation

 

cloudformation

  • Základní IaC služba v AWS.
  • AWS zdroje se definují pomocí šablon v YAML nebo JSON.
Developing Applications on AWS

AWS Cloud Development Kit (CDK)

 

cdk

  • CDK definuje IaC pomocí kódu.
  • Místo YAML nebo JSON píšeš v Pythonu, TypeScriptu nebo Javě.
  • Aplikace se při nasazení syntetizují do šablon CloudFormation.
Developing Applications on AWS

AWS Serverless Application Model (SAM)

  • Rozšiřuje CloudFormation.
  • Zjednodušená syntaxe pro serverless zdroje a API.
  • Funguje jako transformační vrstva.
  • Překládá SAM syntaxi na plné šablony CloudFormation.

 

sam

Developing Applications on AWS

Funkce SAM

  • Automaticky generuje IAM role s nejnižšími oprávněními, s možností doladění.
  • Deployment pipeline definuj jako konfiguraci.
  • Sestav a nasaď pomocí sam build a sam deploy.
  • Chyby v šablonách odhal včas pomocí sam validate.
  • Emuluj Lambda lokálně pomocí sam local start-lambda.
    • Poskytuje trvalý lokální endpoint.

 

sam features

Developing Applications on AWS

Testování se SAM

  • Serverless aplikace sestav, spusť a otestuj lokálně ještě před nasazením.
  • Testuj funkce Lambda a integrace API Gateway.
  • Funkci lokálně zavolej pomocí sam local invoke.
    • Jednorázové volání.
  • Emuluj API Gateway pomocí sam local start-api.

 

testing with sam

Developing Applications on AWS

Unit testy

 

unit tests

  • Kombinuj SAM s unit testy pro ověření chování Lambda.
  • Lokální testování zkracuje vývojové cykly.
  • Používej frameworky jako pytest, JUnit nebo Jest.
Developing Applications on AWS

Testovací workflow

 

test workflow

  • Testovací události generuj pomocí sam local generate-event.
  • Výstupem jsou JSON soubory s událostmi.
  • Spusť lokálně pomocí sam local invoke FunctionName -e event.json.
  • Přidej assertiony frameworku pro ověření odpovědi před nasazením.
Developing Applications on AWS

Mockování AWS služeb

 

mocking tests

  • Kombinuj lokální testování s mockovacími knihovnami jako moto.
  • Pracuj se simulovanými AWS službami bez reálných volání.
  • Zrychluje testování.
  • Snižuje náklady na testování.
  • Ověřuje chybové scénáře jako throttling nebo selhání.
Developing Applications on AWS

Průběžná integrace a průběžné nasazování (CI/CD)

  • SAM aplikace se běžně nasazují přes CI/CD pipeline.
  • Automatizuj sestavení, testování, balíčkování a nasazení.
  • AWS CodeCommit ukládá kód a SAM šablony.
  • AWS CodeBuild spouští testy a sam build.
  • AWS CodePipeline orchestruje celý workflow.

 

cicd

Developing Applications on AWS

CI/CD workflow

  • Ulož zdrojový kód a SAM šablonu do repozitáře.
  • Spusť automatizované testy a validaci.
  • Zabal aplikaci pomocí sam build.
  • Nasaď zdroje pomocí sam deploy.
  • Po nasazení monitoruj pomocí CloudWatch.

 

workflow

Developing Applications on AWS

Řešení problémů s nasazením

  troubleshooting

  • Odstraňování problémů je klíčová provozní dovednost.
  • Časté příčiny selhání nasazení:
  • Problémy s oprávněními IAM.
  • Neplatné šablony SAM nebo CloudFormation.
  • Chybné balíčkování Lambda nebo chybějící závislosti.
  • Nesprávná konfigurace API Gateway.
Developing Applications on AWS

Řešení problémů s nasazením

  troubleshooting

  • SAM nasazení běží interně na CloudFormation.
  • Poskytuje události stacku a automatický rollback.
  • Pomáhá identifikovat selhání nasazení.
  • Provede rollback a obnoví předchozí stav prostředí.
Developing Applications on AWS

Řešení problémů s nasazením

  troubleshooting

  • Problémy řeš pomocí:
  • CloudWatch Logs.
  • Execution logů API Gateway.
  • Logů Lambda.
  • Metrik CloudWatch.
Developing Applications on AWS

Pojďme cvičit!

Developing Applications on AWS

Preparing Video For Download...