Verificaciones de Salud y Apagado Elegante
Apagado elegante
Cuando despliegas una nueva versión de tu aplicación, debes reemplazar la versión anterior. El administrador de procesos que estés usando primero enviará una señal SIGTERM a la aplicación para notificarle que será terminada. Una vez que la aplicación recibe esta señal, debe dejar de aceptar nuevas solicitudes, finalizar todas las solicitudes en curso, limpiar los recursos que utilizó, incluyendo conexiones a base de datos y bloqueos de archivos, y luego salir.
Ejemplo
const server = app.listen(port);
process.on('SIGTERM', () => { debug('SIGTERM signal received: closing HTTP server'); server.close(() => { debug('HTTP server closed'); });});Verificaciones de salud
Un balanceador de carga usa verificaciones de salud para determinar si una instancia de la aplicación está sana y puede aceptar solicitudes. Por ejemplo, Kubernetes tiene dos verificaciones de salud:
liveness, que determina cuándo reiniciar un contenedor.readiness, que determina cuándo un contenedor está listo para empezar a aceptar tráfico. Cuando un pod no está listo, se elimina de los balanceadores de carga del servicio.