A OpenAI divulgou recentemente um relatório detalhado sobre a interrupção de 4 horas e 10 minutos dos serviços ChatGPT e Sora em 11 de dezembro. Este incidente afetou muitos usuários e atraiu atenção generalizada. O relatório explica detalhadamente a causa da falha, as dificuldades encontradas pelos engenheiros e o processo final de restauração do serviço, fornecendo lições valiosas para outras equipes técnicas. O relatório explica claramente a causa raiz da falha, bem como uma série de medidas de emergência tomadas pelos engenheiros ao enfrentarem a queda de um avião de controle, o que reflete a capacidade da OpenAI de responder a emergências.
Na semana passada (11 de dezembro), os serviços ChatGPT e Sora da OpenAI ficaram inativos por 4 horas e 10 minutos, afetando muitos usuários. Agora, a OpenAI lança oficialmente um relatório detalhado sobre a interrupção do ChatGPT.
Simplificando, a causa raiz desta falha foi uma pequena mudança, mas que levou a sérias consequências. Os engenheiros ficaram fora da superfície de controle no momento crítico e não conseguiram lidar com o problema a tempo. Em relação a esta falha, os engenheiros da OpenAI rapidamente lançaram uma série de reparos após descobrirem o problema, incluindo a redução do tamanho do cluster, o bloqueio do acesso da rede à API de gerenciamento do Kubernetes e o aumento dos recursos do servidor API do Kubernetes. Após várias rodadas de esforços, os engenheiros finalmente restauraram o acesso a parte do plano de controle do Kubernetes e tomaram medidas para desviar o tráfego para clusters saudáveis, conseguindo finalmente uma recuperação completa do sistema.
O incidente ocorreu às 15h12 PST, quando os engenheiros implantaram um novo serviço de telemetria para coletar métricas do plano de controle do Kubernetes (K8S). No entanto, o serviço foi involuntariamente configurado de forma muito ampla, fazendo com que cada nó em cada cluster executasse simultaneamente operações da API K8S com uso intensivo de recursos. Essa situação rapidamente causou uma falha no servidor API, fazendo com que o plano de dados K8S da maioria dos clusters perdesse recursos de serviço.
É importante notar que embora o plano de dados K8S possa teoricamente funcionar independentemente do plano de controle, a funcionalidade do DNS depende do plano de controle, o que impossibilita a comunicação entre os serviços. Quando as operações da API ficam sobrecarregadas, o mecanismo de descoberta de serviço é danificado, levando à paralisia de todo o serviço. Embora o problema tenha sido localizado em 3 minutos, o engenheiro não conseguiu acessar o plano de controle para reverter o serviço, resultando em uma situação de “loop infinito”. Uma queda do avião de controle os impediu de remover o serviço problemático e, assim, impossibilitar a recuperação.
Os engenheiros da OpenAI começaram imediatamente a explorar diferentes maneiras de restaurar o cluster. Eles tentaram reduzir o tamanho do cluster para reduzir a carga da API no K8S e bloquearam o acesso à API de gerenciamento do K8S para que os servidores pudessem retomar as operações normais. Além disso, eles também expandiram a configuração de recursos do servidor API K8S para melhor lidar com as solicitações. Após uma série de esforços, os engenheiros finalmente recuperaram o controle do plano de controle do K8S, conseguiram excluir o serviço defeituoso e restaurar gradualmente o cluster.
Durante esse período, os engenheiros também moveram o tráfego para clusters íntegros restaurados ou recém-adicionados para reduzir a carga em outros clusters. No entanto, como muitos serviços tentaram recuperar ao mesmo tempo, resultando na saturação do limite de recursos, o processo de recuperação exigiu intervenção manual adicional e a recuperação de alguns clusters demorou muito tempo. Através deste incidente, espera-se que a OpenAI aprenda com a sua experiência e evite ser “bloqueada” novamente ao encontrar situações semelhantes no futuro.
Detalhes do relatório: https://status.openai.com/incidents/ctrsv3lwd797
Destaque:
Causa da falha: Pequenas alterações no serviço de telemetria causaram sobrecarga nas operações da API K8S, resultando na paralisia do serviço.
Dilema do Engenheiro: Uma falha no plano de controle torna os engenheiros inacessíveis, impossibilitando o tratamento do problema.
⏳ Processo de recuperação: Ao reduzir o tamanho do cluster e aumentar os recursos, o serviço foi finalmente restaurado.
Embora esse incidente tenha causado a interrupção do serviço, ele também proporcionou à OpenAI uma experiência valiosa, levando-a a melhorar a arquitetura do sistema e os planos de emergência, a melhorar ainda mais a estabilidade do serviço e a fornecer aos usuários garantias de serviço mais confiáveis. Acredito que a OpenAI aprenderá com este incidente, continuará a melhorar sua tecnologia e trará uma experiência melhor aos usuários.