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:

  1. Deweloperzy często wypychają kod do repo. 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ł: 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:

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, 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