Территория доступного спорта
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 миграция сервисов Декатлон стала ещё одной успешной проверкой на готовность работать со сложной архитектурой и задачами крупных компаний.