
GitHub ili GitLab: besplatni CI/CD skriva drukčiji račun skaliranja

Za mali tim s privatnim repozitorijima GitHub Actions daje više prostora za CI/CD poslove koje izvršava pružatelj usluge. GitHubova pravila naplate Actionsa navode 2.000 uključenih minuta mjesečno na planu Free, besplatne standardne izvršitelje za javne repozitorije i cijenu od 0,006 USD za dodatnu minutu na standardnom dvojezgrenom Linux izvršitelju.
GitLab.com Free ranije doseže granicu uključenog izvršavanja, ali timu daje mogućnost da koristi vlastite izvršitelje ili sam održava cijelu platformu. GitLabov cjenik navodi 400 računskih minuta mjesečno, najviše pet korisnika po glavnoj grupi te jednokratnu kupnju dodatnih 1.000 minuta za 10 USD. Ako tim već koristi GitHub Actions, cijeni izvršavanja treba pribrojiti rad potreban za prilagodbu postojećih poslova.
Što zapravo troši uključene minute
Na GitHubu privatni repozitoriji troše kvotu računa koji je njihov vlasnik. Više projekata iste organizacije zato dijeli raspoložive minute, a potrošnja preko kvote naplaćuje se prema vrsti izvršitelja. Posao na Windowsu ili macOS-u nema istu cijenu kao posao na standardnom Linux izvršitelju. Ako račun nema valjan način plaćanja, izvršavanje koje bi premašilo kvotu prestaje umjesto da automatski stvori račun.
GitLab obračunava vrijeme svakog posla, a potrošnja ovisi i o faktoru odabranog izvršitelja. Pravila za računske minute daju zadanom malom Linux izvršitelju faktor 1, dok veći izvršitelji imaju više faktore. Minute svih poslova zbrajaju se unutar glavne grupe; cjevovod s paralelnim poslovima može potrošiti više računskih minuta nego što traje od pokretanja do završetka.
To je važno i za tim koji rijetko pokreće testove. Granica broja korisnika na GitLab.com Free zasebna je od kvote za izvršavanje: kupnja minuta ne otvara dodatna mjesta u grupi. Za javne repozitorije GitHubovo besplatno izvršavanje na standardnim izvršiteljima također mijenja usporedbu, pa se račun za privatni projekt ne može preslikati na projekt otvorenog koda.
Tri uvjetna računa za isti posao
Sljedeći primjeri prikazuju uvjetnu mjesečnu potrošnju, a ne rezultat mjerenja na stvarnom projektu. Pretpostavka je jedan posao od točno deset minuta po pokretanju, privatni repozitorij, GitHubov standardni dvojezgreni Linux izvršitelj i GitLabov zadani mali Linux izvršitelj. Svaki takav posao u modelu troši deset minuta na obje platforme. Izračun obuhvaća samo izvršavanje, bez pohrane artefakata, drugih vrsta izvršitelja i rada na migraciji.
- 20 pokretanja: ukupno 200 minuta. Oba besplatna plana pokrivaju izvršavanje bez dodatne kupnje.
- 100 pokretanja: ukupno 1.000 minuta. GitHub ostaje unutar uključene kvote. GitLabu nedostaje 600 minuta, pa je za nastavak izvršavanja na njegovim izvršiteljima potrebna kupnja jednog paketa za 10 USD.
- 300 pokretanja: ukupno 3.000 minuta. GitHubu ostaje 1.000 naplativih minuta, odnosno 6 USD po pretpostavljenoj cijeni Linux izvršitelja. GitLabu nedostaje 2.600 minuta, pa su potrebna tri paketa za ukupno 30 USD.
GitLabovi paketi kupuju se jednokratno; iznos u posljednjem primjeru predstavlja kupnju potrebnu za takvu potrošnju, a ne novu mjesečnu pretplatu. Račun se mijenja ako se posao produlji, ako se pokreće više poslova po cjevovodu ili ako se odabere izvršitelj s drugim faktorom. Usporedba broja pokretanja bez trajanja pojedinih poslova zato može prikriti stvarnu potrošnju.
Iz primjera ne proizlazi da će isti test jednako dugo trajati na oba servisa. To je izričita pretpostavka koja dopušta usporedbu cjenika. Tim s postojećim cjevovodom može je zamijeniti trajanjem svojih poslova i ponovno izračunati oba iznosa; posebno treba zbrojiti poslove koji se izvršavaju paralelno.
Kada vlastiti izvršitelj mijenja odluku

