Odkrywaj biegaczy
Agenty GitHub to zasoby obliczeniowe realizujące przepływy pracy GitHub Actions. Każdy moduł uruchamiający może uruchamiać pojedyncze zadanie naraz. Umożliwiają deweloperom wykonywanie zadań kompilacji, testowania i wdrażania bezpośrednio z repozytoriów GitHub. Istnieją dwa główne typy modułów uruchamiającego usługę GitHub:
- Hostowane w GitHub agenty są zwirtualizowanymi lub konteneryzowanymi zasobami obliczeniowymi, które są udostępniane i zarządzane przez GitHub.
- Własne serwery uruchamiające to fizyczne, zwirtualizowane lub konteneryzowane zasoby obliczeniowe, którymi użytkownicy i organizacje GitHub zarządzają i udostępniają sami.
Każdy typ ma pewne unikatowe cechy, charakteryzuje się szeregiem odmiennych zdolności i wymaga uwzględnienia kilku różnych aspektów.
Należy pamiętać, że usługa GitHub zdecydowanie odradza używanie własnych modułów uruchamiających w publicznych repozytoriach. W ten sposób wprowadzono znaczne zagrożenie bezpieczeństwa, ponieważ potencjalnie umożliwia każdemu uruchamianie kodu w środowisku prywatnym organizacji.
Moduły uruchamiane w usłudze GitHub
Moduły uruchomieniowe hostowane w GitHub oferują wygodne rozwiązanie do wykonywania przepływów pracy w ramach usługi GitHub Actions, eliminując konieczność administrowania zapleczem sprzętowym i programowym. Są one przeznaczone do automatycznego skalowania na podstawie zapotrzebowania, zapewniając optymalną wydajność w okresach szczytowego użycia. Usługa GitHub udostępnia kilka wstępnie skonfigurowanych środowisk dla modułów uruchamiających hostowane w usłudze GitHub, obejmujące różne konfiguracje oprogramowania i systemy operacyjne, w tym Ubuntu Linux, Microsoft Windows i macOS.
Runnery hostowane na GitHubie zawierają domyślne wbudowane narzędzia systemu operacyjnego. Na przykład środowiska Ubuntu i macOS zawierają grep, find i which. Aby zidentyfikować wszystkie inne narzędzia wstępnie zainstalowane na runnerach, użytkownicy mogą przejrzeć specyfikację oprogramowania (SBOM) dla każdej kompilacji obrazów runnerów systemów Windows i Ubuntu. Alternatywnie użytkownicy mogą przejrzeć podsekcję Obraz Runnera w sekcji Konfigurowanie zadania w dziennikach przepływu pracy. Link po wpisie Dołączone oprogramowanie zawiera opis wszystkich wstępnie zainstalowanych narzędzi w module uruchamiającym przepływ pracy. Istnieje również możliwość zainstalowania dodatkowego oprogramowania w modułach uruchamiających hostowane w usłudze GitHub przez utworzenie zadania, które instaluje pakiety w ramach istniejącego przepływu pracy.
Hostowane przez GitHub biegacze działają na infrastrukturze chmurowej GitHub, wykorzystując maszyny wirtualne lub kontenery do uruchamiania przepływów pracy. Każde wykonanie przepływu pracy jest izolowane we własnym środowisku, zapewniając bezpieczeństwo i powtarzalność. Runnerzy hostowani w usłudze GitHub bezproblemowo integrują się z funkcją GitHub Actions, umożliwiając użytkownikom bezpośrednie odwoływanie się do nich w ramach przepływów pracy umieszczonych w repozytoriach GitHub.
Istnieją pewne limity użycia GitHub Actions w przypadku korzystania ze środowisk uruchomieniowych hostowanych w usłudze GitHub. W szczególności każde zadanie w przepływie pracy ma maksymalnie 6 godzin czasu wykonywania. Jeśli zadanie osiągnie ten limit, zadanie zostanie zakończone i zakończy się niepowodzeniem. Uruchomienie każdego przepływu pracy jest ograniczone do 35 dni. Jeśli przebieg przepływu pracy osiągnie ten limit, jego przebieg zostanie anulowany. Ten okres obejmuje czas trwania realizacji oraz czas spędzony na oczekiwaniu i zatwierdzeniu.
Warunki wstępne
Przed zaimplementowaniem modułów uruchamianych w usłudze GitHub użytkownicy muszą mieć repozytorium GitHub, w którym mogą definiować przepływy pracy przy użyciu funkcji GitHub Actions. Agenty są dostępne dla wszystkich użytkowników GitHub z dostępem do GitHub Actions.
Implementacja
W przeciwieństwie do własnych agentów, te hostowane przez GitHub są automatycznie przydzielane w ramach wykonywania indywidualnego przepływu pracy. Użytkownicy definiują przepływy pracy jako pliki w formacie YAML przechowywane w katalogu .github/workflows w repozytoriach GitHub. W ramach konfiguracji przepływu pracy użytkownicy określają żądane środowisko modułu uruchamiającego, w tym zależności systemu operacyjnego i oprogramowania. Biegacze z odpowiadającymi specyfikacjom są konfigurowani na żądanie za każdym razem, gdy przepływ pracy zostanie wyzwolony, po jednym biegaczu na każde zadanie. Wyzwalacze mogą być ręczne lub automatyczne na podstawie takich zdarzeń jak przesyłanie kodu, żądania wciągnięcia lub zdarzenia dystrybucji repozytorium.
Moduły uruchamiający hostowane w usłudze GitHub uwierzytelniają się w usłudze GitHub przy użyciu tokenów lub poświadczeń dostarczonych przez funkcję GitHub Actions. Polegają one na wbudowanej łączności w celu komunikowania się z platformą GitHub i pobierania artefaktów przepływu pracy.
Konserwacja
Usługa GitHub zarządza aktualizacjami i konserwacją modułów uruchamiających hostowane w usłudze GitHub, zapewniając, że pozostają one up-to— data z najnowszymi wersjami oprogramowania i poprawkami zabezpieczeń. Narzędzia programowe zawarte w modułach uruchamiaczy są aktualizowane co tydzień. Działania runnerów są monitorowane i rejestrowane, co ułatwia śledzenie wykonywania przepływów pracy i rozwiązywanie problemów.
Licencjonowanie i koszt
Runnery hostowane w GitHub są uwzględnione w cenach GitHub Actions, z rozliczeniami opartymi na użyciu dla minut działania przepływu pracy poza darmową warstwą. Użytkownicy korzystają z zautomatyzowanego i ekonomicznego skalowania, ponieważ usługa GitHub automatycznie przydziela i zwalnia zasoby runnerów w zależności od zapotrzebowania.
Moduły uruchamiane samodzielnie
W porównaniu z runnerami hostowanymi w GitHub, te samodzielnie hostowane zapewniają większą kontrolę i możliwości dostosowywania, a środowiska wykonawcze są w stanie obsłużyć szerszy zakres wymagań. Można je wdrożyć lokalnie lub w chmurze, w zależności od takich kryteriów, jak łączność sieciowa, koszt i dostępność zasobów.
Własne moduły uruchamiacze są aprowizowane i zarządzane przez użytkowników, zapewniając im pełną kontrolę nad środowiskiem wykonywania. Są one w pełni konfigurowalne, w tym specyfikacje sprzętu, konfiguracje oprogramowania i ustawienia sieciowe. Ułatwiają one również integrację z istniejącą infrastrukturą i narzędziami, minimalizując możliwość problemów ze zgodnością i współdziałaniem.
W przeciwieństwie do modułów uruchamianych w usłudze GitHub nie ma ograniczeń czasu potrzebnych do ukończenia poszczególnych zadań i przebiegów przepływu pracy.
Warunki wstępne
Użytkownicy muszą ustawić i skonfigurować samodzielnie hostowane jednostki wykonawcze w wybranej infrastrukturze, w tym instalować oprogramowanie jednostki wykonawczej oraz wszelkie dodatkowe zależności oprogramowania. Kod źródłowy dla biegaczy samodzielnie zarządzanych jest dostępny jako projekt open source w witrynie GitHub pod adresem https://github.com/actions/runner. Każdy samodzielny agent działa jako łącznik, który komunikuje się z GitHub Actions w celu wykonywania procesów.
Moduły uruchamiane samodzielnie wymagają wychodzącej łączności sieciowej, poświadczeń uwierzytelniania i autoryzacji w celu uzyskania dostępu do platformy GitHub oraz pobierania artefaktów przepływu pracy. W zależności od lokalizacji runnerów, może być konieczne skonfigurowanie reguł zapory, aby spełnić te wymagania.
Implementacja
Podobnie jak w przypadku agentów hostowanych w usłudze GitHub, implementacja obejmuje definiowanie przepływów pracy w formacie YAML i przechowywanie ich w katalogu .github/workflows w repozytoriach GitHub. Jednak, aby przepływy pracy mogły korzystać z samodzielnie hostowanych agentów, użytkownicy muszą najpierw je zarejestrować, dostarczając wymagane poświadczenia lub tokeny uwierzytelniające. W ramach rejestracji użytkownicy określają takie cechy jak nazwa biegacza, etykiety i parametry środowiska uruchomieniowego.
Rejestracja może odbywać się na różnych poziomach w przedsiębiorstwie:
- Poziom repozytorium (pojedyncze repozytorium)
- Poziom organizacyjny (wiele repozytoriów w organizacji)
- Na poziomie przedsiębiorstwa (wiele organizacji w przedsiębiorstwie)
Konserwacja
Użytkownicy są odpowiedzialni za aktualizowanie i utrzymywanie samodzielnie hostowanych agentów, w tym instalowanie aktualizacji oprogramowania i poprawek zabezpieczeń. Konserwacja obejmuje również monitorowanie kondycji i wydajności modułu uruchamiającego, a także rozwiązywanie wszelkich problemów występujących w całym środowisku uruchomieniowym modułu uruchamiającego.
Licencjonowanie i koszty
Moduły uruchamiane samodzielnie nie powodują naliczania dodatkowych opłat licencyjnych poza cennikiem funkcji GitHub Actions i powiązanych kosztów infrastruktury, w tym zasobów obliczeniowych, magazynu i sieci. Optymalizowanie alokacji zasobów i wykorzystania staje się odpowiedzialnością użytkownika.