РБК Компании
Главная Evrone 20 декабря 2022

Как мы помогли вырасти из MVP сервису гиперлокальной доставки

Поддерживаем стартап на этапе перехода к полноценному SAAS-сервису.
master delivery
Задача

В Evrone Master Delivery обратились в поисках Python-программистов, которые смогли бы усилить backend-команду. «Нужно было подключиться к работе по строительству новой структуры сервисов и увеличению производительности», — вспоминает Михаил Майоров, CTO Master Delivery.

Причина

Master Delivery — компания, которая развивает SAAS-сервис гиперлокальной доставки. Из-за взрывного роста компании пришлось быстро увеличивать технологическую команду, которая на ходу смогла бы превратить MVP в полноценный сервис и масштабировать SAAS-решение.

Master Delivery — компания, которая развивает SAAS-сервис гиперлокальной доставки. Логистическая платформа на основе искусственного интеллекта анализирует сотни факторов, чтобы гарантировать постоянную нагрузку на «последней миле» — самом дорогом и сложно прогнозируемом этапе доставки. 

Их технологии можно разделить на три группы: логистический движок (операционное управление доставкой), геоинформационная система (анализ территории доставки) и алгоритмическая часть (предсказание спроса, расчет и построение маршрута) Все это позволяет существенно снижать стоимость доставки для логистических компаний. А еще Master Delivery развивает собственный сервис доставки «Прямиком», доставочные операции в котором выполняют работающие по модели франшизы курьерские компании 

Проблемы роста

Компания запустилась в 2020 году как MVP, и очень быстро выросла. За 9 месяцев 2021 года компания сделала 1 млн доставок, а к ноябрю уже удвоила этот показатель, всего за 2021 год с помощью сервисов Master Delivery доставили товаров на 5 млрд рублей . Из-за взрывного роста компании пришлось быстро увеличивать технологическую команду, которая на ходу смогла бы превратить MVP в полноценный сервис и масштабировать SAAS-решение.

Повышаем производительность

Эта проблема стала одной из основных, над которой Evrone работали на проекте. Из-за того, что первоначальная версия писалась быстро, во многом код был не оптимальным и многое приходилось рефакторить в процессе дальнейшей работы. 

Когда проект начал быстро расти производительность стала узким местом. Например, в сервисе пересчета зон доставки очень много вычислений, и он реализован на чистом Python. При росте нагрузке там начинались проблемы. Кое-где вместо одного запроса использовались целые циклы, так что часть проблем мы решили просто переписав запросы к базам. 

Вместе с собственной командой клиента мы работали над интеграцией библиотек, которые могли бы взять на себя числовую часть. Это довольно распространенный способ повышения производительности, но перед нами стояла задача выжать максимум из этой возможности. Поэтому специалисты Evrone занялись векторизацией запросов. Это помогло ускорить некоторые этапы работы алгоритма на 1,5-2 порядка. Сгруппировав простые запросы, команде удалось ускорить сервис расчета геозон в небольших городах в пять раз!

Обновляем архитектуру

Проект работает на базе Kubernetes, это дает большие возможности для масштабирования архитектуры приложения. Из-за того, что изначально сервисов было значительно меньше, команде клиента пришлось решать структурные проблемы. Прежние решения переставали работать при постоянно растущем числе микросервисов. Поэтому вместе мы поработали над архитектурой и стилистикой, придумать новые способы взаимодействия сервисов, их интеграцию. 

Часть сервисов пришлось адаптировать к Kubernetes. Перед командой стояла классическая задача сохранить поведение сервиса, но сделать это в другом окружении и с большей производительностью. Новые сервисы изначально разворачиваются на этой платформе, поэтому их интеграция уже поставлена на поток. Сейчас в проекте 20 микросервисов, и их число будет расти. 

Интегрируем мерчантов

Конкурентное преимущество продукта Master Delivery — алгоритмы, которые с помощью искусственного интеллекта оптимизируют доставку на «последней миле». Снизить стоимость может полная загрузка: на одном маршруте курьер может доставлять разные товары разных продавцов. Это уменьшает простои и снижает стоимость доставки. Для того, чтобы заказы были всегда, алгоритму нужно предугадывать спрос не только на день, но и на каждый час, знать, какие товары наиболее актуальны в данную минуту, и, конечно, просчитывать все возможные точки отказа и сценарии их замены. 

Это уникальное решение компания реализует по SAAS-модели для других крупных компаний. Пока подключение новых пользователей носит полуавтоматический характер, например, совместимость с разными API, приходится делать руками, также как и вносить необходимые данные и настройки. С ростом проекта это начинает отнимать слишком много времени и требует полной автоматизации. Поэтому сейчас команда Master Delivery продумывает гибкий микросервис для автоматизации подключения мерчантов. Эта работа только начинается, но в ней уже помогает data scientist Evrone. 

Порядок в тестовом окружении

В тестировании проект столкнулся с типичной проблемой при масштабировании. Тестовых стендов мало, а задач становится много, разработчики путают ветки, тестируют разные задачи на одном стенде, из-за чего, естественно, ничего не работает. 

Новый подход позволил сделать тестирование более комфортным как для QA, так и для команд разработки. Каждая команда получила отдельный стенд для тестирования своих задач, окружение сделано на Docker compose Stack. За работу стенда и поддержание его в чистоте отвечает конкретный человек в каждой команде. Это не только ускорило тестирование, но и сняло проблему в синхронизации разных команд. 

«Ребята из Evrone здорово выручили нас, придя на помощь там, где не хватало рук в условиях взрывного роста бизнеса», — делится Антон Вишняков, QA lead Master Delivery.

От бизнес-задач к микросервисам

Технологические особенности второй версии не подлежат разглашению, но точно изменится подход к работе проекта. Сейчас команды делятся по бизнес-задачам, поэтому бывают ситуации, когда несколько команд параллельно работают над изменениями в одном и том же микросервисе. Это создает угрозу стабильности. В новой версии за каждой командой будет закреплен свой микросервис, что нивелирует текущие риски. В архитектуре будет больше порядка и команды будут ощущать ответственность за стабильную работу своего сервиса. 

Результат

У сервиса огромные возможности масштабирования, поэтому в первый же год Master Delivery смогли пройти путь от единичных заказов в Ханты-Мансийске до 3 млн доставок в год и развернуть франшизный бизнес в 14 странах мира. Очевидно, что проект будет расти, и для более плавного расширения требуется изменить подход к его работе. Поэтому сейчас команда работает в том числе и над версией 2.0.

Интересное:

Новости отрасли:

Все новости:

Публикация компании

Профиль

Дата регистрации21.09.2007
Уставной капитал10 000,00 ₽
Юридический адрес обл. Воронежская, г.о. Город Воронеж, ул. Короленко, д. 5, помещ. 1/7
ОГРН 1073668003089
ИНН / КПП 3664086233 366601001
Среднесписочная численность9 сотрудников

Контакты

Адрес 119180, Россия, г. Москва, ул. Большая Якиманка, д. 26
Телефон +74953748460

Социальные сети