O Que É CI com Autocorreção? Explicação
CI com autocorreção é um pipeline que detecta falhas transitórias e mecânicas e se recupera delas automaticamente, sem que uma pessoa precise reexecutar o job.
Em um pipeline tradicional, toda falha é problema seu para triar, até as que nunca tiveram nada a ver com seu código. A CI com autocorreção inverte isso para as falhas que não exigem uma mudança de código: o sistema reconhece uma falha ambiental ou de recurso, executa um retry do trabalho afetado e só escala para você quando o problema é genuíno.
Detectar, depois recuperar
A autocorreção se apoia em duas capacidades. Primeiro, detecção: classificar uma falha como transitória e mecânica (uma instabilidade de rede, um timeout de registry, um out-of-memory kill) versus determinística (uma assertion que falha, um erro de sintaxe, um arquivo ausente). Segundo, recuperação: para a classe transitória, executar automaticamente um retry do trabalho em vez de derrubar o build.
O que ela corrige e o que não corrige
A autocorreção mira falhas cuja causa está fora do seu código. Ela não pode e não deve "consertar" uma falha determinística com retry, porque reexecutar um bug real só desperdiça minutos e esconde o sinal. Um bom sistema de autocorreção é conservador: ele só faz retry do que é plausivelmente transitório.
Por que retry sozinho não basta
Fazer retry cego de toda falha não é autocorreção; é uma tempestade de retry esperando para acontecer. A autocorreção de verdade é seletiva. Ela precisa reconhecer a classe da falha, fazer retry com limites sensatos e backoff, e expor o que corrigiu para que o padrão permaneça visível em vez de escondido.
Onde ela vive
A autocorreção pode viver no seu workflow (wrappers de retry, reexecuções condicionais) ou na própria plataforma de runner. A autocorreção no nível da plataforma é mais poderosa porque a plataforma consegue ver sinais mecânicos como um out-of-memory kill ou uma instância preemptada que um step do workflow nunca observa.
A perspectiva da Latchkey
Os managed runners com autocorreção são o núcleo do que a Latchkey oferece: a plataforma de runner detecta falhas transitórias e mecânicas (out-of-memory kills, instabilidades de rede, timeouts de registry) e automaticamente executa um retry, de modo que uma instabilidade isolada não faça seu build falhar. Como a autocorreção acontece no nível do runner, ela pega falhas de infraestrutura que seu workflow não consegue ver, enquanto falhas genuínas de código ainda falham rápido.
Principais conclusões
- CI com autocorreção detecta falhas transitórias e se recupera automaticamente.
- Ela precisa distinguir falhas transitórias (passíveis de retry) das determinísticas (de código).
- Retries seletivos e limitados importam; retries cegos causam tempestades de retry.
- A autocorreção no nível da plataforma pega falhas mecânicas que os workflows não conseguem ver.