Puesta en producción
Lo que separa un servidor que funciona de un servicio que se puede operar.
Puesta en producción
En cada despliegue, un puñado de usuarios ve un error de red. No el suficiente para activar una alerta, pero sí para generar tickets. La causa no está en su código de negocio: el orquestador envía SIGTERM al proceso, Node se cierra de inmediato y todas las peticiones en curso se cortan a mitad de camino, incluidas las que ya habían escrito en la base de datos y nunca llegaron a confirmárselo al cliente. Bastan cinco líneas para eliminar por completo este síntoma, y la mayoría de los servicios no las tienen.
La segunda diferencia entre «funciona» y «es operable» tiene que ver con la observabilidad. Un servicio que no expone una sonda de salud distinta de su sonda de disponibilidad recibe tráfico antes de estar listo. Un servicio que registra logs en frases libres no permite encontrar las peticiones de un usuario concreto durante un incidente. Un servicio cuya imagen de contenedor ejecuta el proceso como root concede a cualquier ejecución de código arbitrario plenos poderes sobre el contenedor. Esta última lección trata estos puntos en el orden en que le saldrán más caros.
Comentarios
Los comentarios funcionan con GitHub Discussions
Inicia sesión con GitHub para participar en la discusión