Территория доступного спорта

Decathlon (Декатлон)— французская сеть спортивных гипермаркетов для всей семьи. Представлена в России с 2006 года и на сегодняшний день насчитывает 58 точек в 28 городах, в том числе 16 в Москве и Московской области. Со дня основания компания следует девизу — «Делать спорт доступным!». Большинство товаров — собственного производства, создаются в лабораториях Decathlon во Франции. Задача компании на современном этапе состоит в освоении новых цифровых возможностей и создании удобных инструментов для клиентов, которые становятся всё мобильнее, привыкли к интерактивным сервисам и онлайн-покупкам товаров и услуг.

Технологии для новой площадки

Первым шагом в развитии Декатлон Россия как глобальной спортивной платформы стал запуск сервиса для поиска тренировок All Do Yoga. В агрегаторе тренировок и онлайн-площадке для спортивного сообщества реализовались идеи команды Декатлон Россия по созданию нового сервиса для своих потребителей. Теперь пользователи могут находить тренировки, обмениваться отзывами, делиться достижениями и приобретать товары для спорта. All Do Yoga умеет определять местонахождение и показывать ближайшие студии, предлагать снаряжение для тренировок и даёт возможность сразу приобрести необходимые вещи. Работа с сервисом происходит через сайт и приложение.

Для реализации такого масштабного проекта команде важно сосредоточиться на функционале, будучи при этом уверенными в надёжности технологий и соблюдении требований по работе с персональными данными клиентов. Для строительства и запуска All Do Yoga было выбрано Yandex Cloud, которое предоставило инфраструктуру, соответствующую требованиям по хранению и обработке персональных данных.
С технической точки зрения при реализации проекта стояло несколько задач:

  • Разворачивание и управление всей инфраструктурой в концепции Infrastructure as a Code — среды разработки (development), переноса (staging), производства (production). Основным инструментом для этого был выбран Terraform.
  • Поддержка высокой доступности геораспределённой среды production.
  • Возможность оперативного горизонтального масштабирования нагрузки без дополнительных капитальных затрат.
  • Минимизация обслуживания используемых баз данных (PostgreSQL, MongoDB, Redis) и кластеров приложений Kubernetes®.
  • Соответствие ФЗ-152.

Описание через Terraform и нагрузочное тестирование

Создание сервиса на стороне Декатлон Россия началось в 2018 году. В 2019 году development и staging были перенесены на различные облачные платформы в России и Европе. В июне 2019 года состоялась миграция в Yandex Cloud и запуск Production. Проект внедрялся совместными усилиями: со стороны компании Декатлон Россия участвовал ИТ-отдел проекта, со стороны Yandex Cloud — группа профессиональных инженерных услуг.

Главная сложность проекта заключается в наличии нескольких сред (development, staging, production) в разных фолдерах и разных сетях и в необходимости разделять доступ как на сетевом уровне, так и на уровне облака. Логика инфраструктуры продиктована требованиями безопасности, по которым логический и сетевой доступ к проектам Декатлон должны быть разграничены.

Среды development и staging идентичны production по составу сервисов, но находятся в одной зоне доступности. Production разнесён по трём зонам доступности. Сетевая нагрузка распределяется с помощью балансировщика Yandex Network Load Balancer. Стек включает:

  • Yandex Object Storage
  • Yandex Container Registry
  • Yandex Network Load Balancer
  • L7 балансировщик Traefik, собранный на базе сервиса Yandex Compute Cloud
  • Кластер Kubernetes, собранный на базе сервиса Yandex Compute Cloud
  • Managed Service for PostgreSQL
  • Managed Service for MongoDB
  • Managed Service for Redis

При миграции конфигурация инфраструктуры была описана с помощью Terraform. Этот инструмент совместим с платформой Yandex Cloud (чтобы оценить удобство использования, перейдите к руководству Начало работы с Terraform) Разные проекты были описаны в разных репозиториях с использованием Terraform и Object Storage.

Перед запуском проводилось нагрузочное тестирование с помощью нашего инструмента с открытым исходным кодом Яндекс.Танк (образ доступен всем в Маркетплейсе Yandex Cloud). Яндекс.Танк обнаружил узкие места, и это помогло при запуске сделать так, что сервис не упал от нагрузки. Бесплатный сервис Overload от Яндекса позволил быстро делиться результатами тестов Яндекс.Танка в формате, понятном всем сторонам.

Кластеры Kubernetes развернуты самостоятельно, поверх сервиса Yandex Compute Cloud. Сценарий компании Декатлон внёс в сетевой стек Yandex Managed Service for Kubernetes необратимые улучшения, которые были представлены в общедоступной версии 1 октября 2019 на конференции Scale.

Готовность к новым упражнениям

По итогам миграции были решены все поставленные задачи:

  • Все среды (development, staging, production) функционируют в Yandex Cloud.
  • Обеспечена поддержка высокой доступности среды production и возможность горизонтального масштабирования нагрузки без дополнительных капитальных затрат.
  • Обслуживание баз данных PostgreSQL и кластеров Kubernetes происходит на стороне Yandex Cloud.
  • Все данные обрабатываются и хранятся в соответствии с требованиями российского законодательства.

Сервисы Yandex Cloud обеспечивают работоспособность сайта под постоянно растущей нагрузкой. Таким образом, Декатлон может увеличивать посещаемость сайта All Do Yoga в десятки раз без потерь в скорости работы ресурса.
Следующим шагом станет расширение числа видов спорта и запуск сервиса All Do Sport, который объединит уже не сотни, а тысячи фитнес-студий, тренеров и любителей спорта.
Для платформы Yandex Cloud миграция сервисов Декатлон стала ещё одной успешной проверкой на готовность работать со сложной архитектурой и задачами крупных компаний.