Cold Start vs Warm Start no CI: De Onde Vem a Espera
Um cold start significa que um runner precisa ser criado e inicializado antes que seu job sequer possa começar; um warm start significa que já há um esperando. A diferença é o atraso entre a fila e o início que você sente antes de qualquer um dos seus steps rodar.
Antes de um job rodar um único step, um runner precisa existir, inicializar, se registrar e ser atribuído. Se isso acontece sob demanda (cold) ou a partir de um pool pronto (warm) determina quanta espera ociosa fica na frente de cada job.
O que um cold start inclui
- Provisionar uma instância nova (alocar a VM).
- Inicializar a runner image e iniciar o agente.
- Registrar-se no serviço de CI e receber a atribuição do job.
- Aí então - só então - o primeiro step começa.
O que um warm start pula
Um warm start puxa de um pool de runners que foram provisionados, inicializados e registrados de antemão. O job é entregue a um deles quase imediatamente, pulando o atraso de provisionamento e inicialização. O primeiro step começa em aproximadamente o tempo que leva para atribuir o job.
A troca
Runners warm custam dinheiro enquanto ficam ociosos, esperando trabalho. Cold starts custam latência em cada job mas nada enquanto ociosos. Plataformas de runners gerenciados equilibram isso com um warm pool dimensionado à demanda: runners prontos suficientes para absorver a carga normal, com provisionamento cold start para o excedente.
Por que importa para custo e sensação
O tempo de cold start é tempo morto pelo qual você ainda pode pagar (o setup dentro do job é cobrável) e faz o CI parecer lento, especialmente com muitos jobs curtos. Reduzi-lo - via warm pools e images mais enxutas que inicializam mais rápido - melhora tanto a conta quanto a experiência do desenvolvedor. Um check verde depois de uma fila longa ainda esconde um problema de provisionamento.
Principais conclusões
- Cold start = provisionar + inicializar + registrar antes de seu job começar.
- Warm start = reutilizar um runner pré-provisionado, pulando esse atraso.
- Warm pools custam dinheiro ocioso; cold starts custam latência por job.
- Images que inicializam mais rápido e warm pools bem dimensionados melhoram custo e sensação.