"Odvrhli jsme všechny ostatní nástroje, které vyžadovaly dodatečné úsilí od našeho týmu, a začali jsme zavádět všechny procesy související s dodávkou, sestavováním a nasazováním v našem SDLC pomocí GitLabu. Díky automatizaci a implementaci procesu CI/CD s GitLabem jsme zrychlili práci více než pětkrát."
O klientovi: Uklon je produktová IT společnost, která vyvíjí přední aplikaci pro ride-hailing. Založený v roce 2010, Uklon má 11 inovativních produktů postavených na mikroslužbách s využitím cloudového počítání. Denně posiluje silný IT tým Uklon jednu z největších infrastruktur na ukrajinském a mezinárodním trhu, zajišťující interakci mezi řidiči a cestujícími. Mise společnosti spočívá v transformaci kultury městského života pomocí technologických řešení pro každodenní výzvy. Datum zahájení projektu: přibližně v roce 2017-2018 Datum dokončení projektu: probíhá Výzva: Uklon začal používat GitLab před 5 lety, když obě společnosti byly ještě startupy. Pro Uklon to byl pohodlný nástroj v každodenní práci – systém verzování kódu. Postupně se s růstem podnikání a požadavků GitLab začal přidávat mnoho nových funkcí, které začal Uklon testovat. Před použitím funkcí a vytvořením CI/CD procesu na základě GitLabu používal Uklon externí řešení, což vedlo ke separaci kódového základu, hlavního řešení GitLab a procesu sestavování a nasazování produktů. Tato oddělenost byla poněkud nepraktická – různé systémy, obtížnější udržování, vyžadovalo více zdrojů.
Datum zahájení projektu: přibližně v roce 2017-2018
Datum dokončení projektu: probíhá
Výzva: V Uklonu začali před 5 lety používat GitLab, když obě společnosti byly ještě startupy. Pro Uklon to byl pohodlný nástroj v každodenní práci – systém verzování kódu. Postupem času s růstem podnikání a požadavků začal GitLab přidávat mnoho nového funkčního rozšíření, které Uklon začal testovat. Před použitím funkčnosti a vytvořením CI/CD procesu na základě GitLabu používal Uklon externí řešení, což vedlo ke separaci kódového základu, hlavního řešení GitLab a procesu sestavování a nasazování produktů. Toto oddělení bylo poměrně nepohodlné – různé systémy, obtížnější udržování, vyžadovalo více zdrojů.
Řešení: S časem přibyla do GitLabu další funkcionalita a Uklon zavrhl všechny ostatní nástroje, které vyžadovaly dodatečné úsilí od týmu, a začal provádět všechny procesy spojené s dodávkou, sestavováním a nasazováním v SDLC pomocí GitLabu. Nyní se mobilní aplikace Uklon, datové modely a všechny aplikace sestavují a testují v rámci GitLabu, což je maximálně pohodlné a poskytuje škálovatelnou a flexibilní funkcionalitu. Tímto procesem primárně řídí tým “Platforms”, který poskytuje nástroje a píše kód, a ostatní týmy si ho nastavují podle svých potřeb pro dosažení svých cílů. Nyní je GitLab obrovským SaaS řešením. Uklon vždy testuje vše, co se objeví v GitLabu, a vybírá optimální a užitečné prvky pro svůj produkt. Pokud tým potřebuje konkrétní řešení, provádí PoC, zkoumá různé varianty a pokud je vše v pořádku, integruje toto řešení na pravidelné bázi.
Výsledky: S přechodem na GitLab se snížil počet systémů, Uklon sjednotil proces sestavení. Například dříve, když vývojáři mobilních týmů sestavovali něco lokálně, mohly existovat rozdíly v závislosti na konfiguraci jejich pracovních stanic, což nebylo přijatelné. Tým potřebuje dostávat stejný výsledek za stejných podmínek. Automatizací a vytvořením procesu CI/CD na základě GitLabu to lze zajistit, protože máte plnou kontrolu a vše se provádí izolovaně. Víte, že když zadáte A, dostanete B pokaždé, když provedete určitou akci. Sníží se čas. Dříve bylo nutné určité sestavení, které tým Uklon buď sestavoval lokálně nebo v jiném systému, nainstalovat na jejich pracovní stanice, cloudové prostředí a jednoduše na testovací zařízení. Nyní mají všechny týmy, které se zabývají testováním, možnost spustit emulátory v rámci pipeline, dostat automatické sestavení při jakékoliv změně kódu, a to bez inženýrů. Zkrátil se čas od přijetí kódu do repozitáře až po sestavení, které lze otestovat a co je důležité, je k dispozici na vyžádání. Pokud někdo v týmu něco potřebuje, spustí a obdrží.
Získat požadovanou verzi sestavení ve dvojici kliknutí. V současnosti v Uklonu neexistují žádná datová centra, vše je v cloudu. Kódová základna je propojena s Argo SD, s prostředími prostřednictvím Kubernetes. Díky tomu mají možnost nasadit z jakéhokoli pipeline do potřebného prostředí, do funkcionality, kterou potřebují. To znamená, že inženýři mohou získat konkrétní sestavení a funkcionality z rozsáhlé mikroslužbové infrastruktury Uklon na konkrétním prostředí a použít je pro práci a testování. Stejně tak je možné jej nasadit nebo vrátit zpět v závislosti na chybách a požadavcích. A to vše se děje s minimálním manuálním zásahem do procesu. Uklon tak ušetří čas a výrazně zvýší spolehlivost. Kromě toho má Uklon týmy s křížovou funkcionalitou a pokud někdo potřebuje konkrétní sadu funkcionalit z jiných produktů, je možné je získat bez zásahu do práce ostatních týmů. Doslova se nejprve podívají na závislosti v Jira, poté nasadí, co je potřeba, na dané prostředí, zkontrolují kombinace, spustí testy nebo end-to-end kombinace. Všechny tyto kroky jsou zaměřeny na snížení nákladů na cestu – čekání, čas a snížení lidského faktoru. To znamená, že je možné vše maximalizovat automatizací. Díky automatizaci a zavedení procesu CI/CD s GitLabem Uklon zrychlil práci více než pětkrát.
"Odvrhli jsme všechny ostatní nástroje, které vyžadovaly dodatečné úsilí od našeho týmu, a začali jsme zavádět všechny procesy související s dodávkou, sestavováním a nasazováním v našem SDLC pomocí GitLabu. Díky automatizaci a implementaci procesu CI/CD s GitLabem jsme zrychlili práci více než pětkrát." Vitalij Dyatlenko, spoluzakladatel a CTO Uklon.
Role Cloudfresh: Tým Cloudfresh podrobně seznámil Uklon s možnostmi tarifního plánu GitLab a pomohl vybrat nejoptimálnější řešení v souladu s technickými požadavky společnosti pro flexibilní a bezproblémovou práci. Kromě toho tým Cloudfresh zajišťuje kompletní implementační cyklus nových funkcí GitLabu. Pomoc Cloudfresh přispěla k dosažení maximálního výkonu z GitLabu pro Uklon a spuštění plynulejších a produktivnějších pracovních procesů.