Product

Serviço de autenticação do Mailgun: post mortem de julho de 2018

Uma análise do tempo de inatividade do serviço de autenticação em julho de 2018. Leia mais...
Imagem para Serviço de autenticação do Mailgun: post mortem de julho de 2018

Esta publicação foi feita originalmente em 18 de julho de 2018.

Coisa de lenda urbana? Uma coincidência estranha? Talvez. O que sabemos é que esta última sexta-feira 13 não foi um bom dia para nós.

Alguns dos nossos clientes foram impactados pelo tempo de inatividade, e tomamos uma ação imediata para determinar a causa raiz. Gostaríamos de ter transparência e aproveitar para compartilhar os detalhes das nossas descobertas:

O que aconteceu

Como parte do trabalho contínuo das nossas equipes de engenharia, diversos serviços internos e externos foram atualizados para delegar a autenticação a um serviço de autenticação centralizado. Um desses serviços atualizados foi implantado logo após as 10:00 UTC (07:00 BRT).

Às 11:00 UTC (08:00 BRT) da sexta-feira, 13 de julho, a engenharia do Mailgun começou a receber alertas de problemas em diversos serviços. Nossa investigação inicial sugeriu que o problema estava relacionado a essa alteração de software lançada mais cedo naquele dia, e iniciamos esforços imediatos para reverter o lançamento.

A investigação contínua revelou que, apesar da reversão, nossos serviços de autenticação ainda não estavam respondendo em tempo hábil. Os serviços de autenticação (e afins) foram reiniciados, e os sistemas começaram a retomar as operações normais. Às 12:44 UTC (09:44 BRT), todos os serviços estavam totalmente funcionais novamente.

Por que isso aconteceu? O que fizemos a respeito?

Antes desse lançamento, tínhamos implantado um conjunto não relacionado de alterações no serviço de autenticação. Isso introduziu uma latência adicional ao fluxo de autenticação e reduziu a taxa de atendimento das solicitações. Em combinação com a carga adicional gerada pelos nossos serviços atualizados, a fila de solicitações de autenticação cresceu mais rápido do que podiam ser atendidas. Além disso, as solicitações com falha estavam sendo tentadas novamente, o que agravou ainda mais o problema de carga.

Trabalhamos para reduzir o impacto e tomamos diversas medidas imediatas para restaurar os serviços:

  • reduzindo a carga de autenticação ao reverter o serviço atualizado mais recentemente
  • removendo a dependência circular para reduzir a latência
  • reiniciando os serviços de autenticação para limpar o acúmulo de solicitações

Lições aprendidas

A engenharia do Mailgun realizou uma análise abrangente da causa raiz desse incidente, e identificamos várias ações que tomaremos para reduzir a probabilidade de incidentes futuros.

Além das alterações de código e de configuração feitas para remover a latência de resposta desnecessária, também estamos no processo de formalização dos SLOs. Isso ajudará a aumentar nossa visibilidade sobre a latência do serviço e introduzirá uma coleta de dados, monitoramento e alerta mais abrangentes para auxiliar na aplicação dos SLOs.

Também estamos desenvolvendo ferramentas para identificar áreas com problemas potenciais mais cedo no ciclo de desenvolvimento e lançamento, a fim de evitar que incidentes como esse impactem nossos clientes.

Agradecemos de verdade a compreensão dos nossos clientes enquanto trabalhávamos para resolver o problema rapidamente. Ficaremos felizes em responder a quaisquer perguntas ou resolver preocupações sobre as contas impactadas – basta abrir um ticket de suporte, e a nossa equipe entrará em contato com você.