Product
O que aconteceu ontem e o que estamos fazendo a respeito
Relatado em 19 de setembro de 2013.
Ontem foi um dia difícil para os clientes do Mailgun. Tivemos atrasos significativos e duplicação de e-mails, aproximadamente das 20:40 às 04:40 UTC. Embora não haja indícios de mensagens perdidas, os atrasos no envio de e-mails foram significativos. Isso é inaceitável, portanto queremos apresentar um resumo do que aconteceu e das medidas que estamos tomando para evitar que o problema volte a ocorrer.
O que aconteceu?
Às 20:40 UTC, tivemos um pico de mensagens que foi o gatilho para uma série de falhas em cascata em nosso sistema. O Mailgun geralmente lida com esses picos sem problemas, mas neste caso específico, ele foi o gatilho para um bug no Mailgun que deixou nossos clusters Riak mais lentos devido à sobrecarga de solicitações desnecessárias e ao consumo excessivo de armazenamento. À medida que introduzimos mais carga no cluster, isso foi o gatilho para a coleta de lixo nos nós, o que piorou a situação. O Riak sobreviveu (obrigado à equipe do Basho por escrever um software robusto), mas isso resultou em atrasos significativos nas mensagens. Para solucionar o problema imediato, reiniciamos vários processos, o que, em alguns casos, causou o envio de mensagens duplicadas.
Atrasos nas mensagens
Com a queda no desempenho geral do sistema, as mensagens entraram na fila, mas não foram entregues na velocidade normal. Identificamos o bug e implementamos a correção, mas demoramos um pouco para retornar os clusters ao estado normal e limpar a fila de mensagens acumuladas.
Mensagens duplicadas
À medida que nossos nós de entrega ficavam mais lentos, nossos scripts de monitoramento começaram a encerrar os nós de entrega e a reiniciá-los como parte de nosso procedimento de recuperação de emergência. Esse desligamento forçado e reinicialização fizeram com que mensagens duplicadas fossem entregues a um pequeno número de clientes, pois algumas mensagens foram enviadas, mas não marcadas como entregues em nosso sistema, e sofreram novas tentativas após o reinício do processo.
O que estamos fazendo a respeito?
Esse nível de degradação do desempenho no Mailgun é inaceitável. Nossos clientes confiam em nós para entregar seus e-mails essenciais e nós os decepcionamos. Como resultado dessa interrupção, vamos implementar algumas mudanças.
Arquitetura mais resiliente
Em primeiro lugar, identificamos o bug em nosso sistema que causou a lentidão e implementamos uma correção. Além disso, estamos no processo de reestruturar nossos processos essenciais de armazenamento e roteamento, para que eles sejam mais tolerantes a falhas e tenham um desempenho melhor nessas situações.
Melhoria na comunicação de problemas
Este evento deixou claro que a página de status do Mailgun nem sempre reflete com precisão a situação do Mailgun. Embora nossos serviços de API e SMTP estivessem tecnicamente “disponíveis” ontem, os atrasos significativos nos e-mails afetam o serviço na prática e devemos ter transparência em relação a isso. Como resultado, já transferimos nossa página de status do Pingdom para o Statuspage.io, de modo a oferecer um único local para alertas de incidentes. Você poderá assinar alertas por SMS, webhook, Twitter ou e-mail para ficar ciente assim que o Mailgun apresentar problemas. Em longo prazo, adicionaremos informações sobre o tamanho da fila do Mailgun e outras métricas mais descritivas sobre o desempenho. Além disso, no painel de controle do Mailgun de cada cliente, adicionaremos mais detalhes sobre o tamanho da fila e o desempenho de cada cliente.
Como corrigir a situação
Acreditamos que o Mailgun deve estar sempre disponível e com bom desempenho. Atrasos significativos de e-mails não atendem a esse critério. Nós oferecemos um SLA e, embora isso tecnicamente não se qualifique como uma interrupção, se isso afetou os seus negócios, queremos nos redimir. Você pode enviar um e-mail para sla@mailgun.net e podemos discutir um crédito adequado como compensação por esse problema.
Enfim, ontem foi um dia difícil para nossos clientes e para nós. Lamentamos muito esse problema e estamos focados em fazer tudo ao nosso alcance para garantir que uma situação como essa não volte a acontecer.
Os Mailgunners