Ladění nasazených aplikací

Nasazování aplikací na AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Vypršel časový limit úlohy

  • Funkce občas selhává
  • Log hlásí „Task timed out"
  • Signatura odhalí skutečnou příčinu

Stopky vedle řádku v logu chyb zobrazující Lambda úlohu, které vypršel čas

Nasazování aplikací na AWS

Typické signatury selhání Lambda

Mřížka 2×2 se signaturami selhání Lambda: Timeout s logem task-timed-out, Throttled s TooManyRequestsException, Access Denied s AccessDeniedException a Out of Memory s chybou signal-killed

  • Timeout: „Task timed out after N seconds"
  • Throttle: TooManyRequestsException
  • Zamítnutí IAM: AccessDenied, not authorized
  • Nedostatek paměti: runtime ukončen při běhu
Nasazování aplikací na AWS

Jak reagovat na selhání funkce

  • Nejdřív si přečti chybovou zprávu
  • Porovnej ji se známou signaturou
  • U timeoutů zkontroluj latenci downstream volání
  • Změň jednu věc, pak otestuj znovu

Smyčka ladění: přečti chybovou zprávu, porovnej se známou signaturou, zkontroluj downstream latenci, změň jednu věc, otestuj znovu

Nasazování aplikací na AWS

CloudWatch Logs Insights

Dotaz v Logs Insights používá filter pro filtrování a stats pro agregaci. Tento příklad počítá chyby za minutu:

fields @timestamp, @message
| filter level = "ERROR"
| stats count() as errors by bin(1m)
| sort errors desc
Nasazování aplikací na AWS

Ladění integračních chyb z obou stran

  • Chyby se často skrývají mezi službami
  • Čti log volající i volané služby
  • Páruj záznamy podle request ID nebo trace ID
  • Mezera mezi nimi odhalí místo selhání

Logy volající a volané služby řazené vedle sebe podle request ID s mezerou označující místo přerušení integrace

Nasazování aplikací na AWS

Health checky a readiness proby

Load balancer směrující provoz na zdravé targety se zelenými fajfkami a selhávající target odebraný z rotace po opakovaných neúspěšných health checích

  • Health check: běží instance a obsluhuje požadavky?
  • Load balancer směruje provoz jen na zdravé targety
  • Readiness: je instance připravena přijímat provoz?
  • Neúspěšné checky odeberou target z rotace
Nasazování aplikací na AWS

Postup při ladění

  • Přečti chybu a porovnej signaturu
  • Dotazuj logy přes Logs Insights
  • Koreluj obě strany podle request nebo trace ID
  • Změň jednu věc a ověř výsledek

Čtyřkrokový postup ladění: přečti chybu a porovnej signaturu, dotazuj logy přes Insights, koreluj obě strany podle trace ID, změň jednu věc a ověř

Nasazování aplikací na AWS

Pojďme cvičit!

Nasazování aplikací na AWS

Preparing Video For Download...