«Лента Онлайн» и интернет-магазин «Утконос» создали общий ИТ-бренд. Чем они занимаются

И что под капотом у сервисов доставки продуктов питания.

«Лента Онлайн» и интернет-магазин «Утконос» создали общий ИТ-бренд. Чем они занимаются

В феврале 2022 года «Лента» купила онлайн-магазин «Утконос». Теперь ритейлер планирует конкурировать с московскими доставками в ценовых сегментах «выше среднего» и «премиум». Цель — увеличить долю на онлайн-рынке столицы и всей России по итогам года.

Бизнесы «Утконоса» и «Ленты Онлайн» развиваются отдельно. Каждая компания охватывает свой рыночный сегмент и придерживается своей модели бизнеса. «Утконос» предлагает покупателям широкий ассортимент продуктов питания и сопутствующих товаров с доставкой со складов, «Лента Онлайн» собирает заказы в магазинах.

Чтобы помогать друг другу, компании сформировали сообщество инженеров LENTA:U TECH. Мы проводим митапы, делимся решениями проблем в сервисах, формируем гильдии по профессиям, чтобы общаться на профильные темы. В нашем первом общем материале расскажем о задачах и технологиях, с которыми работаем.

«Лента Онлайн»

Стартап «Ленты», основанный в 2019 году. Его команда отвечает за продажи в приложении, доставку и самовывоз товаров из магазинов в 136 городах России. За три года сервис вырос с нуля до нескольких десятков тысяч заказов в день. В команде 70 технических специалистов, плюс сотрудники на аутсорсе — всего около 100 человек.

В 2019 году команда «Ленты Онлайн» сделала форк системы «Утконос» — скопировала базу и начала работать над своей платформой. Это были нативные приложения iOS и Android, монолитное API и MySQL в качестве хранилища данных. Такой подход позволил «Ленте» быстро запуститься, но в будущем их ИТ-команда внесла много изменений в скопированную систему. Одно из ключевых — это переход от монолитной архитектуры к сервисно-ориентированной (SOA) . Раньше все компоненты приложения были взаимозависимы — если один не работает, то не работают остальные. Микросервисы более самостоятельны, работают совместно и нацелены на выполнение одной задачи. Сразу понадобилось решить, как выделять сервисы из монолита.

Сейчас в «Ленте Онлайн» команды разделены на восемь сервисов:

  • Каталог — товары, цены, остатки

  • Операции — Time Management System (TMS) , приложение сборщика и курьера

  • Платформа — DevOps, инструменты для инфраструктуры

  • Партнёры — интеграции с маркетплейсами и доставками

  • Клиентский опыт — маркетинговые рассылки, пуши, программа лояльности

  • Чек-аут — оплата, корзина

  • B2B — работа с корпоративными клиентами
  • Поиск

Каталог и поиск в приложении «Лента Онлайн»
Каталог и поиск в приложении «Лента Онлайн»

Переход к SOA позволил использовать в каждом сервисе разные языки и инструменты, лучше всего подходящие для решения клиентских задач.

Каталог, поиск и партнёры — самые высоконагруженные сервисы. Именно с них начинается работа с приложением. Они были вынесены из монолита в первую очередь и написаны на Golang. Основные хранилища в них — PostgreSQL и Elasticsearch.

Чек-аут — сервис работы с корзиной, формирования заказа и оплаты. Когда в марте 2022 года появились проблемы с платёжными системами и санкционными банками, в него вносили изменения каждый день. Способы оплаты то переставали работать, то начинали снова. Приходилось наскоро интегрировать новые или что-то дорабатывать на ходу. Работает на PHP.

TMS — сервис для сборки и доставки заказа. Здесь ставятся задачи для пикеров — сборщиков заказов, — и курьеров, стыкуются интервалы сборки и доставки, строятся маршруты. Это одна из самых сложных частей системы — фактически монолит внутри монолита. Из-за обилия вычислений, основной язык сервиса — Python.

Вместе с TMS работают сервисы и приложения для пикеров и курьеров. В них тоже довольно высокая нагрузка, так как в каждом торговом комплексе работают десятки сотрудников. Использует Golang на бэкенде. Приложение для пикеров и курьеров написано на Flutter.

Сервис клиентского опыта отвечает за работу с уведомлениями, программами лояльности и другими маркетинговыми инструментами. Они написаны на PHP, оптимизируем с помощью рефакторинга на Golang.

Сервис B2B отвечает за работу с корпоративными клиентами. Он совсем недавно появился и активно развивается.

