Durante a manhã da última quinta-feira (29/04), as solicitações de acesso à nossa plataforma estavam recebendo uma resposta de erro do servidor (502 Bad Gateway). Essa instabilidade foi detectada às 8:00 (GMT-3) e corrigida efetivamente às 12:21 (GMT-3). Verificamos que a causa raiz do incidente, identificada às 9:30 (GMT-3), foi um conflito durante a instalação das dependências necessárias para o correto funcionamento de novas instâncias (o que auxiliaria a comportar todas as solicitações de acesso à nossa plataforma).
Nossa base conta com um mecanismo de autogerenciamento da quantidade de instâncias responsáveis pelo nosso sistema. Conforme o número de acessos à plataforma aumenta, esse mecanismo escalona automaticamente a quantidade de instâncias disponíveis para que elas comportem a demanda existente.
No momento em que uma nova instância é disponibilizada, ela instala as dependências (pacotes e bibliotecas de software) que serão necessárias para o seu correto funcionamento. Porém, algumas das dependências utilizadas para prover as instâncias foram descontinuadas recentemente, gerando um conflito ao longo do processo de disponibilização de novas instâncias.
Durante a manhã da quinta-feira passada, conforme o volume de usuários da nossa plataforma aumentava, naturalmente o nosso mecanismo de autogerenciamento buscou fornecer novas instâncias para comportar todas as solicitações de acesso. Mas sem as dependências que garantem o seu correto funcionamento, essas instâncias não foram disponibilizadas apropriadamente.
E sem o apoio de novas instâncias, as que já existiam não suportaram o elevado fluxo de usuários. Pouco tempo depois, todas as solicitações de acesso começaram a receber uma resposta de erro do servidor (502 Bad Gateway).
Esse incidente impediu que os nossos usuários acessassem a nossa plataforma. Muitos atendimentos permaneceram na fila de espera por mais tempo que o esperado durante esse período de instabilidade.
O primeiro passo foi identificar quais recursos do nosso sistema permaneceram operacionais durante o incidente.
A API foi um deles e isso possibilitou que orientássemos os nossos usuários, às 8:54 (GMT-3), a utilizar o nosso aplicativo Huggy Mobile. Essa abordagem auxiliou os atendentes a reduzir a quantidade de atendimentos presos na fila de espera.
Felizmente, o incidente não afetou o processamento de mensagens nos atendimentos, isto é, não houve atraso ou falha no envio e recebimento de mensagens.
Às 9:30 (GMT-3), com a causa raiz do problema identificada, iniciamos o processo de correção do sistema. A solução viável encontrada foi remover as dependências descontinuadas e instalar alternativas similares no lugar delas.
A versão corrigida do sistema foi liberada às 12:21 (GMT-3).
Os eventos que ocorreram nesse incidente permitiram ao time identificar e priorizar alguns pontos de melhoria em nossos processos internos. Eles estão listados a seguir:
Pedimos sinceras desculpas aos usuários que foram impactados por esse incidente. O nosso time está se empenhando para entregar uma Huggy cada vez mais confiável e robusta para todos vocês.