Skip to content
Latchkey

O Que É Paralelismo em CI?

Paralelismo em CI significa fazer trabalho independente ao mesmo tempo em vários runners, de modo que um pipeline termine no tempo de seu ramo mais lento, e não no total.

Se um pipeline executa tudo um passo após o outro, sua duração é a soma de todos os passos. Quando os passos são independentes, executá-los simultaneamente transforma essa soma em um máximo - o ramo mais lento - que é como as equipes mantêm o feedback rápido à medida que as suítes de teste crescem.

O que pode rodar em paralelo

  • Jobs independentes - lint, type-check e testes unitários sem ordenação entre eles.
  • Combinações de matrix - cada célula de SO e versão de uma só vez.
  • Shards de teste - uma fatia da suíte por runner.

Um pequeno exemplo

Dividir um pipeline de 12 minutos em três jobs independentes - lint (2 min), testes unitários (12 min), build (5 min) - que rodam juntos faz o todo levar cerca de 12 minutos (o mais lento) em vez de 19 (a soma).

Paralelismo vs limites de concorrência

Paralelismo é quanto você poderia executar de uma só vez. Limites de concorrência são quanto você tem permissão para executar - um teto de runners simultâneos vindo do seu plano ou das suas próprias configurações. A vazão real é o menor dos dois.

Quando deixa de ajudar

O paralelismo só ajuda com trabalho independente; um job que precisa esperar por um job anterior não pode se sobrepor a ele. E muitos jobs paralelos curtos pagam cada um um overhead fixo de inicialização, então dividir demais pode custar mais do que economiza.

Custo e capacidade de runners

Mais paralelismo significa mais runners rodando ao mesmo tempo. Na cobrança por minuto, o total de computação é semelhante, mas você precisa de capacidade suficiente de runners concorrentes - e é aí que uma plataforma de runners gerenciada que escala a frota sob demanda evita que os pipelines paralelos fiquem na fila.

Principais conclusões

  • Paralelismo executa trabalho independente simultaneamente para reduzir o tempo de relógio.
  • A vazão é limitada pelo seu teto de concorrência, não apenas pelo trabalho disponível.
  • Apenas passos independentes se paralelizam; dividir demais adiciona overhead de inicialização.

Guias relacionados