CI/CD - co to jest continuous integration i continuous delivery

blog.strefakursow.pl 1 rok temu

Usprawnij swój proces tworzenia aplikacji. Poznaj praktyki CI/CD, dzięki którym unikniesz błędów, a jakość Twojego kodu będzie wyższa. CI/CD cieszą się coraz większą popularnością i w tym artykule dowiesz się, na czym one polegają.


Kurs Jenkins - nowoczesny workflow CI/CD
5.0
(13 opinii)

Opanuj Jenkins od podstaw, naucz się automatyzować zadania i zostań mistrzem DevOps. Dowiedz się więcej



Podstawy

CI/CD oznacza połączenie continuous integration oraz (częściej) continuous delivery albo (rzadziej) continuous deployment. Wchodzą one w skład praktyk metodyki DevOps, czyli zespołu praktyk i narzędzi łączących i automatyzujących rozwój (development) systemu i jego eksploatację (operations). Reguły dyktowane przez CI/CD mają na celu ulepszenie sposobu, w jaki wprowadzane są do aplikacji zmiany w miarę jej rozwoju. Zmiany te mają być częste, dobrze sprawdzone i sprawnie działające.

Continuous integration (ciągła integracja)

Jedna aplikacja często rozwijana jest przez cały zespół developerów. Każdy członek zespołu pracuje nad przydzielonym mu fragmentem kodu, a następnie wszystko jest łączone w jeden kod. W trakcie tego łączenia może dojść do wielu problemów. Dana funkcja programu, która działała, gdy pracował nad nią jej developer, może teraz już nie działać, albo połączenie jej z kodem napisanym przez innych developerów może wymagać bardzo dużo pracy.

Praktyka ciągłej integracji polega na jak najczęstszym integrowaniu kodu we wspólnym repozytorium, automatycznym budowaniu aplikacji i automatycznym testowaniu każdej zmiany. W ten sposób błędy wykrywane są łatwiej i szybciej.


Continuous delivery (ciągłe dostarczanie)

Rozszerzeniem continuous integration jest continuous delivery. Automatyzuje ono proces przygotowywania infrastruktury i wydawania aplikacji. Praktyka ta ma zapewnić, iż oprogramowanie tworzone przez zespół jest zawsze gotowe na wprowadzenie go do środowiska produkcyjnego lub testowego (czyli gotowe na deployment). W ramach continuous delivery oprogramowanie tworzone jest w krótkich, szybkich i częstych cyklach. Proces deploymentu jest zaprojektowany tak, żeby był prosty i powtarzalny.


Continuous deployment (ciągłe wdrażanie)

Kiedy nowa funkcja aplikacji jest gotowa na deployment, również sam deployment może odbywać się automatycznie. Wówczas zespół developerów z góry określa kryteria, po których spełnieniu kod wchodzi we fazę deploymentu bez interwencji człowieka. Żeby ta praktyka była skuteczna, potrzebne jest dobre zaprojektowanie automatycznych testów. Continuous deployment jest ostatnim krokiem procesu „CI/CD pipeline”.

Kurs CI/CD od podstaw - dobre praktyki DevOps

Zobacz kurs

Kurs Kubernetes od podstaw - zarządzanie i automatyzacja kontenerów

Zobacz kurs

Kurs Microsoft Azure od podstaw

Zobacz kurs

Narzędzia wykorzystywane w CI/CD

Istnieje wiele różnych narzędzi, z których korzystają developerzy pracujący w ramach CI/CD pipeline. Jedne odpowiadają za część tych praktyk, podczas gdy inne obejmują wszystko od integracji po wdrożenie. Do tych ostatnich należą na przykład takie popularne narzędzia jak Jenkins i GitLab.

Jenkins jest open source’owym serwerem służącym do automatyzacji opisanych powyżej kroków w pracy nad aplikacjami. W tym celu dostarcza setki pomocnych pluginów. Pobierając kod wykorzystuje różne systemy kontroli wersji, między innymi Git, Mercurial i Subversion.

GitLab jest hostingowym serwisem internetowym opartym o system kontroli wersji Git. Oferuje repozytorium bazujące na Git, a także platformę przeznaczoną do CI/CD. GitLab jest darmowy dla użytkowników wykorzystujących własny serwer i płatny dla tych, którzy korzystają ze serwera GitLaba.

Inne popularne narzędzia używane w CI/CD to na przykład CircleCI, Chef, Puppet i Spinnaker. Istnieją różne formy opłaty za tego rodzaju narzędzia. Niektóre są całkiem darmowe, inne oferują wersję premium, a jeszcze inne nie posiadają w ogóle darmowej opcji.


Zalety CI/CD

Praktyki CI/CD wymagają wykonania dużej ilości pracy przy projektowaniu całego procesu zanim wprowadzi się go w użycie. Mimo wszystko opłaca się znać i używać tych praktyk. Zmniejsza to ilość błędów w aplikacji, praca idzie szybciej i rzadziej przedłuża się poza deadline, a kiedy pojawią się już jakieś błędy, to łatwiej je naprawić.

Podsumowanie

Podsumowując, CI/CD jest istotną częścią metodyki DevOps i stanowi zestaw praktyk, które warto znać ze względu na ich przydatność oraz popularność. Składa się z trzech głównych kroków. Continuous integration, continuous delivery i continuous deployment, które razem wzięte tworzą proces o nazwie CI/CD pipeline. Główną cechą tych praktyk jest automatyzacja oraz dzielenie pracy na małe i częste odcinki.

Idź do oryginalnego materiału