fbpx

Технологии Retail Rocket

Команда разработчиков и аналитиков Retail Rocket стремится изменить мир ecommerce и сделать его по-настоящему персонализированным с момента написания первой строки кода в 2012 году.

О Retail Rocket в цифрах:
• Аналитический кластер более чем из 150 серверов в 6 различных дата центрах
• В месяц обрабатывается более 200 миллионов посетителей, уникальных — более 90 миллионов
• Более 1 000 интернет-магазинов подключено к Retail Rocket по всему миру
• Более 450 000 внешних запросов в минуту (в среднем)
• Количество во входящих запросов в секунду в пике: 15 000
• В разработку инвестировано более 50 человеко-лет
• Ни разу за 7 лет мы не потеряли данные клиентов

Data science подход

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

  • Контентная фильтрация (content filtering).
  • Коллаборативная фильтрация (colaborative filtering).
  • Предсказательные модели (predictive analytics) на основе машинного обучения и цепей Маркова.
  • Байесовская статистика.
  • Алгоритмы гибридной персонализации в режиме реального времени.

… и многие другие.



 
Роман Зыков, Директор по аналитике, выступает на ежегодной конференции RecSys 2016 @ MIT University (Boston)
Деятельность в сообществе Data Science

Наша команда разработчиков принимает активное участие в жизни научного сообщества. Они выступают на значимых в индустрии конференциях, получают награды в соревнованиях Data Science. Помимо этого, можно увидеть публикации наших разработчиков в специализированных интернет-изданиях.

img

 

 

spark
Аналитическая платформа

Для машинного обучения мы используем Spark на базе платформы Hadoop Yarn – это система кластерных вычислений, которая лучше всего подходит для наших текущих задач. Из родных компонентов Hadoop у нас работает Apache Flume для доставки данных, библиотека распределенного Machine Learning Mahout и планировщик задач Oozie.

У команды Retail Rocket есть репозиторий на GitHub с множеством интересных проектов: движок для A/B-тестов на JavaScriptбиблиотека Spark MultiTool на Scala, скрипты для развертывания кластера Hadoop с помощью Puppet.

 

iis8
Фронтэнд

Почти все, что видит пользователь, обрабатывается на win-машинах с веб-сервером IIS, код написан на C#, Asp.Net MVC. Все данные хранятся и раздаются в трех СУБД: Redis, MongoDB, PostgreSQL.

Когда нам надо обеспечить взаимодействие распределенных компонентов, к примеру, при вычислении сегмента пользователя по User-Agent для профилирования аудитории, используется Thrift. А для того, чтобы различные подсистемы могли получать поток данных для этого от интернет-магазинов, применяется упомянутый выше транспорт Flume.

git
Процесс разработки

В разработке наша команда придерживается методологии непрерывной доставки новой функциональности клиентам (на сегодняшний день к нам подключено более 1000 магазинов).

Для этого мы применяем цепочку технологий Git + GitLab + TeamCity с прохождением юнит-тестов (по состоянию на начало 2017 года проведено более 1 200 тестов), приемочных тестов и code review.