Wildberries — это самый популярный российский онлайн-магазин. Компания работает в 7 странах и четыре года подряд признается крупнейшим интернет-ритейлером России. Более 30 миллионов человек являются клиентами Wildberries, 7 миллионов посетителей совершают 780 тысяч заказов в сутки.
В середине 2010-х технически Wildberries существовал в виде .NET-приложения и MS SQL-серверов. Это была пара монолитов — back и front — и один потолок для них, к которому производительность медленно, но верно приближалась. С выходом на рынок Беларуси нагрузка на процессор не опускалась ниже 90%. В период акций «Черная пятница» запросы увеличивались в три раза.
Техническая команда понимала, что с ростом нагрузки затраты на MS SQL становятся неприемлемыми. Тогда приняли решение распилить монолиты и перейти к микросервисной архитектуре. При выборе решения команда опиралась на следующие требования.
На первом же этапе разработчики откинули платные технологии из-за стоимости решений и производительности: при нужных показателях стоимость выходила за рамки ИТ-бюджета. Тогда и появилась схема с Tarantool. В первую очередь стали переносить сервисы с высокой нагрузкой, где текущая MS SQL база требовала много экземпляров.
Сегодня у технической команды Wildberries есть свой подход, как создавать надежные распределенные системы. Tarantool для них — это хорошее универсальное хранилище для работы с востребованными данными: пользовательскими профилями, баннерами, скидками и т.п. Всего на Tarantool работают 12 микросервисов.
Схема работы с Tarantool выглядит следующим образом. В каждом дата-центре на виртуальных или аппаратных машинах стоит несколько мастеров. Соединения сделаны по схеме мастер-мастер. Есть интерфейсы или синхронизаторы, которые скачивают информацию, например, о скидочных купонах и условиях по ним и пишут в мастеры. К этим мастерам подключаются реплики на виртуалках или в Kubernetes. Сверху находятся приложения, которые обращаются к репликам.
Каждое приложение работает с двумя кластерами. В случае сбоев в работе дата-центра оно может обратиться к другому кластеру. Есть прослойка, которая сохраняет интерфейс Go-драйвера Tarantool и скрывает логику. Прослойка видит все реплики и может работать с мастером на чтение и запись.
Tarantool основная база данных для 12 микросервисов
Самый критичный сервис сайта — мастер-хранилище профилей пользователей хранит данные в Tarantool
12 000 RPS для мастера-хранилища профилей
Специалисты Tarantool свяжутся с вами по оставленным контактам