Jak uruchomić pipeline CI/CD na Kubernetesie?

Kubernetes i kontenery mają ogromne znaczenie dla realizacji celu, jakim jest automatyzacja procesów dostarczania oprogramowania. Coraz więcej organizacji sięga po model pracy oparty na metodyce DevOps, czyli integracji zespołów programistycznych i operacyjnych. 

Zgodnie z nim rozwiązania tworzy się w ciągłych, płynnych przepływach pracy (CI/CD), a nie wg tradycyjnego, kaskadowego modelu. CI, czyli Continuous Integration zakłada ciągłą integrację (testy integracyjne, jednostkowe), a CD ciągłe dostarczanie / wdrażanie oprogramowania. Ponieważ Kubernetes pozwala zautomatyzować zarządzanie złożonymi aplikacjami, doskonale wspiera praktyki DevOps.  

Aby zbudować pipeline’y CI/CD warto skorzystać z popularnych narzędzi. Pozwalają one na znaczne skrócenie czasu potrzebnego na wykonanie tych czynności oraz zmniejszenie błędów popełnianych przez ludzi. Najczęściej wykorzystywane to: 

Narzędzia do ciągłej integracji (CI)

Jenkins

najczęściej używane oprogramowanie do automatyzacji procesów prowadzonych na różnych systemach operacyjnych. Wymaga posiadania własnej infrastruktury i samodzielnego zarządzania agentami. 

GitHub Actions

GitHub Actions to narzędzie, które pozwala użytkownikom uruchamiać zadania w ramach zarówno procesów Continuous Integration, jak i Continuous Delivery. Jest to szczególnie przydatne dla deweloperów, którzy chcą mieć pełną kontrolę nad swoim środowiskiem CI/CD. Narzędzie nie wymaga instalacji, ani integracji, to typowa usługa SaaS. Aby zacząć korzystać z jego funkcjonalności, wystarczy dostarczyć plik konfiguracyjny (YAML), który definiuje cały pipeline. 

Drone CI/CD

popularne narzędzie do integracji i automatyzacji procesów budowania oprogramowania, alternatywa dla Jenkins.
Oprogramowanie w obszarze CI, którym również warto się zainteresować: CircleCI, TeamCity, Bamboo, Travis CI, Gitlab. 

Narzędzia do ciągłego dostarczania (CD)  

FluxCD, ArgoCD

to dwa najpopularniejsze narzędzia do łatwego wdrażania oprogramowania m.in. na klastry K8s. Pozwalają kontrolować aktualny stan aplikacji w repozytorium, wraz z zachodzącymi zmianami synchronizują klaster z dostarczoną konfiguracją. 

Pozostałe narzędzia wspierające procesy CD: Tekton.