Endpoint de Health Check en Node.js: Liveness vs Readiness

Evita incidentes en producción diseñando correctamente los health checks en Node.js. Diferencia entre liveness, readiness y startup probes para Kubernetes y

29 jun 2026 • 6 min de lectura • Equipo Q2BSTUDIO

Evita reinicios innecesarios con health checks correctos

El endpoint de health check es mucho más que un simple ping a una ruta HTTP. En entornos modernos basados en contenedores y orquestación, se convierte en la interfaz crítica entre la aplicación y la infraestructura que decide si un contenedor recibe tráfico, se reinicia o se reemplaza. Un mal diseño puede provocar incidentes en cadena: bases de datos que caen y desencadenan reinicios innecesarios, pods que se sustituyen por falsos positivos en sondas, o servicios que se degradan sin que el equipo lo advierta a tiempo. Por el contrario, una implementación cuidadosa, que distinga entre liveness, readiness y startup, permite que el sistema tolere fallos transitorios sin entrar en bucles de reinicio y que los equipos de operaciones tengan visibilidad inmediata del estado real de cada componente.

En Kubernetes, la sonda de liveness responde a la pregunta '¿sigue vivo el proceso?' y solo debe verificar que el bucle de eventos del lenguaje (por ejemplo, Node.js) responde; no debe comprobar dependencias externas como bases de datos o Redis. Si falla, el orquestador reinicia el contenedor, lo cual es adecuado para procesos zombies, pero no para una caída de PostgreSQL. La sonda de readiness, en cambio, indica si la instancia está preparada para recibir peticiones. Aquí sí tiene sentido verificar la conectividad con la base de datos, la cola de trabajos o la caché, porque si falla, el pod se retira del balanceador de carga sin ser reiniciado. La sonda de startup da un margen inicial para migraciones, warm-up de pools de conexiones o carga de datos en memoria, evitando que las sondas de liveness y readiness actúen prematuramente durante el arranque.

En entornos Docker Compose o Swarm, la directiva HEALTHCHECK es única y sus semánticas son más simples: saludable o no saludable. Tras un número de fallos consecutivos, Docker reinicia el contenedor. No existe un equivalente a 'retirar del balanceador sin reiniciar'. Por tanto, incluir dependencias externas en el healthcheck de Docker puede provocar reinicios en cadena ante una interrupción de Redis o la base de datos. La recomendación práctica es usar un endpoint minimalista como /health/live que solo compruebe la capacidad de respuesta del proceso, configurar reintentos altos (3-5) e intervalos largos (30 segundos o más), y delegar las comprobaciones de dependencias a un sistema de monitoreo externo o al propio balanceador de carga, como Caddy o HAProxy, que pueden hacer peticiones a un endpoint /health/ready más completo.

Al diseñar el endpoint de health check, conviene decidir qué incluir y qué dejar fuera. Es sensato verificar la conectividad a la base de datos a través del pool de conexiones (no un simple SELECT 1 directo, sino usando el ORM o driver para detectar agotamiento del pool), la disponibilidad de Redis mediante un PING, y opcionalmente el estado de la cola de trabajos si el servicio depende de ella para responder peticiones. No deben incluirse APIs externas de terceros (Stripe, Mailgun, etc.) porque sus fallos transitorios no deben desactivar el servicio; se gestionan con circuit breakers en el punto de llamada. Tampoco deben incluirse comprobaciones de lógica de negocio que tarden más de un segundo, ni aserciones de consistencia de datos que no sean relevantes para la decisión de enrutamiento.

La respuesta del endpoint debe ser informativa pero segura. Un JSON con estado global (ok, degraded, unhealthy), versión del despliegue, tiempo de actividad y un objeto con el estado individual de cada componente, incluyendo latencia y, en caso de fallo, un mensaje de error. Para el balanceador de carga, el código HTTP 200 indica 'puedes enviar tráfico aquí', incluso si el estado es degraded, siempre que la aplicación pueda seguir sirviendo peticiones de forma degradada. El 503 se reserva para situaciones realmente críticas (base de datos inaccesible, por ejemplo). El monitoreo, por su parte, examina el cuerpo de la respuesta para disparar alertas cuando algún componente se degrada. Esta separación evita que una caída parcial tire abajo todo el servicio.

Es fundamental establecer timeouts estrictos en cada comprobación. Un pool de conexiones agotado puede hacer que una consulta SELECT 1 se quede esperando indefinidamente. Sin un timeout, el health check se cuelga, el balanceador lo marca como fallido, y se genera un falso positivo. Se recomienda usar Promise.race con temporizadores de 1-2 segundos para base de datos, 1 segundo para Redis, y 1.5 segundos para colas. Además, si el driver lo permite, es mejor usar timeouts a nivel de driver para cancelar la consulta en el servidor y no acumular consultas huérfanas en el pool. La duración total del health check no debería superar los 3 segundos, y el timeout del orquestador debe configurarse entre 5 y 10 segundos para dar margen.

Para reducir la carga sobre las dependencias, es aconsejable cachear el resultado del health check durante unos segundos (por ejemplo, 5 segundos para estado ok, 2 para degraded, 0 para unhealthy). Esto evita que cada ciclo de verificación del balanceador o del monitor dispare consultas a la base de datos y Redis, generando ruido de fondo que puede competir con el tráfico real. La pérdida de granularidad de unos pocos segundos es aceptable para la mayoría de los sistemas, dado que los orquestadores ya tienen sus propios umbrales de reintentos.

