Думаєш, Uklon —
це лише про виклик авто?
За продуктами бренду стоїть потужна IT-команда Tech Uklon, яка щодня підтримує і розвиває одну з найбільших інфраструктур на українському ринку каршеринга.

Аби забезпечити безшовну і зручну взаємодію драйверів та райдерів (водіїв та пасажирів), ця команда щодня вирішує завдання з області data science, геоданих, хмарних технологій, нейромереж і машинного навчання. Керівники різних IT-підрозділів Uklon розповідають про ті неочевидні та цікаві задачі, які вирішують щодня.
|
онлайн-сервіс виклику авто, за простим інтерфейсом якого ховаються складні технологічні виклики
Ось які задачі щодня вирішує його IT-команда
У компанії — близко 10 років. Виріс від спеціаліста техпідтримки до девопса. Займається впровадженням DevOps-практик для оптимізації процесів розробки та доставки додатків, розробкою і підтримкою cloud-рішень на базі AWS та GCP з використанням git-ops-методології.

Має досвід побудови розподілених та високонавантажених систем, міграції до мікросервісів на базі Docker та Kubernetes.
APPLICATION ARCHITECT
TECH LEAD
Максим Гарнець
Працює в компанії 2 роки. Фанат роботи з даними, пошуку патернів поведінки та її аналітики. Цікавиться розвитком продуктів та відкриттям нових продуктових ніш.

Широко застосовує Data Science як інструмент для розв'язання продуктових задач та оптимізації процесів.
Володимир Андрієнко
PRODUCT OWNER DATA SCIENCE
DEVOPS ENGINEER
Гліб Смоляков
В компанії вже 3,5 роки. Відповідає за завдання на перетині R&D та Engineering, а також за бекенд основних продуктів.

Спеціалізується на розподілених highload-системах з використанням .NET-стеку, Kubernetes та GCP. Цікавиться distributed system design, event-driven architecture та geo-data.
ЗАДАЧІ
|
Задача:
Для клієнта визначення адреси і побудова маршруту має гарний вигляд: швидко малюється карта з маршрутом, але за цим стоїть чималенька робота.

Візьмемо для прикладу Київ. Уявімо собі місто як павутиння, граф із вершинами і ребрами, де вершини — це, приміром, перехрестя, а ребра — дороги, що ведуть до них. Щоб визначити найоптимальніший маршрут по цьому павутинню, використовуємо алгоритми, наприклад, алгоритм Дейкстри. Це допомагає прив'язати до графа дві координати — точки відправлення і точки прибуття.

Після цього за допомогою алгоритму ми проходимо по всіх вершинах і ребрах, і з усіх порахованих дистанцій обираємо найоптимальніший або найкоротший маршрут. Ребра графа можна збагачувати додатковими атрибутами, приміром, обмеженням по швидкості, тоді алгоритм рахуватиме маршрути з урахуванням і цих характеристик. В планах у нас для цих прорахунків використовувати також дані про трафік на дорогах, пробки, швидкість руху.
|
Задача:
Здається, у 2018 році Google різко поміняв політику: до цього він багато років пропонував своє рішення для маршрутів дуже дешево, але оголосив, що за півроку сильно підніме тарифи на доступ до свого API.

У нас від початку існування Uklon була політика використовувати власну картографію, був окремий відділ картографів, але десь в роботі ми використовували і API Google, наприклад, для відображення маршрута для водія.

Перед нами постала задача виробити власне рішення, і ми це зробили дуже оперативно. Буквально за пару тижнів до години Х, коли Google вмикав іншу тарифікацію, відмовились від їхнього рішення та перейшли на власне. Тепер гуглові API фактично не використовуємо.
|
Задача:
В цьому завданні багато різних нюансів. Адже користувач може буквально промахнутись із кнопкою, зробити одруківку, набрати стару назву вулиці замість нової і тому подібне. Це дуже важливо, адже якщо ми не будемо враховувати пошук з помилками, і застосунок не буде видавати правильну адресу, або показуватиме її не в перших пунктах автопідбору, клієнт може взагалі відмовитись від поїздки. Показати юзеру одразу правильну адресу в підказках — це буденне, але важливе завдання

Виконуємо його за допомогою потужного движка Elasticsearch. В такий спосіб ми обробляємо усі дані по адресах, які оновлюємо щодня. Цілий штат наших картографів займається тим, що слідкує за усіма змінами на картах, не лише назвами вулиць і номерами будинків, але, приміром, вносить дані про ресторани чи кіно, що закрилися.

