La semana pasada (11 de diciembre), los servicios de OpenAI como ChatGPT y Sora experimentaron una interrupción de 4 horas y 10 minutos, afectando a numerosos usuarios. Ahora, OpenAI ha publicado oficialmente un informe detallado sobre la falla de ChatGPT.
En resumen, la causa raíz de la falla fue un pequeño cambio que tuvo consecuencias graves. Los ingenieros quedaron bloqueados del plano de control en un momento crítico, impidiendo una respuesta oportuna. Ante la falla, los ingenieros de OpenAI implementaron rápidamente varias medidas correctivas, incluyendo la reducción del tamaño del clúster, el bloqueo del acceso a la API de administración de Kubernetes y el aumento de los recursos del servidor de API de Kubernetes. Después de varias iteraciones, los ingenieros recuperaron el acceso a parte del plano de control de Kubernetes e implementaron medidas para redirigir el tráfico a clústeres saludables, logrando finalmente la restauración completa del sistema.
El incidente comenzó a las 3:12 pm PST, cuando los ingenieros implementaron un nuevo servicio de telemetría para recopilar métricas del plano de control de Kubernetes (K8S). Sin embargo, la configuración del servicio fue accidentalmente demasiado amplia, lo que provocó que cada nodo en cada clúster ejecutara simultáneamente operaciones intensivas de la API de K8S. Esto provocó rápidamente el colapso de los servidores de API, dejando a la mayoría de los clústeres sin capacidad de servicio en el plano de datos de K8S.
Cabe destacar que, aunque el plano de datos de K8S puede funcionar teóricamente de forma independiente del plano de control, la funcionalidad del DNS depende del plano de control, impidiendo la comunicación entre los servicios. La sobrecarga de las operaciones de la API dañó el mecanismo de descubrimiento de servicios, causando la paralización completa del servicio. Si bien el problema se identificó en 3 minutos, la incapacidad de los ingenieros para acceder al plano de control para revertir el servicio creó una situación de "bucle infinito". El colapso del plano de control les impidió eliminar el servicio problemático, lo que a su vez impidió la recuperación.
Los ingenieros de OpenAI comenzaron a explorar diferentes métodos para recuperar los clústeres. Intentaron reducir el tamaño de los clústeres para disminuir la carga de la API de K8S y bloquearon el acceso a la API de administración de K8S para permitir que los servidores se recuperaran. Además, aumentaron la configuración de recursos del servidor de API de K8S para manejar mejor las solicitudes. Después de una serie de esfuerzos, los ingenieros recuperaron el control del plano de control de K8S, pudieron eliminar el servicio con fallas y restaurar gradualmente los clústeres.
Durante este tiempo, los ingenieros también redirigieron el tráfico a clústeres saludables restaurados o nuevos para reducir la carga en otros clústeres. Sin embargo, debido a que muchos servicios intentaron recuperarse simultáneamente, las limitaciones de recursos se saturaron, lo que requirió una intervención manual adicional, prolongando el tiempo de recuperación de algunos clústeres. Con este incidente, OpenAI espera extraer lecciones para evitar quedar "con la puerta cerrada" en situaciones similares en el futuro.
Detalles del informe: https://status.openai.com/incidents/ctrsv3lwd797
Puntos clave:
🔧 Causa de la falla: Un pequeño cambio en el servicio de telemetría provocó una sobrecarga en las operaciones de la API de K8S, causando la paralización del servicio.
🚪 Dificultad de los ingenieros: El colapso del plano de control impidió el acceso de los ingenieros, impidiendo la resolución del problema.
⏳ Proceso de recuperación: Se recuperó el servicio mediante la reducción del tamaño del clúster y el aumento de recursos.