Qual É o Custo do Tempo de Fila do CI? Esperando por um Runner
O tempo de fila do CI é a espera entre um job ser disparado e um runner efetivamente o pegar - tempo que custa em produtividade mesmo quando não é diretamente faturado.
O tempo de fila é a parte do custo de CI que se esconde na produtividade em vez de na fatura. Quando os runners são escassos, os jobs esperam, os lançamentos travam e os desenvolvedores fazem troca de contexto. Em algumas plataformas você até paga pela espera. Entender o custo da fila completa o quadro do que o CI lento realmente custa.
O que causa a fila
O tempo de fila aparece quando há mais jobs do que runners disponíveis: limites de concorrência, uma frota self-hosted limitada ou atrasos de provisionamento em cold-start. O job fica na fila até que a capacidade se libere ou um novo runner inicialize.
O custo direto
Na maioria das plataformas hosted você não é faturado enquanto está na fila, mas em algumas configurações self-hosted ou reservadas a capacidade pela qual você espera já está custando dinheiro. De qualquer forma, capacidade reservada ociosa dimensionada para evitar filas é uma despesa real.
O custo indireto
O custo maior é humano. Um desenvolvedor esperando por um build na fila faz troca de contexto ou fica ocioso; um lançamento bloqueado atrás de uma fila é entregue mais tarde. Ao longo de uma equipe, o atraso induzido pela fila pode superar em muito qualquer faturamento direto.
O trade-off de capacidade
Você pode eliminar a fila superprovisionando runners, mas isso troca o custo de fila pelo custo ocioso. O objetivo é ter capacidade suficiente para manter as filas curtas sem pagar por uma frota grande que fica quase sempre sem uso.
Medindo o custo da fila
Acompanhe o tempo em fila por job e a fração de execuções que esperam. Multiplique o atraso de fila significativo pelo tempo do desenvolvedor e pelo impacto no lançamento para estimar o custo indireto que nunca aparece em uma fatura de CI.
Reduzindo o tempo de fila
Pools aquecidos gerenciados resolvem a fila sem desperdício ocioso. A Latchkey mantém um pool de runners pré-inicializados prontos para que os jobs comecem quase imediatamente, escalando a capacidade conforme a demanda - você evita tanto o custo de fila quanto o custo de frota ociosa, a cerca de 70% abaixo das tarifas do GitHub-hosted.
Principais conclusões
- O tempo de fila é a espera antes de um job conseguir um runner.
- O faturamento direto pela fila é raro; o custo real é a produtividade perdida.
- Eliminar filas com superprovisionamento apenas troca isso por custo ocioso.