O Que É um Warm Pool? Runners Pré-Inicializados, Zero Espera
Um warm pool é uma pequena reserva de runners já inicializados e ociosos, para que quando um job chega ele comece imediatamente em vez de esperar por uma máquina provisionada do zero.
Runners efêmeros são limpos, mas lentos para iniciar - cada máquina nova precisa bootar, registrar e se preparar. Um warm pool esconde essa latência mantendo alguns runners prontos com antecedência, trocando um pouco de custo ocioso por muita velocidade.
O problema do cold start
Provisionar um runner novo leva tempo: lançar a instância, bootar o OS, iniciar o agente runner, registrar no GitHub. Em um caminho frio, isso pode ser de dezenas de segundos a minutos antes de o seu primeiro step sequer rodar.
Como um warm pool resolve isso
A plataforma mantém N runners pré-inicializados e registrados, esperando. Quando um job chega, ele pega um runner pronto e começa em cerca de um segundo. O pool então se reabastece em segundo plano para que o próximo job também seja rápido.
Dimensionando o pool
- Pequeno demais: rajadas transbordam o pool e os jobs de overflow batem em cold starts.
- Grande demais: você paga por máquinas ociosas que nunca são usadas.
- Bem dimensionado: o pool cobre sua concorrência típica, com autoscaling para picos.
Warm pool vs runner persistente
Um warm pool dá a velocidade de uma máquina pronta sem a sujeira do reúso: os runners do pool ainda são efêmeros e de uso único. Você tem inícios rápidos e estado limpo ao mesmo tempo.
Warm pools na Latchkey
A Latchkey mantém warm pools para que seus jobs tipicamente comecem em cerca de um segundo, sem fila e sem imposto de cold start, enquanto cada runner permanece efêmero.
Principais conclusões
- Um warm pool são runners pré-inicializados e ociosos prontos para pegar um job instantaneamente.
- Ele esconde a latência de cold start de provisionar máquinas novas.
- O tamanho do pool troca custo ocioso pela chance de cold starts por overflow.
- A Latchkey usa warm pools para que os jobs comecem em cerca de um segundo.