Сами мобильные приложения написаны на Swift и Kotlin. ИТ-инфраструктура «Ленты Онлайн» включает два кластера Kubernetes. Для пиковых нагрузок настроено автоматическое масштабирование кластеров и дозаказ новых узлов для них.

Сервис быстро развивается— например в 2021 году пропускная способность, количество заказов и выручка выросли в 10 раз. Из-за увеличения объёмов данных и нагрузок, команда ищет новые инструменты и подходы для оптимизации и ускорения работы.

«Утконос»

Онлайн-магазин продуктов с доставкой, работает в Москве и области 21 год. Ассортимент — более 70 000 товаров c широким ассортиментом продуктов категории fresh (фрукты/овощи, мясо, молочные продукты и т. д.) среди онлайн и офлайн продуктовых ритейлеров в России, в портфеле компании 6 собственных торговых марок. ИТ-команда сервиса насчитывает более 400 человек.

ИТ-архитектура «Утконоса» объединяет учетную систему SAP S/4HANA и собственные разработки: микросервисы, DevOps-платформы и другие решения. Например, на Python, Hadoop, Spark, Oracle, Click House, Airflow, MLflow, Qlik, SAS, React, Angular, PHP, Golang, Kubernetes.

В SAP компания ведёт финансовый и кадровый учет, собирает отчёты, здесь содержится бизнес-аналитика, система проектов и управление производственными циклами компании.

До 2020 года архитектура «Утконоса» состояла из витрины и учётной системы SAP ERP, где все компоненты взаимосвязаны и взаимозависимы. Если один элемент не работает, то не работают и все остальные. Поэтому мы решили уходить в сторону микросервисов — небольших, автономных продуктов, нацеленных на выполнение одной конкретной задачи.

В 2022 году этот переход завершился: мы переехали с SAP ERP на S/4HANA, поскольку SAP объявил о том, что прекратит поддержку старой учетной системы. Благодаря переходу повысилась производительность работы всех бизнес-модулей — это позволит обрабатывать более 100 тыс. заказов в сутки.

В «Утконосе» работают следующие сервисы.

Сайт и приложения iOS и Android. Главные разделы — каталог и поиск, также есть личный кабинет и программа лояльности. Стек технологий: Golang, Angular, PHP, Swift, Kotlin, MySQL, PostrgeSQL, Docker, Kubernetes, JavaScript, React, Python, Android, iOS, Kafka.

Warehouse Management System (WMS) — система управления складскими процессами. WMS механизирует приёмку и размещение товара, комплектацию и отгрузку заказов, обработку возвратов и инвентаризацию. Над системой работает команда из 65 человек. Стек: Java/Kotlin, Spring, Camunda, React, Kafka, PostgreSQL.

Transport Management System (TMS) — cервис управления маршрутами. Позволяет сокращать расходы на доставку и оптимизировать её время. Стек: Python, React, PostgreSQL.

Lastmile — управляет автопарком и рейсами клиентской доставки. Сервис решает сразу три задачи: планирование ресурсов, управление рейсами и заказами в нём, и поддержка приложения для курьеров Utkomobile APP. Стек: Golang, React, Kafka, PostgreSQL.

Utkomobile APP — приложение для курьеров. Здесь они получают рейсы, отмечают выезд и выдачу заказа клиенту, оплату — фиксируют все свои действия. Utkomobile имеет модульную структуру, построенную на отдельных заданиях, что даёт гибкость разработке и высокую скорость реализации при добавлении или изменении функций. Стек: Kotlin, PostgreSQL.

Stock Service — сервис управления остатками, учёта будущих поступлений и резервирования товаров. В Stock Service мы собираем данные по остаткам из складских мастер-систем и публикуем в режиме реального времени. Там же обеспечиваем логику учёта условий доступности товара на витрине.

Supplier Relationship Management (SRM) — система управления взаимоотношениями с поставщиками. Это портал, где формируются поставки и закупки. Стек: Golang, React, Kafka, PostgreSQL.

Экраны программы лояльности и каталога в «Утконосе»
Экраны программы лояльности и каталога в «Утконосе»

Есть ещё несколько технических сервисов: Payment System — для оплаты заказов, Product Information Management (PIM) — для управления ассортиментом, каталогом и описанием, Price Management — для ценообразования и Layout Service — для раскладки корзины по пакетам, коробам для транспортировки и другие.

Наши компании — «Ленты Онлайн» и «Утконоса» — ищут разработчиков, системных и бизнес-аналитиков, тестировщиков и других айтишников. Команды сервисов самостоятельные — можно выбрать то, что больше нравится, например, заниматься cервисом управления маршрутами в «Утконосе». Если вы ищите компанию, чтобы начать (или продолжить) карьеру в ИТ — приходите к нам.

16