О чём эта история

Компания KeepRise помогает бизнесу зарабатывать больше на оптимизации и автоматизации расчёта цен. Это высокотехнологичный стартап, основанный в 2022 году. Основной продукт — платформа, которая позволяет бизнесу быстро и гибко заставить цены и стратегию взаимодействовать между собой. Ценообразование базируется на высокоточных расчётах, требующих ответственного подхода к данным, масштабируемой и отказоустойчивой инфраструктуры. Поэтому команда решила создавать сервис в Yandex Cloud.

Благодаря автоматизации и оптимизации процесса ценообразования, решение компании увеличило выручку одной из торговых сетей до 7%, а прибыль до 2%.

Задача компании

Ежедневно платформа обрабатывает 3–5 ГБ данных, выдавая как результат десятки тысяч оптимизированных цен на товары клиентов. Среди клиентов стартапа такие компании, как билайн, РИВ ГОШ, сети магазинов с миллиардными оборотами. Причем KeepRise ориентирована как на крупный бизнес, так и на средний и малый.

При проектировании оптимизации команда понимала, что не все клиенты будут готовы выносить коммерческие данные из своего контура, поэтому планировала создать решение со сложной гибридной архитектурой. При таком подходе можно размещать часть сервисов и данных на серверах клиента. Также ежедневно в сервис для анализа поступает 3–5 ГБ данных, которые надо учитывать при расчёте оптимальной цены: значения себестоимости и наценки, курсы валют, спрос, поведение покупателей и другие сведения. Скорость расчёта играет ключевую роль в системе оптимизации и требует значительных вычислительных ресурсов. В связи с изменениями на российском рынке потребность компаний в быстром и гибком решении была острой. Поэтому необходимо было как можно скорее вывести приложение в продакшн, не потеряв в качестве. Для сокращения времени на развёртывание и обслуживание инфраструктуры команда решила создавать продукт с использованием облака.

Компания рассматривала два российских облачных провайдера. Широкий набор управляемых сервисов, значительно сокращающих время развёртывания продукта, — основная причина, почему команда выбрала Yandex Cloud. К тому же реализацию своего проекта KeepRise начинала совместно с IT-компанией Raft — разработчиком ПО и партнером Yandex Cloud. Партнеры рекомендовали Yandex Cloud как провайдера, с которым можно реализовать сложные отказоустойчивые и быстро масштабируемые системы.

Инфраструктура для работы с большим объёмом данных

У команды KeepRise более 15 лет опыта работы с ценообразованием: создали внутреннюю систему автоматизации поиска оптимальных цен для большой федеральной продуктовой сети, а также помогали с оптимизацией цен компаниям РИВ ГОШ, Агрокомплекс и другим крупным сетям ритейла. Поэтому к моменту реализации у команды уже было понимание архитектуры решения и требований бизнеса.

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

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

KeepRise хотела создать сервис, который предоставит выбор инфраструктуры клиентам в зависимости от их внутренних требований. Так как платформа KeepRise — это сложная высокотехнологичная система, требующая компетенций для обслуживания, то в основном клиенты выбирают облачную инфраструктуру, но около 30% клиентов предпочли развернуть приложения полностью на своих вычислительных мощностях. При гибридном решении часть информации хранится на собственных серверах клиента, а вычисления производятся в облаке.

Архитектура решения поделена на два контура: контур клиента и контур KeepRise, где и производятся вычисления. Вначале необходимо собрать данные из всех источников клиента: это могут быть транзакции, файлы в CRM, информация из приложений и так далее. В контур KeepRise их загружают с помощью Airbyte и далее сохраняют в Yandex Object Storage. Помимо собранных данных, здесь также хранятся архивы, файлы фронтенда приложения и состояния инфраструктуры Terraform.

Затем собранную информацию фильтруют и при помощи инструмента оркестрации Dagster направляют в DWH, которое организовано на базе Yandex Managed Service for PostgreSQL. В хранилище выделили два слоя: холодный и горячий. Данные от клиента поступают в холодное хранилище и проходят предварительную обработку: каждый день изменения в значениях фиксируются как цифровой слепок или версия. Это обеспечивает актуальность данных и даёт возможность восстановить состояние на любую прошедшую дату. Слепки актуальных данных направляются в горячее хранилище. Расчёт цен происходит очень быстро — системе не нужно каждый раз обращаться в хранилище и производить вычисления, она использует уже предварительно подготовленные данные. Управляет вычислениями контур центральной обработки. Причем подготовка оптимальных цен происходит как ежедневно по расписанию, так и событийно, например, при изменении количества остатков на складе или же по запросу пользователя. Оркестрирует все потоки данных контур координации с использованием инструмента Dagster. Параметры приложения хранятся в Yandex Managed Service for MongoDB. В кластере Yandex Managed Service for Kubernetes® развернули контейнеризированные приложения KeepRise, что позволяет легко управлять ими и масштабировать их при необходимости.

Архитектура KeepRise в Yandex Cloud

Современный ритейл использует моделирование спроса для выявления оптимальных цен на будущий период. Команда KeepRise обучает ML-модели спроса и оптимизации, используя в том числе сэмплирование Томпсона. Этот алгоритм позволяет проводить эксперименты с разными стратегиями ценообразования и определять наиболее эффективную. Модели запускают в Yandex DataSphere. Сейчас данные для обучения моделей хранятся в собственной СУБД. Но в дальнейшем, чтобы увеличить скорость подачи данных из витрин в модели, компания планирует оптимизировать инфраструктуру и перейти на использование ClickHouse.

Результаты

Компания смогла построить гибкий кастомизированный сервис KeepRise, который ежедневно отправляет клиентам десятки тысяч оптимизированных цен на товары. В среднем процесс занимает до 4,5 часов и зависит от требований клиента к инфраструктуре: чем выше скорость обработки, тем выше стоимость обслуживания. Решение KeepRise может увеличить выручку магазинов до 7%, а валовую прибыль от 2% за счёт оптимизации и автоматизации.

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

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