Pipeline je sekvence prvků pro zpracování dat, uspořádaná tak, aby výstup každého prvku byl vstupem dalšího. Hlavním cílem je automatizace, efektivita a paralelizace úkolů.
V moderním IT se s tímto pojmem setkáváme ve třech hlavních oblastech:
V příkazové řádce se pro pipeline používá znak svislítka |. Umožňuje propojit malé, jednoúčelové nástroje do komplexních řetězců.
cat log.txt | grep „ERROR“ | wc -l
1. cat načte soubor.
2. ''grep'' vyfiltruje řádky s chybou. 3. ''wc -l'' spočítá jejich počet.
V rámci DevOps je pipeline automatizovaný proces, který kód programátora „protlačí“ přes několik fází až k uživateli:
Nástroje jako Jenkins, GitLab CI, GitHub Actions nebo Azure DevOps umožňují tyto kroky definovat jako kód (Pipeline as Code).
V oblasti strojového učení pipeline zajišťuje, že data protékají systémem bezpečně a reprodukovatelně:
Díky pipeline (např. v Kubeflow nebo Apache Airflow) lze celý proces trénování AI zopakovat stisknutím jednoho tlačítka.
Na úrovni procesoru znamená pipelining techniku, kdy procesor začne zpracovávat novou instrukci dříve, než dokončí tu předchozí (podobně jako na montážní lince v továrně). To výrazně zvyšuje propustnost procesoru.
Zajímavost: Koncept pipeline zpopularizoval Douglas McIlroy pro systém Unix. Jeho filosofie byla: „Pište programy tak, aby dělaly jednu věc a dělaly ji dobře. Pište programy tak, aby spolupracovaly. Pište programy tak, aby zpracovávaly textové proudy, protože to je univerzální rozhraní.“