Такі дані ми індексуємо щодня, і це нетривіальна задача — згодувати Elasticsearch мільйони геооб'єктів у 23 містах, де ми працюємо. Ще й організувати розумний і швидкий пошук по цих адресах. Якщо користувач поміняв навіть одну літеру в назві вулиці, ми маємо супершвидко, за мілісекунди підвантажити новий список адрес, який оновлюватиметься із кожним тапом.

До речі, коли я тільки прийшов в Uklon, Elasticsearch ще не використовували, було інше рішення, яке не дуже масштабувалося, і з ростом бази клієнтів та навантаження воно би не впоралося. Тож мені потрібно було самому розбиратися в тому, як працює Elasticsearch, і потім навчати команду.
|
Задача:
Ще один приклад того, як наша команда знайомилась із новою технологією, щоб з її допомогою покращити роботу застосунку — Microsoft Orleans. Де дуже вузькоспецифічна технологія, що базується на теорії акторів.

Дану технологію ми використали в сервісі розподілення замовлень. Наш сервіс дає можливість водіям обирати ті замовлення, які вони хочуть виконувати, використовуючи найрізноманітніші фільтри. Приміром, не брати замовлення більше ніж за кілометр від точки, де знаходиться авто, або встановлювати мінімальну вартість замовлень, або сектор міста, куди водій не бажає їхати.

Саме використання Microsoft Orleans і теорії акторів дає змогу будувати високонавантажену розподілену систему.
Один з найголовніших бенефітів роботи в Uklon для айтішника: ми розробляємо продукт, яким самі можемо користуватись, і по якому в режимі реального часу можемо збирати фідбек.

Особисто для мене це важливо: уявіть, що вчора ми запровадили нову фічу, а на наступний день я від друзів чую, як це круто працює. Це дуже лестить і мотивує.
|
Задача:
Ми постійно збираємо деперсоналізовані дані про поведінку водіїв та користувачів. Краса цих даних в тому, що вони дійсно відображають реальну поведінку користувача, а не те, що ми, приміром, можемо отримати через опитування у фокус-групах.

Користувачі довгий час просили в нас додати фічу чайових, водії теж були в тому зацікавлені. Перед нами постала задача: як зробити найзручніший варіант, щоби користувачам було легко і зручно залишати чайові, і щоб їх сума була оптимальна.

Для цього ми розробили серію експериментів з різними варіантами: чайові у відсотках від замовлення, як в ресторанах; чайові в абсолютних величинах: 5,10,15 грн; давали користувачеві можливість самому визначати розмір. Ми проводили АB-тестування цих моделей, кілька місяців коригували тести, візуалізацію цієї функції та цінник. Потім моя дата-команда ще тиждень обробляла зібрані дані.

Коли протестували і проаналізували усі дані з різних міст, виявилось, що середній чек по різних містах України дуже різниться і користувачі поводяться по-різному. Тому для різних міст ми впровадили різні варіанти з чайовими, підібрали оптимальний вид та інтерфейс.

В результаті усі лишилися щасливі: клієнтам легко та зручно лишати водієві на чай, водіям зручно отримувати ці кошти, плюс це мотивує їх підвищувати якість сервісу.
|
Задача:
Водії — такі самі клієнти для нас, адже Uklon — це маркетплейс, що стикує водіїв та пасажирів. Щоб працювати з нами, потрібно пройти реєстрацію, більшість водіїв робить це в онлайні.

В цьому процесі є обов'язкові етапи перевірки документів, страховки, техпаспорта, фото машини. І коли ми провели аудит реєстрації водіїв через веб-форму, то побачили вузьке місце: один з етапів воронки, на якому відпадає більше всього водіїв. Виявилось, що це пункт завантаження фото документів (це зрозуміло, бо не всі заповнюють веб-форму, коли документи під рукою, коли зручно їх сфотографувати і т.п.).

