Trilha 05Lição 7 / 8

Defina limites seguros para a autorrecuperação

Automatize ações conhecidas de recuperação com autoridade, verificação e condições de parada explícitas. Separe recuperação em runtime de alteração de software.

Avançado12 minRevisado

Publicado por Como escrevemos

Confira seu entendimentoO controlador já reiniciou um worker duas vezes. A fila continua crescendo e o banco de dados está inacessível. O que a política deve fazer?Faça o exercício
O controlador já reiniciou um worker duas vezes. A fila continua crescendo e o banco de dados está inacessível. O que a política deve fazer?

O que você vai aprender

  • Diferenciar autorrecuperação de uma correção permanente do software.
  • Definir uma política limitada de recuperação e verificações independentes de sucesso.
  • Reconhecer quando a automação deve parar e escalonar.

Recupere uma condição conhecida

A autorrecuperação detecta automaticamente uma falha definida e tenta executar uma ação autorizada de recuperação. Reiniciar um processo com falha ou substituir uma instância não saudável são exemplos. A ação deve corresponder à falha e ao modelo de estado do serviço.

O Kubernetes pode substituir instâncias de cargas de trabalho com falha e reconciliar o estado declarado. Isso não corrige lógica defeituosa da aplicação nem toda falha de armazenamento. Recuperação de infraestrutura e correção do software precisam de verificações diferentes. Autorrecuperação no Kubernetes.

Defina o objetivo antes do mecanismo. Restaurar uma exportação significa que o trabalho elegível é concluído corretamente. Um contêiner em execução é apenas uma precondição.

Separe três tipos de alteração

AlteraçãoExemploDecisão necessária
Recuperação em runtimeSubstituir um worker sem estado que falhouUma política de recuperação previamente aprovada pode autorizar isso
Correção de softwareCorrigir o vazamento de memória que faz o worker pararRevisão, testes, controles de release e verificação em produção
Alteração de políticaAumentar a taxa permitida de reinicializações ou o escopo de acessoAprovação explícita do responsável pela política

Um agente pode propor uma correção após a recuperação. Essa proposta é uma nova alteração de software. Não deve herdar autoridade ilimitada do controlador de recuperação.

O controlador também não deve editar seus próprios critérios de sucesso quando uma verificação falhar. Caso contrário, o sistema pode relatar melhoria sem melhorar o serviço.

Escreva a política de recuperação antes de ativá-la

A política a seguir é fictícia. Seus números ilustram escolhas de projeto; não são configurações padrão recomendadas.

Campo da políticaRegra fictícia do worker de exportação
Condição de acionamentoO sinal de atividade do worker está ausente há 90 segundos e há trabalho na fila
PrecondiçõesOutro worker está saudável; as verificações de dependências passam; não há suspeita de comprometimento nem de falha de integridade
Ação permitidaSubstituir um worker usando o artefato atualmente aprovado
Proteção do estadoOs jobs usam armazenamento durável e uma chave de idempotência verificada
LimiteNo máximo duas substituições em 15 minutos; nunca mais de uma por vez
Intervalo de esperaEsperar cinco minutos após a substituição antes de outra tentativa
SucessoUm job sintético é concluído corretamente e a fila afetada começa a diminuir
Parar e escalonarQualquer precondição falha, o limite é atingido ou o sucesso não pode ser verificado

Use uma identidade com o menor privilégio necessário. Registre a versão da política, a evidência do acionamento, a ação, o recurso e o resultado. Ofereça um meio independente de desativar o controlador. Defina a pessoa responsável que recebe o escalonamento.

Teste caminhos de falha e a recuperação bem-sucedida

Uma nova tentativa pode repetir um efeito colateral. Um worker pode armazenar um arquivo e parar antes de confirmar o job. Verifique a idempotência antes de permitir outra execução. Consulte o exemplo de falha cloud native.

Novas tentativas também podem ampliar a sobrecarga de uma dependência. Use tentativas limitadas, tempos limite e backoff adequado. Evite novas tentativas sincronizadas em toda a frota. A AWS explica por que backoff e jitter ajudam a reduzir essa amplificação. Orientações sobre novas tentativas.

Teste a política fictícia com três casos. Um único worker parado deve se recuperar. Uma indisponibilidade do banco deve impedir substituições repetidas. Uma falha de integridade incerta deve interromper a automação e solicitar uma decisão de resposta.

Verifique também a ausência de telemetria. A falta de um sinal de atividade pode significar um worker com falha ou uma falha no caminho de coleta. O controlador precisa de evidências suficientes para sua ação, não de confiança em uma explicação de IA.

Meça se a política ajuda

Registre recuperações verificadas, tentativas malsucedidas, escalonamentos, trabalho duplicado e tempo com impacto nos usuários. Compare-os com o método operacional anterior em condições semelhantes.

Mantenha o defeito subjacente como trabalho de engenharia. Reiniciar repetidamente um processo com vazamento pode reduzir o impacto imediato enquanto o vazamento continua. Prossiga com melhoria contínua para relacionar a observação a uma correção duradoura.

Faça o exercício

Projete uma política de recuperação para o worker fictício de exportação desta lição. Especifique a condição de acionamento, exclusões, ação permitida, limite de tentativas, intervalo de espera, verificação de sucesso e responsável pelo escalonamento. Teste-a diante de uma indisponibilidade do banco e de uma falha desconhecida de integridade de dados.

Baixar planilha de exercício (Markdown)
Confira seu entendimento ↑

Continuar aprendendo

Fontes e leituras adicionais

Leituras relacionadas da Taiga

← Lição anterior: Conecte a entrega ao SOC e ao SIRT