Wildberries: Оптимизация ТСО за счет Tarantool
cover

Оптимизация ТСО
за счет надежного
кэша Tarantool

Wildberries — это самый популярный российский онлайн-магазин. Компания работает в 7 странах и четыре года подряд признается крупнейшим интернет-ритейлером России. Более 30 миллионов человек являются клиентами Wildberries, 7 миллионов посетителей совершают 780 тысяч заказов в сутки.

Scroll

Задача и требования

В середине 2010-х технически Wildberries существовал в виде .NET-приложения и MS SQL-серверов. Это была пара монолитов — back и front — и один потолок для них, к которому производительность медленно, но верно приближалась. С выходом на рынок Беларуси нагрузка на процессор не опускалась ниже 90%. В период акций «Черная пятница» запросы увеличивались в три раза.

Техническая команда понимала, что с ростом нагрузки затраты на MS SQL становятся неприемлемыми. Тогда приняли решение распилить монолиты и перейти к микросервисной архитектуре.

При выборе решения команда опиралась на следующие требования:

  • Нужен надежный кэш для критически важных систем;
  • Надежность важнее скорости;
  • Экономия на оборудовании и лицензиях в сравнении с MS SQL;
  • Готовы поступиться функциональной мощностью, т.е., когда речь идет о простых операциях, не нужен «навороченный» PostgreSQL;
  • Важна персистентность данных;
  • Автопереключение с одного дата-центра на другой;
  • Горизонтальное масштабирование.

Решение

Решение

Схема работы
с Tarantool

Решение

Решение

icon

На первом же этапе разработчики откинули платные технологии из-за стоимости решений и производительности: при нужных показателях стоимость выходила за рамки ИТ-бюджета. Тогда и появилась схема с Tarantool. В первую очередь стали переносить сервисы с высокой нагрузкой, где текущая MS SQL база требовала много экземпляров.

Сегодня у технической команды Wildberries есть свой подход, как создавать надежные распределенные системы. Tarantool для них — это хорошее универсальное хранилище для работы с востребованными данными: пользовательскими профилями, баннерами, скидками и т.п. Всего на Tarantool работают 12 микросервисов.

Решение

icon

  • Самый критичный сервис сайта — Мастер-хранилище профилей пользователей — содержит данные 50 миллионов пользователей. Для его работы полностью отказались от MS SQL.
  • Самый объемный сервис Wildberries, где используют Tarantool, — это Сервис отложенных товаров. В памяти он занимает около 120 ГБ, и 3-4 экземпляра есть в каждом дата-центре.
  • По RPS самые нагруженные сервисы — Промотайзер и Мастер-хранилище профилей — выдерживают примерно 6 тысяч и 12 тысяч запросов в секунду соответственно.
  • Tarantool также используют для быстрых справочников в складской системе, чтобы оперативно перепроверять информацию в некоторых случаях.

Схема работы
с Tarantool

Решение

icon

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

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

icon icon icon
Scroll

Результаты

12 микросервисов

Tarantool является основной базой данных для 12 микросервисов

профили

Самый критичный сервис сайта — мастер-хранилище профилей пользователей — хранит данные в Tarantool

12 000rps

12 000 RPS для мастер-хранилища профилей

Получить консультацию

Заказать демо

Спасибо за обращение

Специалисты Tarantool свяжутся
с вами по оставленным контактам

alt