Use health checks e connection draining
Retire com cuidado as instâncias com falha e deixe o trabalho em andamento terminar.
- Diferenciar liveness de readiness e explicar o draining e a histerese dos health checks.
Uma checagem de liveness pergunta se um processo deve ser reiniciado; uma checagem de readiness pergunta se ele deve receber tráfego. Uma checagem rasa pode passar enquanto uma dependência crítica está indisponível, e uma checagem profunda demais pode tirar todos os backends do ar durante uma queda de uma dependência compartilhada. Limites, domínios de falha separados e histerese na recuperação reduzem a oscilação. Durante os deploys, o draining para as conexões novas enquanto dá tempo para as requisições em andamento terminarem.
O comportamento real do draining depende do protocolo e do comportamento dos clientes. WebSockets de longa duração ou respostas em streaming podem exigir um período de tolerância maior ou uma lógica explícita de reconexão.
Prática: ajuste um health check
Experimente
Até 15 XPEncontre um limite com o qual você consegue conviver
A linha de cima mostra os resultados reais das checagens: uma instabilidade, um trecho de oscilação e depois uma queda de verdade. A linha de baixo mostra o que o balanceador decide.
Comece em 1 e 1 e depois aumente. Qual número melhora, e qual piora? Nenhuma configuração zera os três.
- Mudanças de estado
- 10
- Falhando, mas recebendo tráfego
- 0
- Funcionando, mas removido
- 0
Prática: faça o draining de um backend para um deploy
Experimente
Até 15 XPRetire um backend sem perder requisições
Acompanhe um deploy passo a passo e preveja o que o balanceador faz em cada etapa.
Experimente
Até 15 XPLiveness ou readiness?
A liveness pergunta se é para reiniciar. A readiness pergunta se é para mandar tráfego. Decida qual checagem deve reagir a cada situação.
“O processo está em deadlock e nunca vai se recuperar sozinho.”
“A aplicação ainda está aquecendo o cache depois de iniciar.”
“A instância está temporariamente sobrecarregada.”
“A instância está sendo desligada para um deploy.”
“Um vazamento de memória deixou o processo sem resposta.”
Principais conclusões
Liveness e readiness têm propósitos diferentes.
Evite health checks que transformam a falha de uma dependência na remoção do pool inteiro.
Faça o draining das conexões antes de uma remoção planejada, quando o protocolo permitir.
Quiz da aula
5 perguntas · aprovação com 4 acertos · até 50 XP
Ao passar, você conclui a aula e mantém sua sequência. As perguntas erradas voltarão em sessões de revisão.
Dúvidas sobre esta lição
Travou em algum ponto? Pergunte. Descobriu algo? Compartilhe. Explicar também é uma ótima forma de aprender.
Carregando publicações…