Być może słyszałeś ten dziwny akronim krążący po sieci: CI/CD. Ale co on w ogóle oznacza? I czy powinieneś go używać jako twórca oprogramowania? Czytaj dalej, aby się dowiedzieć.
Czym jest CI/CD?
CI/CD to akronim oznaczający ciągłą integrację/ciągłe wdrażanie. Może też oznaczać continuous integration/continuous delivery (więcej o różnicach poniżej).
Zasadniczo CI/CD automatyzuje:
- twoje konstrukcje
- twoje testy
- wdrożenia
I jak wszystkie dobre fragmenty oprogramowania, dobry przepływ pracy CI / CD pozwoli ci zaoszczędzić sporo czasu i.. nerwów;)
Jakie są korzyści z zastosowania CI/CD?
Kilka korzyści płynących z CI/CD to:
- Mniej błędów w produkcji i testach
- Łatwiejsze do znalezienia i usunięcia błędy
- Łatwy rollback, ponieważ zmiany są małe i przyrostowe
- Wzrost produktywności zespołu
- Szybka informacja zwrotna, w tym zautomatyzowana analiza kodu i raport o stanie kodu
- Przewaga konkurencyjna: szybciej można uzyskać informacje zwrotne od klientów
- Koniec z ręcznym wdrażaniem przez FTP
Czym jest ciągła integracja?
Ciągła integracja nie musi być konkretnym narzędziem. Pomyśl o niej bardziej jako o przepływie pracy lub konfiguracji, natomiast narzędzie/a CI, które wybierzesz, pozwalą ci wykonać ten przepływ pracy.
Na przykład, istnieje narzędzie CI o nazwie Jenkins.
Oto jak mógłby wyglądać proces CI, gdybyś używał Jenkinsa:
- Deweloperzy często wypychają kod do repozytorium. Mogą to być poprawki, aktualizacje i nowe funkcjonalności.
- Po wypchnięciu, serwer Jenkinsa testuje ten kod.
- Jenkins pokazuje deweloperom, czy ich kod przeszedł lub nie przeszedł.
Jeśli kod się nie powiódł należy go poprawić i powtórzyć kroki 1-3.
Jeśli kod przejdzie pomyślnie: wyślij do środowiska wdrożeniowego.
W tym przepływie zepsute kompilacje stają się priorytetem przed budową następnej funkcji.
Co to jest Continuous Deployment?
Ciągłe wdrażanie jest drugą częścią akronimu „CI/CD”. CD zapewnia, że Twoje oprogramowanie może być wydane na żądanie. Wdrożenia są szybkie i częste.
Kiedy kod przejdzie testy (kroki 1-3 powyżej), jest przekazywany do ostatniej fazy: środowiska wdrożeniowego. Cały ten proces ma swoją nazwę. Nazywa się deployment pipeline. Co więcej, wszystkie zmiany w kodzie, które wprowadzasz, przechodzą przez ten strumień.
Co to jest schemat wdrażania?
Schemat wdrożenia (lub schemat CI/CD) to seria walidacji, przez które przechodzi Twój kod, zanim zostanie wypuszczony na produkcję.
Na przykład, prosty ciąg może składać się z następujących faz:
A oto teoretyczny ciąg dla projektu Go:
Te przykładowe ciągi mogą wyglądać stosunkowo prosto. Jednak szybko mogą stać się skomplikowane:
Należy pamiętać, że ciągi różnią się w zależności od firmy i projektu.
Jaka jest różnica między ciągłym wdrażaniem a ciągłym dostarczaniem?
Ciągłe wdrażanie oznacza po prostu, że wszystkie zmiany przechodzą przez strumień. Są one automatycznie wdrażane do produkcji.
Z drugiej strony, ciągłe dostarczanie oznacza, że deweloperzy muszą ręcznie zatwierdzić wdrożenie,
następnie, po zatwierdzeniu, strumień kontynuuje swoją automatyzację.
Jakie są popularne narzędzia CI/CD?
Niektóre popularne narzędzia CI/CD obejmują:
- Travis CI
- Jenkins
- CircleCI
- GitLab
- Spinnaker
- BuildKite
Czy narzędzia CI/CD kosztują?
To zależy. Podczas gdy niektóre narzędzia CI / CD są całkowicie darmowe, inne są freemium, a jeszcze inne są tylko płatnym modułem. Dodatkowo wiele z nich jest dostępnych w ramach pakietu dla deweloperów studenckich GitHub. Wśród nich znajduje się Travis CI.
Ponadto GitHub ogłosił w 2019 roku, że działania GitHub obsługują teraz CI / CD. Jest to darmowa funkcja dostępna dla publicznych repozytoriów.
Czy powinienem używać CI/CD jako twórca oprogramowania?
Dla kompletnych nowicjuszy kodowych:
Niezalecane.
CI/CD jest oczywiście niesamowicie potężnym mechanizmem dla twojego workflow, natomiast na początku nauka podstaw programowania i zarządzania przepływem pracy 101 (tj. przepływ pracy Git) jest dużo ważniejsza niż CI/CD.
Dla początkujących:
Spróbuj!
Jeśli planujesz pracować w branży jako programista, jest duża szansa, że będziesz używał jakiegoś rodzaju automatyzacji. Tak więc, zapoznanie się z ciągłą integracją i ciągłym wdrażaniem/dostarczaniem, jest zdecydowanie dobrą praktyką.
Dla osób z branży:
Absolutnie tak. Jeśli masz zespół DevOps, istnieje duża szansa, że wdrożył on (lub planuje wdrożyć) przepływ pracy CI/CD. Jeśli jednak nie masz zespołu DevOps, nadal możesz zacząć działać z CI/CD.
Zobacz również: Czym zajmuje się DevOps?
Wnioski: Czym jest CI/CD?
Podsumowując, CI/CD to sposób na zautomatyzowanie budowania, testowania i wdrażania.
Istnieje wiele dostępnych narzędzi open source. Ale są też płatne opcje, jeśli potrzebujesz aktualizacji.
Na koniec dnia – ciągła integracja i ciągłe wdrażanie / dostarczanie może zaoszczędzić czas i pieniądze.
Wreszcie, jeśli jesteś w zespole dev, jest to coś, co powinieneś poważnie rozważyć.
Oryginalna wersja artykułu: link