Programování

GitHub vs. Bitbucket vs. GitLab: epická bitva o vývojářské mindshare

Je to druh meta pojmu, díky kterému vysokoškolští filozofové říkají: „Fíha!“ Software je dnes tak komplikovaný, že musíme psát software, který nám pomůže porozumět a vytvořit software, který potřebujeme k psaní. Kód plodí kód plodí více kódu…

Úložiště kódů s názvem Git je oblíbeným nástrojem každého pro správu softwaru, ale ani tento čistý otevřený zdrojový software nestačí. Většina programátorů a týmů, k nimž patří, jsou nyní zapojeni do online verzí Gitu, které přidávají mnoho dalších vrstev analýzy a prezentace, aby bylo možné procházet obrovským močálem, kterým je náš kód.

Nyní jsou tři velcí uchazeči o nejlepší místo, kam si můžete uložit své regulární výrazy, anonymní funkce a intenzivní rekurzivní geniální záblesky: GitHub, Bitbucket a GitLab. Všichni soutěží o nejlepší místo pro uložení vašeho zdroje.

Je jedno lepší než druhé? Je jedno z nejlepších míst pro váš tým, kde můžete razit úžasnou noc? Postavme je proti sobě a podívejme se, který z nich vládne.

GitHub je největší

Možná je to proto, že to byl první velký web, který se specializoval na hostování repozitářů Git. Možná je to kvůli jeho dobrým dílům v komunitě open source. V každém případě vede GitHub, pokud použijete metriku čistého nahlášeného objemu kódu. GitHub si nárokuje 28 milionů uživatelů a 85 milionů úložišť. Bitbucket hlásí šest milionů uživatelů a GitLab je záhadou, která na otázku neodpověděla.

Někteří si myslí, že na tom záleží. Vývojáři s otevřeným zdrojovým kódem, kteří rádi přecházejí mezi projekty, mohou použít jedno přihlášení a propojit veškerou svou práci. Každý může sledovat horké vývojáře na GitHubu, stejně jako milovníci koček sledovat tvůrce nejlepších videí o kočkách na YouTube. Síťové efekty, které se zdají dominovat na internetu, tlačí GitHub daleko do čela.

Ostatní si tím nejsou tak jisti. Ano, rádi propojují svůj veřejný kód, ale mnoho lidí nechce propojovat práci, kterou dělají pro klienty. To by mělo být oddělené a neveřejné. V této souvislosti nestojí síťové efekty za nic.

Bitbucket a GitLab jsou levnější

Všechny tři služby nabízejí mnoho bezplatných možností, ale všechny vydělávají peníze tím, že účtují vývojářům, obvykle profesionálům, za hostování soukromých projektů. GitHub začíná na 7 $ za měsíc na vývojáře. Bitbucket začíná na $ 2 za měsíc a GitLab začíná na $ 4 za měsíc.

Ale tato čísla jsou pouze hrubými vodítky, protože existuje velká šance, že budete chtít upgradovat. Lepší úroveň v Bitbucketu stojí 5 $ měsíčně. GitLab má prémiovou verzi, která stojí 19 $ měsíčně - a za tuto cenu musíte platit ročně.

Pro společnosti s většími týmy téměř jistě existují skryté slevy, které ztěžují srovnání. Možná si myslíte, že Git hosting je komodita, ale tyto společnosti našly způsoby, jak přidat tolik dalších funkcí, že se vám začne točit hlava, když začnete porovnávat, co za své peníze dostanete.

Bitbucket a GitLab umožňují neomezený počet soukromých úložišť

To, co dostanete zdarma, se divoce liší. Bitbucket i GitLab vám umožňují bezplatně ukládat vlastní soukromá úložiště. Platit začnete, až když se váš tým rozroste a stane se profesionálnějším. GitHub uloží vaše projekty zdarma, pouze pokud jste student nebo je zveřejníte. To je skvělé pro open source, ale ne pro všechny vaše soukromé vedlejší projekty.

Tyto úrovně zdarma mohou být docela velkorysé. Bitbucket umožňuje malým týmům až pěti spolupracovníků. GitLab umožňuje neomezené množství spolupracovníků.

Stojí za zmínku, že tyto ceny a úrovně platí pro verzi hostovanou v cloudu. Pokud se chcete hostovat sami, může to být levnější. Existují také akademické plány a komunitní verze open source, které jsou velmi velkorysé.

Bitbucket a GitLab mají nepřetržitou integraci

Tyto společnosti se rozšiřují nejen ukládáním kódu, ale také vytvářením a nasazováním. GitLab zavedl kontinuální integraci založenou na Jenkinsovi a poté přidal podporu nasazení a monitorování ve virtuálním cyklu. Svůj kód můžete potvrdit, nasadit, sledovat a poté začít plánovat další sadu úprav, aniž byste opustili GitLab.

Podobně Bitbucket nabízí Pipelines, podobný nástroj pro sestavení a nasazení, který pomocí několika kliknutí provede téměř totéž. Možná nenabízí tolik monitorování, ale je úzce integrován do cloudu Amazonu.

GitHub vám umožní používat vlastní server pro nepřetržitou integraci

Sestavují uživatelé GitHubu někdy svůj kód? Samozřejmě. Mnoho z nich používá nástroje třetích stran, jako je CircleCI nebo Travis CI, které jsou spouštěny závazky na GitHub. Někteří dokonce hostují svou vlastní verzi Jenkins, která je k dispozici z úložiště open source hostovaného na GitHubu.

Nástroje třetích stran samozřejmě nemusí být pod stejným firemním deštníkem, ale dosahují toho samého. A někdy může být oddělení výhodou, pokud chcete dělat věci trochu jinak.

