Product
Servicio de autenticación de Mailgun: post mortem de julio de 2018
Este artículo se publicó originalmente el 18 de julio de 2018.
¿Cosas de leyendas urbanas? ¿Una extraña coincidencia? Tal vez. Lo que sí sabemos es que el pasado viernes 13 no fue un buen día para nuestro equipo.
La caída del servicio afectó a algunos de nuestros clientes, y llevamos a cabo acciones inmediatas para determinar la causa principal. Queremos ser transparentes y tomarnos un momento para compartir los detalles de lo que descubrimos:
Esto es lo que pasó
Como parte del trabajo continuo de nuestros equipos de ingeniería, actualizamos varios de nuestros servicios internos y externos para delegar la autenticación en un servicio de autenticación centralizado. Uno de esos servicios actualizados se implementó poco después de las 10:00 UTC.
A las 11:00 UTC del viernes 13 de julio, el equipo de ingeniería de Mailgun empezó a recibir alertas de problemas en varios servicios. Nuestra investigación inicial apuntaba a que el problema estaba relacionado con este cambio de software implementado ese mismo día, por lo que iniciamos acciones inmediatas para revertir dicha versión.
Al seguir investigando, descubrimos que, a pesar de la reversión, nuestros servicios de autenticación seguían sin responder a tiempo. Reiniciamos los servicios de autenticación (y relacionados), y los sistemas empezaron a recuperar su funcionamiento normal. A las 12:44 UTC, todos los servicios volvían a estar totalmente operativos.
¿Por qué ocurrió esto? ¿Qué medidas tomamos al respecto?
Antes de este lanzamiento, habíamos implementado un conjunto de cambios no relacionados en el servicio de autenticación. Esto introdujo una latencia adicional en el flujo de autenticación y redujo la velocidad a la que se podían atender las solicitudes. En combinación con la carga adicional generada por nuestros servicios actualizados, la cola de solicitudes de autenticación creció más rápido de lo que se podían atender. Además, se volvían a intentar las solicitudes fallidas, lo que agravó aún más el problema de carga.
Trabajamos para reducir el impacto y tomamos varias medidas inmediatas con el fin de restaurar los servicios:
- reducir la carga de autenticación mediante la reversión del servicio actualizado más recientemente
- eliminar la dependencia circular para reducir la latencia
- reiniciar los servicios de autenticación para despejar la acumulación de solicitudes
Lecciones aprendidas
El equipo de ingeniería de Mailgun ha realizado un análisis exhaustivo de la causa principal de este incidente y hemos identificado varias acciones que llevaremos a cabo para reducir la probabilidad de que se repita en el futuro.
Además de los cambios en el código y la configuración realizados para eliminar la latencia de respuesta innecesaria, también estamos en proceso de formalizar los SLO. Esto nos ayudará a aumentar nuestra visibilidad sobre la latencia del servicio y a introducir una recopilación de datos, una supervisión y unas alertas más completas para ayudar a cumplir los SLO.
También estamos desarrollando herramientas para identificar posibles áreas problemáticas en las primeras fases del ciclo de desarrollo y lanzamiento a fin de evitar que incidentes como este afecten a nuestros clientes.
Agradecemos enormemente la comprensión de nuestros clientes mientras trabajábamos para resolver el problema con rapidez. Nos encantará responder a cualquier pregunta o abordar las inquietudes de las cuentas afectadas; solo tienes que abrir una incidencia de asistencia y nuestro equipo se pondrá en contacto contigo.