Carregando
0x30Lição 4 de 6

Use health checks e connection draining

Retire com cuidado as instâncias com falha e deixe o trabalho em andamento terminar.

12 min Questionário com 5 perguntas
Ao final desta lição, você saberá
  • 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 XP

Encontre 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 XP

Retire um backend sem perder requisições

Acompanhe um deploy passo a passo e preveja o que o balanceador faz em cada etapa.

Mensagem 1 de 5Previsões 0/0
Ferramenta de deploy
Balanceador de carga
app-b
Cliente

Experimente

Até 15 XP

Liveness 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.

0 de 5 classificadosPontuação 0/0
  • “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…