Mejores Prácticas de Operaciones en Tiempo de Ejecución
Un resumen condensado de las 25 prácticas de operaciones en tiempo de ejecución más importantes para equipos de Node.js, extraídas de cada página de esta sección.
Busca en todas las páginas de la documentación
Un resumen condensado de las 25 prácticas de operaciones en tiempo de ejecución más importantes para equipos de Node.js, extraídas de cada página de esta sección.
Apagado elegante de SIGTERM: server.close() y luego cerrar los pools - Apagado Elegante.
Falla de preparación durante el drenaje: 503 en /ready durante el apagado.
preStop + drenaje de la aplicación alineados: K8s en reposo antes de SIGTERM - Despliegues sin Tiempo de Inactividad.
Tiempo de espera de salida forzada: Salir con código 1 si el drenaje excede el período de gracia.
Política de uncaughtException documentada: Salida predeterminada para API HTTP - Conceptos Básicos de Operaciones en Tiempo de Ejecución.
unhandledRejection -> salir: Igual que uncaughtException para servicios API.
No usar PM2 dentro de K8s: Un proceso por contenedor; la plataforma escala las réplicas.
PM2/systemd solo en VMs: Cuando no está en contenedores - PM2 y systemd.
Vincular 0.0.0.0: Evita 502 del balanceador de carga a servicios que solo escuchan en localhost.
Registros a stdout JSON: requestId, método, ruta, estado, duración.
Nunca registrar secretos o cuerpos completos: Cumplimiento de PII.
NODE_OPTIONS --max-old-space-size: ~75% del límite de memoria del contenedor.
Margen de memoria: Investigación de OOMKill antes de aumentar ciegamente el límite.
Resolución de problemas de CPU: Distinguir pico de tráfico vs despliegue vs bucle ajustado.
Revertir primero cuando esté correlacionado con el despliegue: kubectl rollout undo o SHA anterior.
Separar el triaje de liveness y readiness: 502 a menudo es por readiness o drenaje.
Tiempo de espera de ALB/Ingress > p99 de la aplicación: Evita 502 del proxy en solicitudes lentas.
Cerrar BullMQ/Redis/cron al apagar: No solo el servidor HTTP.
NestJS enableShutdownHooks: Orden de destrucción de módulos.
Hooks onClose de Fastify: Limpieza de pools y Redis.
Registro de arranque con versión de Node y pid: Confirma la imagen correcta después del despliegue.
Manuales de operaciones de guardia mantenidos: Iniciadores de alta CPU, memoria, 502 actualizados después de incidentes.
Análisis post-mortem sin culpa: Elementos de acción rastreados en el sistema de tickets.
Monitoreo sintético: Sondeo /health de 1 minuto desde fuera del clúster.
No perfilar producción casualmente: Reproducir en staging con reproducción de carga.
Apagado elegante de SIGTERM con drenaje de readiness. Elimina la mayoría de los incidentes 502 relacionados con el despliegue.
Raramente. Documenta una excepción en el manual de operaciones del servicio si el estado del proceso es demostrablemente seguro (casi nunca para HTTP).
Dos páginas por alerta común. Enlaza a documentación profunda; el personal de guardia necesita comandos y un árbol de decisiones, no ensayos.
Concéntrate en el arranque en frío, el tiempo de espera y callbackWaitsForEmptyEventLoop - Mejores Prácticas Serverless.
El propietario del servicio después de cada incidente SEV2+ o hallazgo de simulacro.
Versiones de la pila: Esta página fue escrita para Node.js 24.18.0 (LTS Activo), npm 10+, TypeScript 5.6+, Express 5, Fastify 5 y NestJS 11.
Revisado por Chris St. John·Última actualización: 16 jul 2026