La seguridad también debe considerarse. Un health check que devuelva direcciones IP internas, nombres de host o mensajes de error detallados (como 'conexión rechazada a 10.0.0.5:6379') expone información sensible a un posible atacante. Lo recomendable es tener dos rutas: una pública que solo devuelva el estado global (ok o unhealthy) sin detalles, y otra interna o autenticada que proporcione el diagnóstico completo. Otra opción es servir el health check en un puerto interno (por ejemplo, 9090) accesible solo desde la red interna del clúster, mientras que el puerto público maneja el tráfico de usuario.

En Q2BSTUDIO, empresa especializada en aplicaciones a medida, integramos estos patrones en cada proyecto que abordamos, ya sea una API SaaS, un backend de comercio electrónico o una plataforma de integración con múltiples workers. Sabemos que un health check bien diseñado es la primera línea de defensa contra incidentes nocturnos. Además, combinamos estas prácticas con servicios cloud AWS y Azure para garantizar una infraestructura escalable y resiliente. Nuestro enfoque incluye también la implementación de agentes IA y soluciones de inteligencia artificial para empresas que necesitan automatizar el monitoreo y la respuesta ante fallos, así como dashboards de inteligencia de negocio con Power BI que visualizan en tiempo real el estado de cada componente. La ciberseguridad es otro pilar: protegemos los endpoints de health check para que no filtren información interna, y aplicamos buenas prácticas de hardening en todo el ciclo de despliegue.

Al final, un health check no es un mero trámite técnico; es una decisión arquitectónica que separa un sistema frágil de uno resiliente. Invertir una tarde en diseñarlo correctamente evita horas de troubleshooting y restauración de servicios. Si estás desarrollando software a medida para tu negocio y necesitas que la fiabilidad sea un requisito de primer orden, contar con un equipo que entienda estas sutilezas marca la diferencia. En Q2BSTUDIO ofrecemos servicios de desarrollo, cloud, inteligencia artificial y business intelligence para que tu aplicación no solo funcione, sino que se mantenga operativa incluso cuando todo lo demás falla.

¿UNA PAUSA?

Juega un momento antes de irte

NUESTROS SERVICIOS

Cómo podemos ayudarte

Inteligencia artificial

Agentes de IA, chatbots y asistentes inteligentes que automatizan tareas y atienden a tus clientes 24/7 para mejorar la eficiencia de tu negocio.

Más info

Desarrollo de software

Aplicaciones web, móviles y de escritorio, intranets, e-commerce, SaaS y plataformas de gestión diseñadas para las necesidades concretas de tu empresa.

Más info

Servicios cloud

Migración, infraestructura, hosting gestionado, alta disponibilidad y seguridad en Microsoft Azure y Amazon Web Services para que tu negocio escale sin límites.

Más info

Ciberseguridad y pentesting

Auditorías de seguridad, test de intrusión (pentesting) y protección de aplicaciones, datos e infraestructura on-premise y cloud, con hacking ético y cumplimiento normativo.

Más info

Business Intelligence

Cuadros de mando y análisis de datos con Power BI: integramos tus fuentes, diseñamos dashboards y KPIs y convertimos tus datos en decisiones.

Más info

Automatización de procesos

Automatizamos tareas repetitivas y conectamos tus aplicaciones con n8n, Power Automate, Make y RPA, eliminando trabajo manual y aumentando la productividad.

Más info

Formación para empresas

Formamos a tus equipos en tecnología con criterio: desarrollo web, bases de datos, Git, buenas prácticas y seguridad, automatización con n8n, inteligencia artificial para empresas y creación de soluciones de IA con Azure AI Foundry.

Más info

Auditoría de código

Auditamos el código que creas tú, tu equipo o una IA: te decimos qué está bien y qué mejorar, lo securizamos y lo dejamos listo para producción, web o app.

Más info

Generación de imágenes con IA

Creamos por ti las imágenes que necesita tu negocio con inteligencia artificial: producto, redes, publicidad, ilustración y avatares. Tú nos dices qué quieres y te lo entregamos listo para usar.

Más info

Generación de vídeos con IA

Creamos por ti vídeos con inteligencia artificial: promocionales, para redes, presentadores virtuales, doblaje y animaciones. Nos cuentas la idea y te lo entregamos montado y listo para publicar.

Más info

Avatares conversacionales con IA

Creamos avatares conversacionales con IA —humanos digitales con cara y voz— que atienden a tus clientes y equipos con el conocimiento de tu empresa, en tu web, monitores interactivos, WhatsApp o Teams.

Más info

Marketing Online e IA

Google Ads, Meta Ads, LinkedIn Ads y posicionamiento en motores de IA (GEO/AEO): captamos clientes y hacemos que tu marca aparezca donde te buscan, también en ChatGPT, Gemini y Perplexity.

Más info

¿Tienes un proyecto en mente?

Cuéntanos tu visión y la convertimos en una solución de software. Sea cual sea el alcance, hacemos realidad tu idea.

Live Chat