O Que É Provisionamento de Runner? Do Trigger à Máquina Pronta
Provisionamento de runner é tudo o que acontece entre um job ser disparado e um runner estar pronto para executá-lo - launch, boot, register, prepare.
Provisionamento é o imposto de setup do CI. Para runners quentes ele já está pago; para os frios, é o atraso antes do seu primeiro step. Conhecer os passos diz para onde vai o tempo de provisionamento e como cortá-lo.
Os passos do provisionamento
- Allocate compute - lançar uma VM, container ou pod.
- Boot do SO e iniciar serviços a partir da imagem do runner.
- Register o runner com o serviço de CI (token ou config JIT).
- Prepare o workspace e iniciar o job.
Para onde vai o tempo
Os maiores custos são o launch da instância e o boot do SO, especialmente com imagens grandes. A registration geralmente é rápida. O setup de dependências dentro do job é tecnicamente pós-provisionamento, mas contribui para o tempo até o primeiro trabalho útil.
Provisionamento a frio vs a quente
O provisionamento a frio roda todos os passos quando o job chega, custando dezenas de segundos a minutos. O provisionamento a quente faz os passos lentos com antecedência para que o job pegue um runner pronto em cerca de um segundo. Warm pools são provisionamento pré-pago.
Acelerando
Imagens menores dão boot mais rápido, warm pools escondem o custo por completo e o cache encurta o setup dentro do job. Plataformas gerenciadas ajustam os três para que o provisionamento seja efetivamente invisível ao desenvolvedor.
Quando o provisionamento falha
O provisionamento pode falhar em qualquer passo: capacidade indisponível, erros no pull da imagem ou um runner que dá boot mas nunca registra. Uma plataforma robusta retenta em capacidade nova em vez de falhar o job, para que um contratempo transitório de provisionamento não pareça um build instável para o desenvolvedor.
Principais conclusões
- Provisionamento é criar e preparar um runner para rodar um job.
- Os passos são allocate, boot, register e prepare.
- O launch da instância e o boot do SO dominam o tempo de provisionamento a frio.
- Warm pools, imagens menores e cache o tornam quase instantâneo.