O Que É um Build Agent? A Máquina Que Roda Seus Jobs
Um build agent é a máquina, VM ou container que de fato roda os jobs do seu pipeline depois que o servidor de CI os distribui.
O servidor de CI decide o que deve rodar; o build agent faz a execução. Um agent é um worker que se conecta ao sistema de CI, aguarda trabalho, pega um job, executa seus steps, transmite os logs de volta e reporta o resultado. Os termos "agent" e "runner" são amplamente intercambiáveis entre as plataformas de CI.
Como um agent recebe trabalho
O agent se registra no servidor de CI e escuta. Quando um job está na fila e corresponde aos labels ou capacidades do agent, o servidor o atribui. O agent faz o checkout do código, roda os steps e faz upload de quaisquer artifacts.
Agent vs servidor
- Servidor: agenda o trabalho, armazena os resultados, exibe a UI.
- Agent: executa os steps reais do job.
- Um servidor normalmente coordena muitos agents.
Agents hospedados vs autogerenciados
Agents hospedados são fornecidos e mantidos pelo fornecedor de CI; você apenas os usa. Agents autogerenciados rodam em máquinas que você possui, dando controle sobre hardware e software ao custo de mantê-los.
Um exemplo rápido
No GitHub Actions um agent é o processo runner. Ele se registra com um token, faz polling por jobs que correspondam aos seus labels e roda cada um em um workspace limpo antes de buscar o próximo.
Agents e velocidade do pipeline
A rapidez com que um agent inicia e o quão potente ele é moldam diretamente o tempo do job. Um agent frio que precisa dar boot e instalar ferramentas é mais lento do que um quente e pré-provisionado. Runners gerenciados (Latchkey) mantêm os agents quentes e pré-carregados para que os jobs comecem a rodar quase imediatamente.
Principais conclusões
- Um build agent é o worker que executa os jobs do pipeline.
- "agent" e "runner" significam praticamente a mesma coisa entre plataformas.
- A velocidade de inicialização e a potência do agent afetam diretamente quanto tempo os jobs levam.