Czy powinieneś używać akcji GitHub, czy samoobsługowego serwera kompilacji?

Czy powinieneś używać akcji GitHub, czy samoobsługowego serwera kompilacji?

GitHub Actions to platforma CI/CD, która umożliwia programistom automatyczne tworzenie, testowanie i wdrażanie aplikacji w GitHub, bez użycia jakichkolwiek zewnętrznych narzędzi. Biorąc pod uwagę, jak łatwy jest w użyciu, czy potrzebujesz zewnętrznego serwera kompilacji?

Akcje GitHuba

Są one jednak generalnie skomplikowane w konfiguracji, dlatego GitHub Actions oferuje alternatywę dla codziennych programistów. Jest znacznie prostszy i często bezpłatny dla większości użytkowników, i pomimo tego, że jest darmowym narzędziem, wytrzymuje rozwiązania zastrzeżone, zwłaszcza dzięki najnowszym aktualizacjom i wsparciu społeczności.

Konfiguracja jednym kliknięciem i łatwość obsługi GitHub Actions sprawiają, że jest to doskonałe narzędzie dla początkujących do nauki automatyzacji kompilacji, zwłaszcza że nie musisz samodzielnie konfigurować całej infrastruktury, aby rozpocząć, i nie potrzebujesz swojego własne serwery działające 24/7 do obsługi kompilacji.

Większość typów aplikacji ma już utworzone szablony, co oznacza, że ​​automatyczne budowanie aplikacji jest zwykle tak proste, jak kliknięcie karty „Akcje” w repozytorium i skonfigurowanie gotowego szablonu. GitHub może nawet polecić ci jeden na podstawie twojej bazy kodu:

Możesz także napisać własne pliki konfiguracyjne YAML, które są w stanie wykorzystywać dowolne dostępne narzędzia i kontenery Docker do budowania dowolnej aplikacji, zarówno na biegaczach Windows, jak i Linux. Mogą one uruchamiać dowolne skrypty, w tym skrypty Bash/PowerShell znajdujące się w Twoim repozytorium.

Jedną z najlepszych funkcji GitHub Actions jest rynek społecznościowy, który działa jak menedżer pakietów dla narzędzi często używanych w skryptach kompilacji. Mogą one zaoszczędzić dużo czasu, który poświęciłbyś na samodzielną automatyzację skryptów. Na przykład powszechną taktyką wdrażania jest przesyłanie artefaktów kompilacji do zasobnika pamięci masowej Amazon S3, a na rynku dostępnych jest wiele narzędzi, które mogą to zrobić za Ciebie.

Korzystając z rynku, GitHub Actions może zrobić w zasadzie wszystko, co inne samodzielne rozwiązania, tylko przy odrobinie większego wysiłku ręcznego. W końcu to tylko uruchamianie podstawowych skryptów w systemie Linux lub Windows.

Na przykład narzędzia takie jak Jenkins oferują integrację z oprogramowaniem do zarządzania problemami, takim jak Jira lub Trello, lub integracje logowania ze Slackiem. Są one wbudowane w oprogramowanie i łatwe w konfiguracji, a ponadto są świetnymi zaletami samodzielnych systemów kompilacji. Jednak akcje GitHub można również skonfigurować do wykonywania wszystkich tych czynności, konfigurując narzędzia z rynku.

Jedną z największych wad GitHub Actions jest struktura cen. Każde konto lub organizacja GitHub ma określoną liczbę minut serwera kompilacji, która jest współdzielona we wszystkich repozytoriach. Każda minuta, którą serwer GitHub spędza na uruchamianiu Twojej kompilacji, zużywa minuty z tego zasobnika. Bezpłatny poziom to 2000 minut, czyli połowa tego dla systemu Windows, co wciąż jest więcej niż wystarczające dla większości zwykłych użytkowników.

Możesz zapłacić więcej za GitHub Pro, Team lub Enterprise za więcej minut, ale możesz też całkowicie obejść ten problem, udostępniając własnego hostowanego biegacza. Jeśli masz dodatkowy serwer, możesz dość szybko skonfigurować go do akceptowania zadań GitHub Actions. W zależności od wydajności tego serwera może być nawet znacznie szybszy niż hosting współdzielony GitHub Action. Możesz przeczytać nasz przewodnik na temat konfigurowania własnych biegaczy, aby dowiedzieć się więcej.

Ogólnie rzecz biorąc, GitHub Actions jest fantastyczny dla hobbystów i działa na tyle dobrze, że większość małych zespołów nie miałaby problemów z budowaniem swoich projektów za pomocą usługi.

Zewnętrzne serwery kompilacji

Z drugiej strony zewnętrzny serwer kompilacji, taki jak Jenkins lub TeamCity, zwykle zapewnia bardziej zaawansowane funkcje do tworzenia, testowania i wdrażania aplikacji i jest zwykle preferowany przez większe zespoły i korporacje ze względu na większą elastyczność.

Jeśli Twój zespół ma wiele projektów, posiadanie scentralizowanego miejsca do zarządzania automatyzacją i wdrażaniem tych projektów jest bardzo przydatne. Oddziela to kwestie związane z każdą usługą i pozwala kontroli źródła skoncentrować się na hostowaniu kodu, a serwer kompilacji na jego kompilacji.

Na przykład, jeśli chcesz zarządzać skryptami kompilacji dla wielu repozytoriów, musisz to zrobić z poziomu ustawień każdego repozytorium. Ale za pomocą serwera kompilacji możesz tworzyć grupy konfiguracji kompilacji, które używają tego samego szablonu, i wprowadzać zmiany w szablonie. Po prostu łatwiej jest zobaczyć, co ogólnie dzieje się z automatyzacją, gdy masz ładny pulpit nawigacyjny

Pulpit nawigacyjny TeamCity

Oddzielenie systemu kompilacji od kontroli źródła zapewnia również większą elastyczność w wyborze narzędzi i usług. Na przykład, jeśli chcesz korzystać z alternatywnych rozwiązań do kontroli źródła, takich jak Gitlab lub BitBucket, możesz je łatwo zastąpić bez ingerowania w konfigurację serwera kompilacji. Dzięki GitHub Actions jesteś w zasadzie ograniczony do korzystania z GitHub.

Samodzielne rozwiązania mogą również korzystać z plików konfiguracyjnych w stylu YAML, ale zwykle mają więcej wbudowanych funkcji i oferują większą kontrolę nad krokami i automatyzacją. Na przykład TeamCity dzieli kompilację na poszczególne kroki, z których każdy może uruchamiać różne skrypty, akcje lub pliki wykonywalne i może być konfigurowany z większą wiernością niż prosty plik YAML.

Wreszcie, funkcje i integracje oferowane przez autorskie rozwiązania są przydatne i ogólnie przyjemne. Na przykład TeamCity oferuje niestandardową integrację aplikacji Slack, która może rejestrować błędy kompilacji bezpośrednio w Twoim zespole.

Ogólnie rzecz biorąc, jeśli Twój zespół ma wiele projektów i zależy Ci na efektywnym zarządzaniu nimi, warto rozważyć skonfigurowanie własnego serwera CI/CD.

Na szczęście wiele dobrych rozwiązań CI/CD jest darmowych lub typu open source. Jenkins jest całkowicie open source, ale wymaga własnego hostingu. JetBrains TeamCity jest bezpłatny, jeśli sam hostujesz, ale oferuje również płatną usługę w chmurze. Travis CI jest tylko płatny, ale jest kolejnym popularnym rozwiązaniem stosowanym w branży.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *