Skip to content
Latchkey

O Que É um Cold Start em CI? A Espera Antes do Seu Primeiro Step

Um cold start é o tempo gasto provisionando um runner novinho - bootando, registrando, preparando - antes que seu job possa rodar um único step.

Runners efêmeros dão a cada job uma máquina limpa, mas uma máquina limpa precisa primeiro ser criada. Esse tempo de setup é o cold start, e é tempo morto que você paga em latência de feedback em todo job que bate em um runner novo.

O que acontece durante um cold start

Lançar a instância, bootar o OS, iniciar e registrar o agente runner no GitHub, e então começar o job. Em um caminho totalmente frio, isso pode ir de dezenas de segundos a minutos dependendo do tamanho da imagem e da infraestrutura.

Cold start vs warm start

Um warm start entrega o job a um runner que já está bootado e registrado, então o primeiro step começa em cerca de um segundo. A diferença entre frio e quente é inteiramente o trabalho de provisionamento que você fez ou não fez com antecedência.

O que piora os cold starts

  • Imagens de runner grandes que demoram mais para puxar e bootar.
  • Escala a partir de zero, onde nenhum runner existe até um job chegar.
  • Instalações pesadas de dependências sem cache do qual restaurar.

Como removê-lo

Mantenha um warm pool de runners pré-inicializados para que os jobs peguem uma máquina pronta, e use cache para que mesmo um runner novo restaure dependências rápido em vez de reconstruí-las.

Sem cold starts na Latchkey

A Latchkey serve jobs a partir de warm pools, então você tem o benefício do estado limpo dos runners efêmeros sem a espera do cold start - os jobs tipicamente começam em cerca de um segundo.

Principais conclusões

  • Um cold start é o atraso de provisionamento antes de um runner novo poder rodar um job.
  • Warm starts começam em cerca de um segundo; cold starts levam muito mais.
  • Imagens grandes, escala a partir de zero e deps sem cache pioram isso.
  • Warm pools mais cache eliminam o imposto de cold start.

Guias relacionados