Как создать платформу для управления 50 000 сотрудниками в ритейле при помощи частного облака
Рассказываем, как помогли компании Imredi мигрировать от зарубежного провайдера и построить отказоустойчивую платформу в ритейле.
Задачи:
- Мигрировать от зарубежного провайдера.
- Организовать отказоустойчивую инфраструктуру для обработки данных.
Продукты и услуги Selectel:
Как отслеживать эффективность сотрудников по всей стране, хранить терабайты данных и поддерживать доступность сервиса на высочайшем уровне? Платформа Imredi пять лет назад выбрала в качестве облачного провайдера Selectel и в 2022 году вышла на выручку в 200 млн в год. Рассказываем, какие решения использовались при построении платформы, и как организована ее техническая часть.
О компании
Команда Imredi с 2016 г. разрабатывает решение для контроля и развития розничных сетей. Продукты компании помогают контролировать стандарты и управлять операциями и сотрудниками. Запускать промоакции и обеспечивать доступность товаров. Все они объединены единой технологической платформой, обеспечивающей модульную архитектуру, сквозные процессы, горизонтальное масштабирование, открытое REST API и интерфейсы интеграции данных.
Пользователи платформы — это все сотрудники розничной сети. Ежедневно они выполняют операционные задачи в мобильном приложении. Ставят и получают задания на день, заполняют чек-листы, сканируют штрихкоды, работают с продажами, отправляют фотоотчеты, отмечают приход и уход контролируют исполнение промо-акций, формируют графики работы и табели. Платформа Imredi не только оптимизирует задачи управления розничной сетью, но и предоставляет аналитику, инструменты для работы с KPI и управления персоналом.
- Миграция от зарубежного провайдера. Оптимизировали бюджет, предоставили кастомные серверы и возможность быстрого масштабирования инфраструктуры.
- Построить IT-инфраструктуру, способную быстро обрабатывать большой объем информации. Предоставили условия для комфортной реализации архитектуры проекта с возможностью поднятия быстрого поднятия десятков ВМ.
Почему выбрали Selectel
Imredi искали провайдера, который позволяет быстро поднимать десятки виртуальных машин под запрос заказчика. В соответствии с принципом мультитенантной архитектуры, логическое разделение внутри ВМ позволяет изолированно работать с разными клиентами в рамках единой платформы и сервисных подсистем.
В Selectel можно добавлять любое количество ВМ в разных конфигурациях. Компания начинала со стандартных 16 CPU, 32 RAM серверов, а сейчас пришла к базовой Node для application-серверов и серверов баз данных в виде кастомной конфигурации на 32 ядра и 64 ГБ RAM, а также терабайтного локального NVMe диска c нулевой сетевой задержкой. Для обслуживающих сервисов, тестовых сред, конвейеров CI/CD и мониторинга используются машины с меньшей мощностью — 4 CPU, 16 ГБ/24 Гб RAM.
«Первый кластер виртуальных машин удалось поднять за пару часов. Отдельным плюсом стало то, что в панели управления IT-инфраструктурой Selectel была возможность отслеживать загрузку серверов и потребление трафика. Для стартапа в период активного роста это очень важный момент».
Федеральный уровень клиентов платформы предполагает работу с большим количеством данных: отчеты, фотографии, статистика. Облачное хранилище, которое использует Imredi, не ограничено в объеме. На платформе есть возможность по разному организовывать хранение медиа-данных:
- Стандартное — для данных, с которыми постоянно работают пользователи.
- Холодное — для данных, которые запрашиваются редко, поэтому стоимость хранения ниже.
Распределение по типу хранения оптимизирует расходы на инфраструктуру. Таким образом, еще на старте проекта были видны преимущества миграции из Microsoft Azure.
Далее мы рассмотрим архитектурные особенности Imredi, которые напрямую связаны с особенностями продуктов Selectel и принципами разработчиков платформы.
Решение
Структура платформы состоит из трех ферм: application-серверы, базы данных и серверы аналитики. Вокруг это используется обвязка из сетевой инфраструктуры и вспомогательных сервисов.
Application-серверы распределяют нагрузку и реализуют отказоустойчивые кластера, чтобы нивелировать пиковые нагрузки заказчиков. Есть отдельные серверы, привязанные к аналитике. Есть собственное встроенное внутреннее хранилище на PostgreSQL с витринами данных. Все вместе это выглядит следующим образом:
Есть также серверы мониторинга, которые следят за всеми обращениями и ошибками, как происходит отклик между ними. На их ресурсах собирается вся статистика, пишутся логи.
Кроме этого, Imredi использует два подхода к резервированию:
- Для создания отказоустойчивой инфраструктуры используется сразу две зоны доступности.
- Платформа реализует собственное резервирование за счет регулярных бэкапов данных, которые находятся в файловом хранилище в Selectel.
Клиенты компании геораспредлены по всей стране, но за счет того, что часть процессов не требует быстрой обработки — они выполняются в фоновом режиме. Это помогает оптимизировать работу в пиковые часы и полезно использовать ночное время, чтобы серверы не простаивали.
Облако
Новые виртуальные машины поднимаются в облачной платформе Selectel только в тех случаях, когда ферма упирается в ресурсы и возникает риск спада производительности. Система при этом настроена так, чтобы узнавать об этом заранее. Это помогает не выделять под каждого клиента отдельный сервер и оптимизировать затраты на инфраструктуру.
Каждая ферма рассчитана на большее количество пользователей, чем есть фактически у заказчиков. Новые серверы добавляются в трех случаях:
- когда растет нагрузка на модули,
- когда меняется профиль нагрузки,
- когда вырастает количество пользователей в рамках заказчиков.
Результат
Нагрузка на платформу увеличивается каждый день, поэтому решения должны быть не только технологичными, но и отказоустойчивыми. В рамках сотрудничества с Selectel удалось достичь необходимой гибкости платформы для работы с большим количеством ВМ и новыми пользователями.
- Платформа разграничивает заказчиков по доступным ресурсам, которые они могут взять от конкретных ферм.
- Архитектура проекта позволяет органично использовать Data Lake на выделенных серверах, поскольку для работы с этими данными не требуется высокая скорость.
- В 2 раза сократилось время релизов.
Что в итоге
Опыт совместной работы Imredi и Selectel показывает, что провайдер для стартапа — это не только источник ресурсов или поставщик решений. Это полноценный бизнес-партнер. Высокая эффективность сотрудничества достигается за счет одинаковых ценностей двух компаний: идти от задач своих клиентов и предоставлять необходимую функциональность для решения их проблем.