Postmortem: Gateway Incorreto
Relatório de incidente para a interrupção do serviço Logto em 2024-01-11 devido a falha de renovação de domínio.
Relatório de incidente para a interrupção do serviço Logto em 2024-01-11 devido a falha de renovação de domínio.
Em 2024-01-11, os serviços Logto experimentaram uma interrupção com muitos erros 502 Gateway Incorreto.
logto.app expirou, e a renovação falhou em ser concluída.logto.app podia ter expirado. Verificámos o registrador do domínio e descobrimos que não foi renovado com sucesso e o domínio estava expirado.Os nossos domínios são normalmente renovados automaticamente através do nosso registrador de domínios. No entanto, neste caso, o processo de renovação falhou devido a uma potencial configuração errada. Consequentemente, o domínio logto.app expirou e os registos DNS foram atualizados para apontar para a página de estacionamento do registrador.
De momento, o serviço de autenticação continua operacional, mas a maioria dos pedidos não o consegue alcançar. A exceção é o inquilino admin Logto, que está ligado ao domínio auth.logto.io e não foi afetado pela expiração.
Além do serviço de autenticação, também temos um serviço Cloud que orquestra os inquilinos Logto e serve o Logto Cloud Console (uma aplicação frontend).
Quando um utilizador opera no Cloud Console, a aplicação não chama diretamente o serviço de autenticação; em vez disso, chama o serviço Cloud para todas as operações de gestão.
Para alinhar com a API de Gestão Logto, projetámos um ponto final de "proxy de API de Gestão" para delegar pedidos ao serviço de autenticação. O fluxo completo parece assim:
Já que o domínio *.logto.app tem um problema de incompatibilidade de certificado, o serviço Cloud (Node.js) rejeita o pedido e gera um erro.
Normalmente, erros de pedido são capturados para evitar que o serviço inteiro falhe. No entanto, como o erro foi propagado do módulo de proxy, a lógica de manipulação de erros existente não foi capaz de capturá-lo, levando a uma falha no serviço.
Embora cada serviço Logto tenha pelo menos três réplicas, todas as réplicas falharam facilmente devido ao erro ocorrer em quase todos os pedidos do Cloud Console. Leva tempo para o mecanismo de recuperação automática começar, causando a indisponibilidade do serviço por um tempo.
Esta é a razão pela qual os utilizadores estão a ver erros 502 Gateway Incorreto (todas as réplicas falharam). Quando o serviço Cloud volta a estar operacional, novos pedidos do Cloud Console e aqueles em reintento chegam, e o ciclo de falhas continua.
Quando o serviço Cloud está inativo, também afeta o serviço de autenticação para certos pontos finais, principalmente /api/.well-known/sign-in-exp. Este ponto final é usado para buscar a configuração de experiência de início de sessão, que inclui informações de conector que precisam ser buscadas do serviço Cloud.
logto.app.