Щойно ми виявили цю аномалію, одразу поставили за мету, що цей процес потрібно покращити. Ми проробили різні варіанти, поміняли місцями етапи реєстрації. На самому початку зробили для водіїв сповіщення про те, які конкретні документи знадобляться під час реєстрації. Провели АB-тест, моя команда аналітиків оцінила його результати, потім команда по роботі з драйверами внесла коригування в реєстрацію. Провели ще один тест и виявилося, що на «проблемному» етапі воронки почало відсіюватися вдвічі менше водіїв. Скоротився і загальний час, який водії витрачали на заповнення форми.
|
Задача:
Одна з найбільших задач, які постають: баланс попиту та пропозиції. Світ — неідеальний, і бувають випадки, коли бажаючих поїхати набагато більше, аніж тих, хто може їх повезти. Типові випадки — це вечірні і вранішні години пік, погана погода чи її різке погіршення. І якщо прогнозовані ситуації типу години пік водіям вже відомі, то при настанні несподіваної події, дощу, снігу, перекритій дорозі балансувати попит із пропозицією складніше.

Це і є завдання для нашої команди Data Science. Як ми його вирішуємо? Для балансу попиту та пропозиції ми використовуємо алгоритм градієнтного бустінга, який робить прогноз попиту. Він добре прогнозує і дисбаланс, заснований на історичних даних, і непогано справляється із подіями, які спрогнозувати важче. У застосунку для водіїв за допомогою цього алгоритма з'являються дані з легким «загляданням у майбутнє» про те, в якій зоні міста може з'явитись підвищений попит.
З мого досвіду і досвіду моєї команди — в Uklon перетинається світ офлайна і онлайна. Усі розрахунки і аналітика ведуться в онлайні, але насправді усе це — реальний світ, відображений у світі даних. Для спеціалістів з моєї області це — дуже цінний досвід.

Ще одна річ, яка мені подобається в Uklon: в усіх є можливості для творчості, окрім стандартних задач можна перевіряти гіпотези, можна придумати продукт і він матиме величезні шанси піти в життя.
|
Задача:
Якийсь час ми працювали на звичайних серверах, що бралися в оренду, з усіма плюсами та мінусами таких рішень. Але вирішили: маємо рухатись в клауд. Пробували підняти своє клауд-рішення, запустили на ньому біля 10 сервісів, що працювали на орендованих віртуальних машинах. Працювало це все не те, щоб дуже гарно. Але про переїзд в клауд думали в стилі: можливо, колись таки переїдемо.

Магія Uklon в тому, що коли такий стан нам набрид, ми могли буквально за пару годин вирішити, що потрібно переїжджати в Google-клауд всією компанією. І організували цей переїзд. Використовували відносно молодий підхід git-ops це означало, що все мало бути описане, а всі взаємодії мали проходити рев'ю інших членів команди.

Нам знадобилося десь 2-3 дні, щоби адаптувати все під Google, і ще тиждень на те, щоби перевезти туди весь продакшн. Це, звісно, був авральний тиждень, але ми впоралися. Все працювало відмінно. І це сталося завдяки швидкій і організованій взаємодії усієї команди. Найгарніше, що весь переїзд відбувся безшовно, повністю непомітно для користувачів.
Мені завжди подобалися нові задачі та виклики. В Uklon ти сам можеш обирати задачі для себе, пропонувати будь-яку нову технологію, і якщо в цьому є сенс, її втілити.

Наприклад, зараз ми вивчаємо service mesh-підхід, що дозволяє гнучко керувати трафіком всередині системи, при тому що він передбачає переробку фактично всієї інфраструктури під сервісами і розробкою. Розглядаємо підхід Chaos Engineering, який, започаткували в Netflix. Це дуже крута штука, що дозволяє відтворити будь-яку проблему, що виникла, в робочій системі в контрольованих умовах, і з часом превентивно визначати можливі проблеми в продакшені.

В цьому для мене і є головний інтерес роботи в Uklon: можеш спробувати все нове, що схочеш, будь-яку корисну компанії технологію, і тебе підтримають.
ВАКАНСІЇ
ТЕКСТ
Ольга Карпенко
ПАРТНЕР
Матеріал підготовлено за підтримки Uklon
Що це означає?
ВЕРСТКА
Юля Трофименко
ІДЕЯ
Яна Проценко
ПРОДЮСЕР
Анастасія Михалюк
ФОТО
UKLON
Каріне Полянська
ПРЕДСТАВНИК UKLON
Матеріал виготовлено за підтримки рекламодавця
Під час використання матеріалів сайту обов'язковим є наявність гіперпосилання в межах першого абзацу на сторінку розташування вихідної статті із зазначенням бренду видання AIN.UA. Матеріали з позначками «Новини компаній», PR, «Спецпроект», «Промо» і «Блоги» публікуються на правах реклами.
© 1999-2021 AIN.UA