Skip to content
Latchkey

O Que É o Critical Path de um Pipeline? A Cadeia Mais Longa

O critical path de um pipeline é a cadeia mais longa de jobs dependentes; ele define o piso de quão rápido o pipeline inteiro pode terminar.

Não importa quantas máquinas você jogue em um pipeline, ele não pode terminar mais rápido do que sua cadeia de dependências mais longa. Essa cadeia é o critical path. Cada job nele deve esperar pelo anterior, então suas durações se somam. Encontre o critical path e você terá encontrado a única coisa limitando a velocidade do seu pipeline.

Por que a cadeia mais longa manda

Jobs fora do critical path executam em paralelo e terminam cedo; eles não estendem o tempo total. Jobs no critical path executam em sequência, então suas durações se somam. O pipeline só termina quando o último job dessa cadeia conclui.

Encontrando o critical path

Trace o grafo de dependências do início ao fim e encontre o caminho cuja duração total de jobs é a maior. Esse caminho, não qualquer job lento isolado, determina o tempo de execução mínimo.

Um exemplo rápido

Se build (5m) -> test (10m) -> deploy (3m) é a cadeia mais longa, o pipeline leva pelo menos 18 minutos mesmo se dez outros jobs executarem em paralelo ao lado. Acelerar um job paralelo não muda nada; acelerar o test muda tudo.

Encurtando o critical path

  • Divida um job crítico lento em shards paralelos (fan-out).
  • Faça cache do trabalho para que um step crítico seja pulado quando inalterado.
  • Remova dependências desnecessárias que forçam a serialização.
  • Mova trabalho não essencial para fora do critical path.

O critical path e os runners

O tempo de fila em um job crítico estende todo o critical path, então um job esperando por um runner é tão custoso quanto um job lento. Runners gerenciados (Latchkey) reduzem o tempo de fila em jobs críticos mantendo capacidade aquecida pronta, para que o critical path seja tempo de execução, não espera.

Principais conclusões

  • O critical path é a cadeia mais longa de jobs dependentes em um pipeline.
  • Ele define o tempo de execução mínimo; jobs fora do caminho não o estendem.
  • Acelere, faça sharding ou cache do critical path para tornar o pipeline mais rápido.

Guias relacionados