Skip to content
Latchkey

O Que É uma Falha de Infraestrutura em CI? Explicação

Uma falha de infraestrutura é uma falha de CI que se origina na plataforma que executa o job, os runners, a rede e o provedor, em vez de no seu código.

Quando um build fica vermelho, a suposição natural é que algo na mudança quebrou. Mas a plataforma por baixo do job também pode falhar: um runner falha ao provisionar, uma instância é reivindicada, um provedor tem um breve incidente. Essas falhas de infraestrutura são ambientais, e tratá-las como bugs de código desperdiça muito tempo humano.

O que conta como infraestrutura

  • Falhas de provisionamento do runner ou captação lenta de um pool vazio.
  • Reivindicação de instância spot ou preemptível no meio do job.
  • Problemas de rede, DNS e conectividade do lado da plataforma.
  • Breves incidentes do provedor e falhas de control-plane.

Falhas de infraestrutura vs de código

Uma falha de código é reproduzível: rode o mesmo job e ele falha do mesmo jeito, porque a causa está na sua mudança. Uma falha de infraestrutura geralmente não é reproduzível, porque depende do estado transitório da plataforma. O teste de reprodutibilidade é seu melhor primeiro sinal.

Por que são fáceis de diagnosticar errado

Falhas de infraestrutura muitas vezes aparecem com mensagens genéricas ou enganosas, um cancelamento, um erro de conexão, um kill abrupto, então acabam sendo culpadas na mudança em teste ou descartadas como flakiness aleatória. Reconhecê-las como uma classe distinta e ambiental é metade da batalha.

Como se recuperar

Como falhas de infraestrutura são transitórias, a resposta certa é quase sempre fazer retry, idealmente em um runner novo. A plataforma está em um estado diferente na próxima tentativa, então a falha geralmente não se repete. Fazer retry de um bug de código real, por outro lado, só desperdiça minutos.

A perspectiva da Latchkey

Falhas de infraestrutura são exatamente o que uma plataforma de runner com autocorreção deve absorver. Os managed runners da Latchkey detectam falhas transitórias e mecânicas de infraestrutura, como falhas de provisionamento, preempções e instabilidades de rede, e automaticamente fazem retry, de modo que uma instabilidade isolada de plataforma não faça seu build falhar.

Principais conclusões

  • Uma falha de infraestrutura se origina na plataforma, não no seu código.
  • Problemas de provisionamento, preempções e instabilidades de rede são típicos.
  • Falhas de código se reproduzem; falhas de infraestrutura geralmente não.
  • A resposta certa é um retry, muitas vezes em um runner novo.

Guias relacionados