Colocação em produção
O que separa um servidor que roda de um serviço que se pode operar.
Colocação em produção
A cada deploy, um punhado de usuários vê um erro de rede. Não o bastante para disparar um alerta, mas o suficiente para gerar tickets. A causa não está no seu código de negócio: o orquestrador envia SIGTERM ao processo, o Node encerra imediatamente, e todas as requisições em andamento são cortadas no meio — inclusive aquelas que já tinham gravado no banco e nunca confirmaram ao cliente. Cinco linhas bastam para eliminar totalmente esse sintoma, e a maioria dos serviços não as tem.
A segunda diferença entre "está rodando" e "é operável" diz respeito à observabilidade. Um serviço que não expõe uma sonda de saúde distinta da sua sonda de disponibilidade recebe tráfego antes de estar pronto. Um serviço que registra logs em frases livres não permite encontrar as requisições de um determinado usuário durante um incidente. Um serviço cuja imagem de contêiner executa o processo como root concede plenos poderes sobre o contêiner a qualquer execução de código arbitrário. Esta última lição trata desses pontos na ordem em que eles lhe custarão caro.
Encerramento limpo
O objetivo: parar de aceitar novas conexões, deixar as requisições em andamento terminarem, fechar os recursos e então sair.
Comentários
Os comentários são alimentados pelo GitHub Discussions
Conecte-se com o GitHub para participar da discussão