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:

  1. Deweloperzy często wypychają kod do repozytorium. Mogą to być poprawki, aktualizacje i nowe funkcjonalności.
  2. Po wypchnięciu, serwer Jenkinsa testuje ten kod.
  3. 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:

https://wpblog.semaphoreci.com/wp-content/uploads/2019/03/cicd-pipeline-introduction.png

A oto teoretyczny ciąg dla projektu Go:

https://wpblog.semaphoreci.com/wp-content/uploads/2019/03/golang-ci-pipeline.png

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ę.

https://blog.crisp.se/wp-content/uploads/2013/02/continuous-delivery-deployment-sm.jpg

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