GitHub vs Bitbucket protiv GitLab: epska bitka za umove programera

To je vrsta meta pojma zbog koje filozofi dodiplomskog studija kažu: "Joj!" Softver je danas toliko kompliciran da moramo pisati softver koji će nam pomoći da razumijemo i konstruiramo softver koji trebamo pisati. Kod rađa kôd rađa više koda ...

Spremište kodova pod nazivom Git svima je omiljeni alat za kuriranje softvera, ali ni ovaj uredan softver otvorenog koda nije dovoljan. Većina programera i timovi kojima pripadaju sada su povezani s mrežnim inačicama Gita koje dodaju mnogo dodatnih slojeva analize i prezentacije kako bi se moglo probiti kroz prostranu močvaru koja je naš kod. 

Sada postoje tri velika kandidata za najbolje mjesto za pohranu vaših regularnih izraza, anonimnih funkcija i intenzivnih rekurzivnih genijalnih bljeskova u drvetu: GitHub, Bitbucket i GitLab. Svi se oni natječu ko će vam biti najbolje mjesto za pohranu izvora.

Je li jedno bolje od drugog? Je li jedno najbolje mjesto za vaš tim koji će iskovati strašan novac? Postavimo ih jedni protiv drugih i vidimo koji će vladati.

GitHub je najveći

Možda je to zato što je to bilo prvo veliko web mjesto koje se specijaliziralo za hosting Git spremišta. Možda je to zbog njegovih dobrih djela u zajednici otvorenog koda. U svakom slučaju, GitHub je vodeći ako koristite metriku pukog prijavljenog volumena koda. GitHub polaže pravo na 28 milijuna korisnika i 85 milijuna spremišta. Bitbucket prijavljuje šest milijuna korisnika, a GitLab je misterij koji nije odgovorio na pitanje.

Neki misle da je ovo važno. Programeri otvorenog koda koji vole skakati između projekata mogu koristiti jednu prijavu i povezati sve svoje radove. Svatko može pratiti vruće programere na GitHubu kao što ljubitelji mačaka prate tvorce najboljih mačjih videozapisa na YouTubeu. Mrežni efekti koji izgledaju kao da dominiraju Internetom gurnu GitHub daleko u vodstvo.

Drugi nisu toliko sigurni. Da, vole povezivati ​​svoj javni kôd, ali mnogi ljudi ne žele povezati posao koji rade za klijente. To bi trebalo biti odvojeno i nejavno. U tom kontekstu, mrežni efekti ne vrijede puno ničega.

Bitbucket i GitLab su jeftiniji

Sve tri usluge nude brojne besplatne mogućnosti, ali sve zarađuju zarađujući programerima, obično profesionalcima, da ugoste privatne projekte. GitHub počinje s 7 dolara mjesečno po programeru. Bitbucket počinje s 2 dolara mjesečno, a GitLab s 4 dolara mjesečno.

No ove su brojke samo okvirne smjernice jer postoji velika vjerojatnost da ćete ih poželjeti nadograditi. Bolja razina na Bitbucketu košta 5 USD mjesečno. GitLab ima premium verziju koja košta 19 USD mjesečno - a morate platiti godišnje da biste dobili tu cijenu.

Gotovo sigurno postoje skriveni popusti za tvrtke s većim timovima, što otežava usporedbu. Možda mislite da je Git hosting roba, ali ove su tvrtke pronašle načine da dodaju toliko dodatnih značajki da vam se u glavi počne vrtjeti kad počnete uspoređivati ​​ono što dobivate za svoj novac.

Bitbucket i GitLab omogućuju neograničena privatna spremišta

Ono što dobivate besplatno potpuno je drugačije. I Bitbucket i GitLab omogućuju vam besplatno spremanje vlastitih privatnih spremišta. Plaćanje započinjete tek kad vaš tim raste i postane profesionalniji. GitHub će vaše projekte pohranjivati ​​besplatno samo ako ste student ili objavite projekte. To je izvrsno za otvoreni izvor, ali ne i za sve vaše privatne sporedne projekte.

Ovi besplatni razredi mogu biti prilično izdašni. Bitbucket omogućuje malim timovima do pet suradnika. GitLab omogućuje neograničene suradnike.

Vrijedno je napomenuti da su ove cijene i razine za verziju hostiranu u oblaku. Ako želite samostalno ugostiti, to može biti jeftinije. Postoje i akademski planovi i verzije zajednice otvorenog koda koji su vrlo izdašni.

Bitbucket i GitLab imaju kontinuiranu integraciju

Te se tvrtke šire, ne samo spremajući kôd, već ga i grade i primjenjuju. GitLab je uveo kontinuiranu integraciju temeljenu na Jenkinsu, a zatim je dodao podršku za postavljanje i nadzor u virtuelnoj petlji. Možete predati svoj kôd, implementirati ga, nadgledati i početi planirati sljedeći niz modifikacija bez napuštanja GitLaba.

Slično tome, Bitbucket nudi Pipelines, sličan alat za izgradnju i postavljanje koji gotovo isto čini s nekoliko klikova. Možda ne nudi toliko nadzora, ali je usko integriran s Amazonovim oblakom.

GitHub vam omogućuje upotrebu vlastitog poslužitelja za kontinuiranu integraciju

Izrađuju li ikad korisnici GitHub-a svoj kod? Naravno. Mnogi koriste alate nezavisnih proizvođača poput CircleCI ili Travis CI koje pokreću predavanja na GitHub. Neki čak i hostiraju vlastitu verziju Jenkinsa koja je dostupna iz spremišta otvorenog koda hostiranog na GitHubu.

