Co to je GitHub
… a proč ho Microsoft koupil za 165 miliard Kč
GitHub (https://github.com/) je světově největší webová hostingová služba pro ukládání zdrojových kódů softwaru a jejich změnové historie pomocí distribuovaného verzovacího systému Git. Sdružuje komunitu 27 milionů vývojářů z 1,8 milionu firem. Hostuje se zde přes 80 milionu softwarových repositářů a roční obrat společnosti je kolem 300 milionů USD.
Prakticky všechny firmy, které se zabývají podporou vývojářů a vývojářských nástrojů a procesů DevOps, mají také připravenu nějakou formu integrace svého řešení s GitHub. Mnohé z nich využívají GitHub k hostování vlastních repositářů open source. Největším uživatelem GitHub s nejvíce aktivními repositáři open source je právě Microsoft.
Další společnosti (i Microsoft) používají GitHub jako mezistupeň pro tvorbu dokumentace a návodů. Veškeré změny a úpravy dělají v GitHub, třeba i s pomocí uživatelských komunit, odtud se teprve publikují na specifické HTML stránky s veřejnou dokumentací.
Jaké varianty GitHub existují a kolik stojí:
- Veřejné projekty open source jsou hostovány zdarma
- Studenti mají určité výhody, zejména privátní repositáře
- Platící uživatelé mohou neomezeně využívat soukromých repositářů; nejlevnější privátní varianta stojí přibližně 7 USD na jednoho vývojáře a měsíc
- Pro organizace s lepší správou uživatelů, uživatelských skupin a nastavení přístupových práv k repositářům je to 9 USD na vývojáře
- Existuje lokálně instalovaná dedikovaná varianta GitHub Enterprise s cenou 2500 USD za každých 10 uživatelů na rok
Co je na GitHub tak cenné?
Dle mého názoru je to obrovská a stále rostoucí komunita vývojářů. 27 milionů uživatelů je o řád více, než mají ostatní poskytovatelé jako Atlassian (BitBucket), Microsoft (VSTS), GitLab atd. Společně s rozvinutou infrastrukturou dalších produktů kolem GitHub to byl ten nejcennější atribut, kvůli kterému Microsoft investoval tak velkou částku.
O verzovacím systému Git a proč je tak populární
Git je distribuovaný systém správy zdrojových kódů. Většina operací, které se se zdrojáky a repositářem provádějí, se děje lokálně. Historie projektu je uložena přímo na lokálním disku a pro práci s repositářem není vždy nutná konektivita. Pokud se Git používá v týmu, spolupráce mezi vývojáři probíhá téměř vždy přes centrální server nebo úložiště.
Na rozdíl od většiny systémů pro verzování, které mezi verzemi ukládají změny, používá Git snímky, a pracuje tak vlastně s více verzemi konkrétního souboru a nikoli s diferenčním souborem. Pokud se soubor neměnil, odkaz je na ten starý. Pokaždé, když v systému zapíšete (uložíte) stav projektu, Git v podstatě „vyfotí“, jak vypadají všechny vaše soubory v daném okamžiku, a uloží reference na tento snímek do databáze repositáře. Kombinace lokální práce a souborového systému mu dává rychlost.
Vývojář dělá průběžně změny ve svém lokálním pracovním adresáři. Ty pak většinou v nějakých logických dávkách po provedených změnách ukládá v rámci svého pracovního prostoru a nakonec je soubor zapsán (committed), čímž navíc vzniká konzistentní snímek v databázi Git včetně mnoha dalších metadat. To se děje pomocí příkazové řádky, grafických nástrojů nebo je integrované přímo ve vývojářském IDE. Prakticky všechna moderní vývojářská prostředí a nástroje mají implementaci Git již ve svém IDE. Finální změny je ještě nutné přenést na server. Operace je označována jako git push, případně sync (zahrnuje pull + push), a většinou je svázána s žádostí o začlenění změn, případně jejich kontrolu.
Git svým principem velmi dobře podporuje rychlé i efektivní vytváření větví (branch) a slučování (merge). Existují ustálená pravidla a propracovaný způsob, jak vše využívat dohromady v rámci agilní práce vývojářských týmů.
Pokud bych shrnul výše uvedené odstavce, v dnešním agilním multiplatformním světě se stává verzovací systém Git standardem. GitHub je pak ideální místo, kde s Gitem začít.
A co Visual Studio Team Services a Team Foundation Server
Visual Studio Team Services (VSTS) a Team Foundation Server (TFS) jsou nástroje společnosti Microsoft, které slouží k podpoře procesů DevOps. Vycházejí ze společného kódu, TFS je on-premise varianta a VSTS je hostovaná cloudová varianta. Zdrojové kódy se mohou ve VSTS a TFS ukládat do historicky podporovaného centralizovaného-hybridního úložiště TFvc nebo do úložiště Git. Úložiště Git je zde 100% kompatibilní s Git, a je tedy prakticky stejné jako u GitHubu. Hlavní rozdíl je v zaměření na skupiny vývojářů. Oproti GitHubu obsahují TFS a VSTS navíc další zabudovanou funkčnost, jako je Build, Release, Test atd. Obě platformy jsou velmi dobře provázány na ostatní nástroje a služby.
TFS a VSTS zůstávají tedy klíčovými produkty Microsoft pro firemní zákazníky hledající řešení DevOps. GitHub je – a asi také zůstane – vstupní komunitní branou do světa správy zdrojových kódů pomocí Gitu pro široké masy vývojářů. Mnoho současných zákazníků používá např. GitHub pro zdrojové kódy a VSTS pro orchestraci a nasazení aplikací vytvořených z těchto zdrojů, protože obě platformy velmi dobře spolupracují. Plánuje se také další a větší integrace VSTS a GitHub.
Hledáte-li další informace, pak nepřehlédněte: https://aka.ms/devops.
Jiří Burian, Microsoft