О чём эта история
Island Soul Jewelry создаёт дизайнерские украшения из серебра, вдохновлённые островом Бали. Бренд владеет сетью из 70 магазинов в 5 странах, а также реализует украшения через сайт. Инфраструктура интернет‑магазина не справлялась с пиковыми нагрузками, что вело к потере клиентов. Поэтому Island Soul Jewelry обратился к ITSumma для создания гибкого и масштабируемого решения в облаке.
В результате миграции на новую инфраструктуру в Yandex Cloud сайт стал работать в 4 раза стабильнее, выдерживая до 800 запросов в секунду. Перенос изображений в хранилище Object Storage и оптимизация их выдачи с подключением Yandex CDN помогли снизить нагрузку на источники на 90%. Также ITSumma помогла Island Soul Jewelry внедрить мониторинг, резервное копирование, инструменты управления безопасностью, а также управляемый процесс CI/CD.
Задача компании
Island Soul Jewelry — это бренд дизайнерских украшений из серебра, вдохновлённых островом Бали. Компания работает с 2016 года и владеет сетью из 70 магазинов в 5 странах. Также у компании есть интернет‑магазин с доставкой украшений по миру. Ежедневно на сайт заходит по 30 тысяч посетителей.
Для ювелирных магазинов февраль и март — высокий сезон. В этот период кратно возрастает нагрузка на сайт. Инфраструктура сайта не справлялась с пиковыми нагрузками, что приводило к потере клиентов и, как следствие, доходов. Бренд решил изменить инфраструктуру для повышения отказоустойчивости, улучшить архитектуру, а также добавить гибкости благодаря масштабированию. Чтобы реализовать этот проект, Island Soul Jewelry обратился к ITSumma — подрядчику с пятнадцатилетним опытом работы с различной инфраструктурой.
ITSumma предоставляет услуги по управлению инфраструктурой, администрированию, мониторингу и поддержке почти 500 компаниям из различных отраслей. ITSumma помогает клиентам с миграцией в облако и наоборот, разрабатывает сайты, проектирует и разворачивает платформы для хранения и обработки данных, в том числе с машинным обучением.
Изначально инфраструктура сайта Island Soul Jewelry представляла собой два физических сервера для фронтенда и бэкенда, где использовалось устаревшее программное обеспечение. Из‑за этого сайт не выдерживал наплыв посетителей. Команда ITSumma предложила перейти на гибкую облачную инфраструктуру с быстрым масштабированием, мониторингом, резервным копированием, высокой информационной безопасностью, в том числе и сетевой.
Компания искала отечественного поставщика облачных услуг и обратила внимание на Yandex Cloud, который предлагал необходимые сервисы для новой инфраструктуры. В линейке продуктов Yandex Cloud есть виртуальные машины, набор управляемых сервисов, в том числе платформа данных, а также инструменты для управления облачной безопасностью. Возможность управлять инфраструктурой через Terraform стала дополнительным преимуществом. К тому же ITSumma — сертифицированный партнёр Yandex Cloud Professional и команда знакома с особенностями реализации многозональных автомасштабируемых кластеров Kubernetes.
Как перенести интернет‑магазин на Ruby on Rails и Spree в облако
Для миграции Island Soul Jewelry и ITSumma создали команду. Переезд занял 1,5 месяца и проходил в четыре этапа:
- Описание инфраструктуры как кода. Команда спроектировала облачную архитектуру и развернула инфраструктуру в облаке с использованием сервисов Yandex Cloud. Также создали набор сценариев и файлов конфигураций для быстрого изменения или масштабирования инфраструктуры.
- Адаптация приложений для облака. На этом этапе подготовили набор компонентов, которые обеспечивают работу приложения в масштабируемой среде.
- Подготовка к эксплуатации. Команда внедрила систему мониторинга для сервисов и написала сопроводительную документацию.
- Приёмо‑сдаточные испытания и переключение. На финальном этапе протестировали инфраструктуру, доработали детали, обучили специалистов Island Soul Jewelry работе в новой среде и переключили продакшен.
Всего подняли две виртуальные машины и развернули два многозональных кластера в Managed Service for Kubernetes — для разработки и продакшена. Это позволило повысить отказоустойчивость и повысило возможности масштабирования. Виртуальные машины Compute Cloud использовали для развёртывания GitLab. Для работы с данными выбрали два сервиса платформы данных Yandex Cloud — Managed Service for PostgreSQL и Yandex Object Storage.
Масштабные изменения архитектуры не прошли без проблем. В предыдущей архитектуре использовали движок Spree. Особый механизм работы с контентом предполагал, что к каждому товару можно прикрепить набор изображений для отображения на сайте в разных размерах и пропорциях. Статический контент располагался в локальном файловом хранилище на сервере и занимал до 30 Гб. При миграции в Kubernetes предыдущий подход оценили как неэффективный, к тому же при выдаче пользователю изображения обрабатывались через Ruby без кеширования, что приводило к проблемам с производительностью. Команда перенесла медиаконтент в Yandex Object Storage при помощи специализированных скриптов, а для налаживания выгрузки изображений настроили Yandex Cloud CDN. Это помогло ускорить загрузку изображений у пользователей и снизило нагрузку на источники.
Результаты
В результате миграции инфраструктура стала выдерживаться более 800 запросов в секунду. Благодаря оптимизации выдачи изображений и настройки трафика смогли снизить нагрузку на источники на 90%. Удалось на порядок уменьшить количество ошибок при обработке трафика и выдаче медиаконтента. Сайт стал работать в 4 раза стабильнее.
Мнение
ITSumma без простоев в работе сайта перевезла, оптимизировала и по новой развернула в облаке инфраструктуру. Благодаря миграции в Yandex Cloud сезонные акции прошли без проблем, а у интернет-магазина теперь есть необходимая гибкость при работе со скачкообразным трафиком и такая важная для нас возможность быстрого масштабирования.