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.