GitHub Actions dopušta vlastite izvršitelje bez trošenja uključenih minuta. GitLab.com također ne tereti svoju kvotu za poslove na izvršiteljima koje održava korisnik, a GitLab Self-Managed omogućuje da tim održava i samu platformu. To su različite razine kontrole: vlastiti izvršitelj mijenja mjesto izvođenja poslova, dok samostalno održavanje GitLaba mijenja i mjesto na kojem žive repozitoriji te administracija servisa.
Vlastiti izvršitelj ima trošak računalnih resursa, povezivanja, nadzora i održavanja. Samostalno održavanje cijele platforme dodaje instalaciju, nadogradnje, sigurnosne zakrpe i brigu o dostupnosti. Ti iznosi ovise o infrastrukturi i radu tima; iz javnih cijena minuta ne može se pošteno izračunati jedinstvena točka nakon koje je vlastiti sustav jeftiniji.
Za povremene poslove pružateljev izvršitelj uklanja velik dio operativnog rada. Za stalan teret ili zahtjev da kod i izvršavanje ostanu na infrastrukturi pod kontrolom tima, vlastiti sustav može biti važniji od razlike između uključenih kvota. Kontrola infrastrukture zato je zasebna odluka, a ne samo način da se izbjegne doplata minuta.
Koliko migracija mijenja radne tokove

GitLab opisuje zrcaljenje GitHubovih repozitorija kao način da se GitLab CI/CD koristi prije potpunog preseljenja koda. To timu omogućuje postupnu provjeru automatizacije, ali ne pretvara postojeće GitHub Actions radne tokove u GitLabove poslove samo prijenosom repozitorija.
Razlika je u konfiguraciji. GitHub Actions čuva radne tokove u direktoriju .github/workflows, a GitLab CI/CD obično koristi datoteku .gitlab-ci.yml u korijenu projekta. Okidači, odabir izvršitelja, varijable, predmemorija i artefakti imaju različitu konfiguraciju. Vanjske GitHub akcije zahtijevaju posebnu provjeru jer zamjena slične namjene ne mora imati isto ponašanje.
- Popisati postojeće radne tokove, okidače, trajanje poslova, vanjske akcije i odredišta implementacije. Tako se vidi koji dio automatizacije treba prenijeti.
- Postaviti probni projekt i dostupne GitLabove izvršitelje, zatim prevesti poslove u .gitlab-ci.yml. Uvoz koda sam po sebi ne pokazuje rade li testovi i objave.
- Zasebno prenijeti potrebne varijable i vjerodajnice te prilagoditi predmemoriju, artefakte i poslove implementacije. Osjetljive podatke treba postaviti u odgovarajuće postavke projekta ili grupe.
- Pokrenuti stare i nove poslove nad istim stanjem koda te usporediti rezultate testova i isporuke prije promjene pravila grananja i obveznih provjera.
Broj repozitorija pritom nije dovoljan pokazatelj posla. Jednostavan cjevovod za izgradnju i testiranje može zahtijevati malo prilagodbe, dok jedan repozitorij s prilagođenim akcijama, vanjskim servisima i složenom implementacijom može tražiti znatno više rada. Zrcaljenje pomaže odgoditi preseljenje koda dok se taj dio odluke provjerava.
Što neovisno istraživanje govori o CI/CD-u
Istraživanje javnih repozitorija u usporedbi vremena između commitova analiziralo je po 3.223 GitHubova i 1.356 GitLabovih repozitorija u skupinama s CI/CD-om i bez njega; medijan razmaka bio je kraći u skupinama s CI/CD-om. Autori su u analizama prijavljenih problema također našli više prijava u skupinama koje koriste CI/CD.
Riječ je o povezanosti u odabranim javnim projektima, a ne o testu koji pokazuje da bi određeni privatni tim brže isporučivao na GitHubu ili GitLabu. Broj prijavljenih problema također nije isto što i broj kvarova u produkciji. Istraživanje daje razlog da se automatizacija promatra kroz stvarne radne tokove i rezultate, dok cijena izvršavanja i napor migracije ostaju zasebna pitanja.
Izbor za mali tim
Ako tim želi privatne repozitorije i izvršavanje bez održavanja vlastitih strojeva, GitHub Free daje veću početnu kvotu, a u prikazanim scenarijima i niži trošak pri rastu potrošnje. GitLab postaje zanimljiviji kada je važna kontrola nad izvršiteljima ili cijelom platformom. Za tim koji već ima GitHub Actions radne tokove presudno je i koliko ih mora prilagoditi: razlika u cijeni minuta može biti mala prema radu potrebnom za prijenos složene automatizacije.
Pročitajte i:
Povezani članci


Make ili Zapier: prazan polling može potrošiti 43.200 kredita

Namespace prikupio 42 mil. USD — prihod je narastao osam puta

GitHub profil za posao: tri do pet projekata vrijedi više od zida aktivnosti

GitHub Copilot ili Gemini Code Assist: stara usporedba besplatnih planova više ne vrijedi

Copilotov pregled koda dobio je API — zadani Balanced troši više kredita
Pretplatite se na naš newsletter
Primajte najnovije vijesti o Web3-u, AI-ju i kriptovalutama izravno u svoj sandučić.