Solucionando problemas em aplicações em produção

Implantando Aplicações na AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Task timed out

  • Uma função falha, mas só às vezes
  • O log diz "Task timed out"
  • A assinatura aponta a causa real

Um cronômetro ao lado de uma linha de log de erro mostrando uma tarefa Lambda que atingiu timeout

Implantando Aplicações na AWS

Assinaturas comuns de falha no Lambda

Grade 2x2 de assinaturas de falha do Lambda: Timeout com log task-timed-out, Throttled com TooManyRequestsException, Access Denied com AccessDeniedException e Out of Memory com erro signal-killed

  • Timeout: "Task timed out after N seconds"
  • Throttle: TooManyRequestsException
  • Negado pelo IAM: AccessDenied, not authorized
  • Falta de memória: runtime encerrado no meio da execução
Implantando Aplicações na AWS

Primeira reação a uma função com falha

  • Leia a mensagem de erro antes de mudar algo
  • Compare com uma assinatura conhecida
  • Verifique a latência downstream para timeouts
  • Mude uma coisa e teste de novo

Ciclo de decisão de troubleshooting: ler a mensagem de erro, comparar com assinatura conhecida, checar latência downstream, mudar uma coisa e testar de novo

Implantando Aplicações na AWS

CloudWatch Logs Insights

Uma consulta do Logs Insights usa filter para filtrar e stats para agregar. Aqui, ela conta erros por minuto:

fields @timestamp, @message
| filter level = "ERROR"
| stats count() as errors by bin(1m)
| sort errors desc
Implantando Aplicações na AWS

Depurando falhas de integração pelos dois lados

  • Falhas costumam ocorrer entre serviços
  • Leia o log de quem chama e de quem é chamado
  • Relacione por request ID ou trace ID
  • A lacuna entre eles revela a quebra

Logs do chamador e do chamado alinhados lado a lado por request ID, com uma lacuna entre eles marcada como o ponto de falha da integração onde a requisição para

Implantando Aplicações na AWS

Health checks e readiness probes

Balanceador de carga roteando tráfego para alvos saudáveis com marcas verdes, e um alvo com falha removido da rotação após falhas sucessivas de health check

  • Health check: a instância está ativa e respondendo?
  • Balanceadores roteiam só para alvos saudáveis
  • Readiness: já está pronta para receber tráfego?
  • Falhas tiram o alvo da rotação
Implantando Aplicações na AWS

Um playbook de troubleshooting

  • Ler o erro e casar a assinatura
  • Consultar logs com Logs Insights para delimitar
  • Correlacionar os dois lados por request ou trace ID
  • Mudar uma coisa e verificar

Manual de troubleshooting em quatro passos: ler o erro e casar a assinatura, consultar logs com Insights para delimitar, correlacionar os dois lados por trace ID, mudar uma coisa e verificar

Implantando Aplicações na AWS

Vamos praticar!

Implantando Aplicações na AWS

Preparing Video For Download...