О чём эта история

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 месяца и проходил в четыре этапа:

  1. Описание инфраструктуры как кода. Команда спроектировала облачную архитектуру и развернула инфраструктуру в облаке с использованием сервисов Yandex Cloud. Также создали набор сценариев и файлов конфигураций для быстрого изменения или масштабирования инфраструктуры.
  2. Адаптация приложений для облака. На этом этапе подготовили набор компонентов, которые обеспечивают работу приложения в масштабируемой среде.
  3. Подготовка к эксплуатации. Команда внедрила систему мониторинга для сервисов и написала сопроводительную документацию.
  4. Приёмо‑сдаточные испытания и переключение. На финальном этапе протестировали инфраструктуру, доработали детали, обучили специалистов 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 раза стабильнее.

Мнение

Ксения Казанцева
заказчик и руководитель проекта миграции, Island Soul Jewelry
Ксения Казанцева
заказчик и руководитель проекта миграции, Island Soul Jewelry

ITSumma без простоев в работе сайта перевезла, оптимизировала и по новой развернула в облаке инфраструктуру. Благодаря миграции в Yandex Cloud сезонные акции прошли без проблем, а у интернет-магазина теперь есть необходимая гибкость при работе со скачкообразным трафиком и такая важная для нас возможность быстрого масштабирования.