CI/CD
Być może słyszałeś ten dziwny akronim krążący po sieci.
Ale co to do cholery jest?
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.
Ale 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 kawałki oprogramowania, dobry przepływ pracy CI / CD pozwoli ci zaoszczędzić czas.
Dzięki temu szef ma zadowoloną minę!
Zapobiega to również tobie, deweloperowi, od przewracania biurka w epickim szale odejścia.
Jakie są korzyści z zastosowania CI/CD?
Kilka korzyści płynących z CI/CD to:
- Redukcja błędów w produkcji i inscenizacji
- Ł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. A narzędzie (narzędzia) CI, które wybierzesz, pozwala 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 repo. 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ł: Popraw kod i powtórz 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ą równania „CI/CD”.
Zapewnia ono, że Twoje oprogramowanie może być wydane na żądanie. Wdrożenia są szybkie i częste.
Pamiętasz proces z powyższej sekcji dotyczącej CI?
Kiedy kod przejdzie testy, jest wypychany 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, niektóre są freemium, a niektóre są tylko płatnym tier.
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.
Czy CI/CD jest niesamowicie potężnym mechanizmem dla twojego workflow? Tak.
Ale nauka podstaw programowania i zarządzania przepływem pracy 101 (tj. Przepływ pracy Git) jest ważniejsza jako aspirujący deweloper.
Dla początkujących:
Spróbuj!
Ponieważ 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, nawet jako samodzielny deweloper, jest dobrą praktyką.
Dla osób z branży:
Absolutnie. Jeśli masz zespół DevOps, istnieje duża szansa, że wdrożył on (lub planuje wdrożyć) przepływ pracy CI/CD.
Ale jeśli 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.
Pod 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ć użycie.
Czy używasz CI/CD? Jeśli tak, to jakie narzędzia preferujesz?
Oryginalna wersja artykułu: https://dev.to/realtoughcandy/what-is-ci-cd-introduction-to-ci-cd-for-newbies-1l0f