Melhores Práticas de Operações em Tempo de Execução
Um resumo condensado das 25 práticas de operações em tempo de execução mais importantes para equipes Node.js - extraídas de todas as páginas desta seção.
Busque em todas as páginas da documentação
Um resumo condensado das 25 práticas de operações em tempo de execução mais importantes para equipes Node.js - extraídas de todas as páginas desta seção.
Desligamento gracioso SIGTERM: server.close() e depois feche os pools - Desligamento Gracioso.
Falhar na prontidão durante o esvaziamento: 503 em /ready durante o desligamento.
preStop + esvaziamento do aplicativo alinhados: K8s dorme antes do SIGTERM - Implantações Sem Interrupção.
Tempo limite de saída forçada: Sair com 1 se o esvaziamento exceder o período de graça.
Política de uncaughtException documentada: Saída padrão para APIs HTTP - Noções Básicas de Operações em Tempo de Execução.
unhandledRejection -> sair: O mesmo que uncaught para serviços de API.
Sem PM2 dentro do K8s: Um processo por contêiner; a plataforma escala réplicas.
PM2/systemd apenas em VMs: Quando não conteinerizado - PM2 & systemd.
Vincular 0.0.0.0: Evita que o LB 502 se conecte apenas ao localhost.
Logs para stdout JSON: requestId, método, caminho, status, duração.
Nunca registrar segredos ou corpos completos: Conformidade com PII.
NODE_OPTIONS --max-old-space-size: ~75% do limite de memória do contêiner.
Margem de limite de memória: Investigação de OOMKill antes de aumentar o limite cegamente.
Solução de problemas de CPU: Distinguir pico de tráfego vs implantação vs loop apertado.
Reverter primeiro quando a implantação estiver correlacionada: kubectl rollout undo ou SHA anterior.
Separar triagem de liveness e readiness: 502 frequentemente readiness ou drain.
Tempo limite do ALB/Ingress > p99 do aplicativo: Impede proxy 502 em solicitações lentas.
Fechar BullMQ/Redis/cron no desligamento: Não apenas o servidor HTTP.
NestJS enableShutdownHooks: Ordem de destruição do módulo.
Hooks onClose do Fastify: Limpeza de pool e Redis.
Log de inicialização com versão do Node e pid: Confirma a imagem correta após a implantação.
Runbooks on-call mantidos: Iniciadores de CPU alta, memória e 502 atualizados após incidentes.
Postmortems sem culpa: Itens de ação rastreados no sistema de tickets.
Monitoramento sintético: Sonda /health de 1 minuto de fora do cluster.
Não perfilhar produção casualmente: Reproduzir em staging com replay de carga.
Desligamento gracioso SIGTERM com esvaziamento de prontidão. Elimina a maioria dos incidentes 502 relacionados à implantação.
Raramente. Documente uma exceção no runbook do serviço se o estado do processo for comprovadamente seguro (quase nunca para HTTP).
Duas páginas por alerta comum. Vincule a documentação detalhada; on-call precisa de comandos e árvore de decisão, não de ensaios.
Foco em cold start, timeout e callbackWaitsForEmptyEventLoop - Melhores Práticas Serverless.
Proprietário do serviço após cada incidente SEV2+ ou descoberta de drill.
Versões da Stack: Esta página foi escrita para Node.js 24.18.0 (Active LTS), npm 10+, TypeScript 5.6+, Express 5, Fastify 5 e NestJS 11.
Revisado por Chris St. John·Última atualização: 16 de jul. de 2026