Alati treće strane možda nisu pod istim korporativnim kišobranom, naravno, ali postižu gotovo istu stvar. A onda ponekad razdvajanje može biti prednost ako želite stvari raditi malo drugačije.

Vrijedno je napomenuti da vas ništa ne sprečava da pokrenete vlastito rješenje za kontinuiranu integraciju s Bitbucketom ili GitLabom. Oni samo provjeravaju kod kao i bilo koji drugi Git klijent.

GitLab vam omogućuje razvoj na mreži

Ono što je započelo kao alat za omogućavanje pregledavanja statičkog koda polako se pretvara u punopravnu platformu za razvoj. GitLabovo sučelje postaje sve složenije i počinje se približavati onome što tvrtka naziva integriranim razvojnim okruženjem ili IDE-om. Nije toliko sofisticiran kao neki od monolitnih računala usredotočenih na radnu površinu poput Eclipsea ili Xcodea koji nude integrirano ispravljanje pogrešaka, ali to ne znači da ga ne možete koristiti za sve sofisticiraniji razvoj s čistim predajama iz više datoteka.

I GitHub i Bitbucket imaju jednostavnije verzije koje vam omogućuju mrežno uređivanje datoteka i potom urezivanje rezultata. Bolji su za brze popravke i popravke.

Bitbucket ima pretragu s obzirom na kod

Možda se čini sitnicom, ali algoritam pretraživanja Bitbucket razumije mnoge glavne jezike, što omogućuje rangiranje rezultata. Definicija funkcije ili varijable iskače na vrhu i slijedi uporaba. Ako pokušavate otkriti što neka ključna riječ radi, ne morate listati stranice rezultata da biste pronašli odgovor.

Bitbucket dolazi od iste tvrtke koja proizvodi Jira

Jira je jedan od vodećih alata za organizaciju razvojnog procesa praćenjem ulaznica i osvješćivanjem timova tko što radi na kojem spremištu i kada ga završavaju. Jira se može integrirati sa svima, ali je u vlasništvu Atlassian-a, što osigurava da Jira dobro surađuje s Bitbucketom.

I GitHub i GitLab imaju vlastite alate za praćenje problema ugrađene u tijek rada koji čine gotovo istu stvar. Za više zvukova, korisnici GitHub-a i GitLaba mogu se obratiti Jira-i ili bilo kojem od niza sličnih alata.

GitLab je otvoreni izvor

Ako vam se ne sviđa neki određeni dio GitLaba, možete jednostavno preuzeti izvorni kôd Ruby, izmijeniti ga i sami hostirati. Otvoreni je izvor i samo čeka da ga rastavite. GitHub nudi nekoliko korisnih dijelova svoje slagalice u svojim spremištima, a Atlassian nudi izdašnu podršku svim projektima otvorenog koda koristeći odobrene licence. Ali GitLab vam daje sirovi kôd za cijelu platformu u izdanju zajednice.

Postoji i nekoliko drugih Git poslužiteljskih projekata otvorenog koda, poput Gitblit-a, napisanih na Javi, Allura-a, napisanih na Pythonu i Gogs-a, napisanih na Go-u. Ali morat ćete ih sve ugostiti.

GitLab je usko integriran s Google Cloudom

Ne morate koristiti Google Cloud s GitLabom. GitLab samo malo olakšava integracijom s Google Kubernetes Engineom. Samo nekoliko klikova premješta vaš kôd u klaster spremnika koji se izvodi. Čak i ako ne koristite Google Kubernetes Engine, GitHub i dalje voli surađivati ​​s Kubernetesom. Ako se rasporedite na Kubernetesov klaster, možete sve nadzirati - CI okruženja, implementacije, podskupine i Kubernetesove mjerne podatke - izravno iz GitLaba.

Bitbucket se integrira s AWS-om

Ponovno, svoj kôd možete uvijek rasporediti gdje god želite, ali dodatak Bitbucket na Atlassian Marketplaceu gurnut će vaš kôd u sezonu Amazon S3 i upotrijebiti AWS CodeDeploy za njegovo pokretanje na EC2. Sve što trebate je jednom konfigurirati i spremno je za rad.

Bitbucket ima puno proširenja

Aplikacija AWS CodeDeploy nije jedina opcija na Atlassian tržištu. Od ovog pisanja, postoje 304 aplikacije koje su napisale treće strane kako bi proširile Bitbucket. Neki dodaju značajke poput obavijesti ili grafikone obveza, a drugi pomažu u vođenju projekata praćenjem tijeka rada. Ako se osjećate šefski, mogli biste instalirati dodatak Pravila urezivanja koji pažljivo proučava poruke urezivanja kako bi bili sigurni da spominju brojeve izdanja i druge detalje. Ako na Marketplaceu ne vidite što želite, možete napisati svoje.

Git (plain) je besplatan i privatan

Bit će onih koji ne žele koristiti nijednu od ovih luksuznih opcija. Git je prilično jednostavan alat naredbenog retka s puno naredbi za kopanje u same spremišta. Kôd možete samostalno gurati, vući i pratiti pomoću naredbenog retka. Ako dobro pamtite upute naredbenog retka i ne želite nijedan lijep zaslon koda, razlike i još mnogo toga zasnovan na webu, tada će vam običan stari Git dobro poslužiti.

Upotrijebite dvije ili sve tri!

Možda se čini pretjeranim, ali nema razloga zašto biste trebali odabrati samo jednog. Git pojednostavljuje guranje obveza uzvodno i nema razloga zašto ne možete dodati više uzvodnih tokova. Ako su vam potrebne značajke s dvije ili sve tri platforme, možete jednostavno konfigurirati svoja spremišta da ih guraju na sve njih. Ako imate sreće, možete ostati unutar slobodnih slojeva. A ako niste, nisu preskupi.