DevOps Pipeline
Praktyczny aspekt

Czym jest pipeline CI/CD

Uproszczony schemat pipeline'u wdrożeniowego

Definicja pipeline'u

Pipeline CI/CD to zestaw automatycznie wykonywanych etapów, przez które przechodzi kod źródłowy od momentu jego zapisania w repozytorium aż do wdrożenia na środowisku docelowym. Skrót CI oznacza ciągłą integrację (Continuous Integration), a CD odnosi się zwykle do ciągłego dostarczania (Continuous Delivery) lub ciągłego wdrażania (Continuous Deployment).

Celem takiego podejścia jest ograniczenie liczby ręcznych czynności potrzebnych do przygotowania nowej wersji oprogramowania oraz wcześniejsze wykrywanie błędów integracyjnych, zanim trafią one do środowiska produkcyjnego.

Etapy przetwarzania

Typowy pipeline składa się z kilku następujących po sobie kroków. Pierwszym jest pobranie kodu z systemu kontroli wersji po wykryciu nowego commitu. Kolejnym etapem jest kompilacja lub budowanie artefaktu — w zależności od języka programowania może to być kompilacja binarna, transpilacja lub tworzenie obrazu kontenera.

Po zbudowaniu artefaktu uruchamiane są testy automatyczne — jednostkowe, integracyjne, a czasem także end-to-end. Jeśli wszystkie testy zakończą się powodzeniem, artefakt trafia do etapu wdrożenia, który może obejmować środowisko testowe, przedprodukcyjne lub produkcyjne, w zależności od konfiguracji projektu.

Rola narzędzi orkiestracji

W wielu zespołach poszczególne etapy pipeline'u są opisywane w plikach konfiguracyjnych przechowywanych razem z kodem źródłowym, co pozwala na wersjonowanie samego procesu wdrożeniowego wraz z aplikacją.

Korzyści praktyczne

Zastosowanie pipeline'u CI/CD pozwala na wcześniejsze wykrywanie konfliktów w kodzie, skrócenie czasu potrzebnego na przygotowanie nowej wersji oraz ograniczenie liczby błędów wynikających z ręcznego wykonywania powtarzalnych czynności. Proces staje się bardziej przewidywalny i możliwy do odtworzenia w razie potrzeby.

Czy pipeline CI/CD jest konieczny w każdym projekcie? +

Nie jest to wymóg formalny, jednak w projektach z częstymi zmianami w kodzie i wieloma osobami pracującymi równolegle znacząco ułatwia utrzymanie stabilności procesu wytwórczego.

Czy CI i CD to zawsze ten sam proces? +

Nie — ciągła integracja odnosi się do automatycznego łączenia i testowania kodu, natomiast ciągłe dostarczanie lub wdrażanie dotyczy dalszych etapów związanych z publikacją aplikacji.