“Ми відкинули всі інші інструменти, які вимагали додаткових зусиль від нашої команди й почали завертати всі процеси, які повʼязані з поставкою, білдом та деплойментом в нашому SDLS, користуючись GitLab. Так, завдяки автоматизації та впровадження процесу CI/CD з GitLab, ми пришвидшили роботу більше ніж в 5 раз.”
Про клієнта: Uklon — продуктова ІТ-компанія, що розробляє провідний додаток для райд-хейлінгу. Заснований у 2010 році, Uklon має 11 інноваційних продуктів, які побудовані на базі мікросервісної архітектури з використанням хмарних обчислень. Щодня потужна IT-команда Uklon прокачує одну з найбільших інфраструктур на ринку України та міжнародному ринку, забезпечуючи взаємодію драйверів та райдерів. Місія компанії – змінити культуру міського життя, використовуючи технологічні рішення для повсякденних викликів.
Дата початку проекту: орієнтовно 2017-2018 рік
Дата закінчення проекту: в процесі
Челендж: В Uklon почали використовувати GitLab ще 5 років назад, з моменту коли обидві компанії ще були стартапами. Тоді для Uklon це був зручний інструмент в повсякденній роботі – система версіонування коду. Поступово з ростом бізнесу та вимог, GitLab почав додавати багато нового функціоналу, який почав тестувати Uklon.
До використання функціонала та побудови процесу CI/CD на базі GitLab, Uklon використовував стороннє рішення, через це була відділена кодова база, основне рішення GitLab, та процес білду та деплою продуктів. Через таке розділення було доволі незручно – різні системи, важче підтримувати, потребує більше ресурсів.
Рішення: З часом, в GitLab зʼявився додатковий функціонал, Uklon відкинув всі інші інструменти, які вимагали додаткових зусиль від команди й почав завертати всі процеси, які повʼязані з поставкою, білдом та деплойментом в SDLS, користуючись GitLab. Тепер мобільні застосунки Uklon, дата-моделі та всі застосунки білдяться, тестуються в рамках GitLab, що максимально зручно, дає масштабований, гнучкий функціонал. Ним керують, в першу чергу, команда “Platforms”, яка надає інструментар та пише код, а далі інші команди під себе налаштовують в тій комбінації, яка їм необхідна для досягнення своїх цілей.
Зараз GitLab – це величезне SaaS рішення. Uklon завжди тестує все, що зʼявляється у GitLab та обирає оптимальне та корисне для їх продукту. Якщо команді потрібне певне рішення – вони проводять PoC, дивляться на варіації та, якщо все влаштовує, інтегрують це рішення на постійній основі.
Результати: З переходом на GitLab зменшилась кількість систем, Uklon уніфікував процес білду. Наприклад, якщо раніше, розробники мобільних команд могли білдити щось локально, то залежно від конфігурації станції за якими працюють розробники, могли бути варіації, що недопустимо. Команді потрібно на однакові дії отримувати однаковий результат. Шляхом автоматизації та побудови процесу CI/CD на базі GitLab, це можна гарантувати, бо ти повністю контролюєш, все відбувається ізольовано. Ти знаєш, що коли подаєш на вхід А, ти отримаєш Б, кожен раз як виконуєш певну дію.
Зменшується час. Раніше певний білд, який команда Uklon або локально білдила, або в іншій системі, було потрібно поставити на їх станції, хмарне середовище та, банально, на девайси тестувальників. Наразі у всіх команд, які займаються тестуванням є можливість запустити емулятори в пайплайні, отримати на будь-яку зміну коду білд самостійно, без інженерів. Тобто скоротився час від потрапляння коду в кодову базу до білда, який можна пощупати та, головне, він є на вимогу. Якщо комусь з команди щось потрібно, він запустив та отримав.
Отримати потрібну версію білда в пару кліків. Наразі в Uklon немає дата-центрів, а все в хмарі. Кодова база залінкована з Argo CD, з енваройментами, через Kubernetes. Саме тому вони мають змогу для енваройментів з усіх пайпланів деплоїти на необхідний енвайронмент, фунціонал, який хочуть. Тобто інженери можуть отримати з однієї кнопочки конкретні білди, функціонали з великої мікросервісної інфраструктури Uklon на енваройнменті та використовувати його для роботи та тестування. Так само можна його задеплоїти або відкотити назад, залежно від помилок та ранбуків. І це все відбувається з мінімальним ручним втручанням в процес. Так Uklon виграє час та підвищує кратно надійність.
Крім цього, Uklon має крос-функціональні команди та якщо комусь потрібен певний набір функціонала інших продуктів, є можливість його взяти без втручання інших команд. Буквально спочатку подивилися залежності в Jira, далі, що де потрібно задеплоїли, що потрібно на енвайронмент, подивились комбінації, прогнали тести чи end-to-end комбінації.
Всі ці дії спрямовані на зменшення витрат по дорозі – очікування, часу та зменшення людського фактора. Тобто є можливість все максимально автоматизувати. Таким чином, завдяки автоматизації та впровадження процесу CI/CD з GitLab, Uklon пришвидшив роботу більше ніж в 5 раз.
“Ми відкинули всі інші інструменти, які вимагали додаткових зусиль від нашої команди й почали завертати всі процеси, які повʼязані з поставкою, білдом та деплойментом в нашому SDLS, користуючись GitLab. Так, завдяки автоматизації та впровадження процесу CI/CD з GitLab, ми пришвидшили роботу більше ніж в 5 раз." Віталій Дятленко, співзасновник та СТО Uklon
Роль Cloudfresh:
Команда Cloudfresh детально ознайомила Uklon з можливостями тарифного плану GitLab та допомогла обрати найоптимальніші рішення відповідно до технічних запитів компанії для гнучкої та безперебійної роботи.
Крім того, команда Cloudfresh забезпечує повний цикл впровадження нових функцій GitLab. Допомога Cloudfresh сприяла отриманню максимальної віддачі від GitLab для Uklon та запуску більш плавних та продуктивних робочих процесів.