Миграция бэкенда на Tarantool

Заказчик
ГК Мерлион (Ситилинк)
Руководитель проекта со стороны заказчика
ИТ-поставщик
VK цифровые технологии
Год завершения проекта
2021
Сроки выполнения проекта
Январь, 2020 - Июнь, 2021
Масштаб проекта
5000 человеко-часов
Цели

«Ситилинк» — один из крупнейших электронных дискаунтеров с большой географически распределенной сетью магазинов. 

Объем хранимых данных ежегодно растет на 50–100%. Старая информационная система компании использовала кэш реляционной базы данных для ускорения доступа к информации о товарах и их наличии. Это решение исчерпало свои возможности и перестало эффективно справляться с растущей нагрузкой. 

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


Уникальность проекта

Что такое «Ситилинк»:
  • оборот онлайн-продаж в 2020 году — 132,7 млрд рублей;
  • около 800 магазинов-складов;
  • около 130 000 товаров в наличии (зависит от региона);
  • ежедневное обновление порядка 20 млн цен по всему ассортименту в 150 регионах.
Проект решает задачи импортозамещения
Нет
Использованное ПО
Платформа in-memory-вычислений Tarantool
Сложность реализации

Схема репликации данных master-master, которая была выбрана при миграции на Tarantool, справедливо считается технически сложной в реализации. Однако преимущества ее применения перевесили риски, поэтому постепенно были выработаны определенные правила эксплуатации Tarantool и требования к коду серверной части системы.

К примеру, в моменты развертывания обновления или аварии происходит переключение трафика с одного инстанса на другой. Чтобы минимизировать риски, запросы на запись и чтение отправляются только на один из инстансов. Поскольку некоторый риск все равно остается, финансовая информация в Tarantool не хранится.


Описание проекта

Что сделали разработчики:

  1. Создали свое решение, которое позволяет с помощью всего одного запроса развернуть новый экземпляр базы данных.

  2. Настроили репликацию данных по схеме master-master. Это позволило обеспечить высокую доступность сервисов и внедрить т. н. сине-зеленое развертывание, при котором трафик незаметно для пользователей постепенно переносится со старой версии приложения или сервиса на новую.

  3. Начали использовать в 2019 году Tarantool в качестве базы данных для всех новых проектов.

  4. Запустили «распил» монолитного сервиса на микросервисы с переносом данных из реляционной базы данных в отдельные экземпляры Tarantool.

Результаты:

  • Полученное решение позволяет легко выдерживать нагрузку до 2 млн записей в минуту.

  • Каталог товаров находится в актуальном состоянии в любой момент времени.

  • Задержка обновления каталога составляет 3 секунды вместо 10–30 минут как ранее.

  • Time-to-market теперь занимает 1 минуту вместо 2 недель.

  • Доступность сервиса выросла более чем в 10 раз.

  • Задержка предоставления данных составляет менее 30 мс вместо 300–500 мс.

  • Вместо одной монолитной базы данных развернуто 70 экземпляров баз данных под самые высоконагруженные сервисы магазина.

География проекта
Вся Россия
Год
Предметная область
Отрасль
Управление