Stojí za zmínku, že vám nic nebrání v zavedení vlastního řešení pro nepřetržitou integraci s Bitbucket nebo GitLab. Prostě zkontrolují kód jako každý jiný klient Git.

GitLab umožňuje vývoj online

To, co začalo jako nástroj umožňující procházet statický kód, se pomalu proměňuje v plnohodnotnou platformu pro vývoj. Rozhraní GitLabu je čím dál složitější a začíná se přibližovat tomu, co společnost nazývá integrovaným vývojovým prostředím nebo IDE. Není to tak propracované jako některé monolity zaměřené na desktop, jako je Eclipse nebo Xcode, které nabízejí integrované ladění, ale to neznamená, že jej nemůžete použít k provádění stále sofistikovanějšího vývoje s čistými, vícesouborovými závazky.

GitHub i Bitbucket mají jednodušší verze, které vám umožňují upravovat soubory online a poté potvrdit výsledek. Jsou lepší pro rychlé opravy a opravy.

Bitbucket má vyhledávání podle kódu

Může se to zdát jako maličkost, ale vyhledávací algoritmus Bitbucketu rozumí mnoha hlavním jazykům a umožňuje tak hodnotit výsledky. Definice funkce nebo proměnné se objeví nahoře a následuje použití. Pokud se snažíte zjistit, co některé klíčové slovo dělá, nemusíte procházet stránky s výsledky, abyste našli odpověď.

Bitbucket pochází od stejné společnosti, která vyrábí Jira

Jira je jedním z předních nástrojů pro organizaci vývojového procesu sledováním tiketů a udržováním týmů informovaných o tom, kdo co do kterého úložiště dělá a kdy jej dokončí. Jira může být integrována se všemi, ale je vlastněna společností Atlassian, která zajišťuje, že Jira funguje dobře s Bitbucket.

GitHub i GitLab mají vlastní pracovní nástroje pro sledování problémů zabudované do pracovního toku, které dělají skoro totéž. Pokud se chcete dozvědět více zvonů a píšťal, uživatelé GitHub a GitLab se mohou obrátit na Jira nebo na některý z řady podobných nástrojů.

GitLab je otevřený zdroj

Pokud se vám nelíbí žádná konkrétní část GitLabu, stačí si stáhnout zdrojový kód Ruby, upravit jej a hostovat sami. Je to otevřený zdroj a čeká jen na to, až to rozdáte. GitHub nabízí ve svých úložištích několik užitečných částí své skládačky a Atlassian nabízí velkorysou podporu všem projektům s otevřeným zdrojovým kódem pomocí schválených licencí. GitLab vám ale v komunitní edici poskytne nezpracovaný kód pro celou platformu.

Existuje také několik dalších projektů serveru Git s otevřeným zdrojovým kódem, například Gitblit napsaný v Javě, Allura napsaný v Pythonu a Gogs napsaný v Go. Ale budete je muset hostovat všechny.

GitLab je úzce integrován do služby Google Cloud

Google GitLab s GitLabem používat nemusíte. GitLab to díky integraci s Google Kubernetes Engine trochu usnadňuje. Jen pár kliknutí přesune váš kód do běžícího clusteru kontejnerů. I když nepoužíváte Google Kubernetes Engine, GitHub stále rád pracuje s Kubernetes. Pokud nasadíte do klastru Kubernetes, můžete monitorovat vše - prostředí CI, nasazení, pody a metriky Kubernetes - přímo z GitLabu.

Bitbucket se integruje s AWS

Opět můžete svůj kód kdykoli nasadit, kamkoli chcete, ale doplněk Bitbucket na Atlassian Marketplace posune váš kód do kbelíku Amazon S3 a ke spuštění na EC2 jej použije AWS CodeDeploy. Vše, co musíte udělat, je jednou nakonfigurovat a je připraveno jít.

Bitbucket má spoustu rozšíření

Aplikace AWS CodeDeploy není na trhu Atlassian jedinou možností. V době psaní tohoto článku existuje 304 aplikací napsaných třetími stranami k rozšíření Bitbucket. Některé přidávají funkce, jako jsou oznámení nebo grafy závazků, a jiné pomáhají s vedením projektu sledováním pracovního postupu. Pokud se cítíte panovačně, můžete si nainstalovat modul plug-in Commit Policy, který kontroluje zprávy o potvrzení, aby se ujistil, že zmiňují čísla vydání a další podrobnosti. Pokud na tržišti nevidíte, co chcete, můžete napsat svůj vlastní.

Git (prostý) je bezplatný a soukromý

Najdou se i takoví, kteří nechtějí využít žádnou z těchto luxusních možností. Git je docela jednoduchý nástroj příkazového řádku se spoustou příkazů pro kopání do samotných úložišť. Pomocí příkazového řádku můžete sami tlačit, tahat a sledovat kód. Pokud si umíte dobře zapamatovat pokyny na příkazovém řádku a nechcete žádné pěkné webové ukázky kódu, rozdílů a dalších, pak vám starý Git dobře poslouží.

Použijte dva nebo všechny tři!

Může se to zdát přehnané, ale není důvod, proč si musíte vybrat jen jednu. Git usnadňuje odesílání závazků proti proudu a není důvod, proč nemůžete přidat více proti proudu. Pokud potřebujete funkce ze dvou nebo všech tří těchto platforem, stačí nakonfigurovat úložiště tak, aby se tlačila na všechny z nich. Pokud budete mít štěstí, můžete zůstat uvnitř bezplatných úrovní. A pokud ne, nejsou příliš drahé.