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

Rocket Firm — это IT‑аутсорс‑компания из Казахстана, которая специализируется на разработке цифровых продуктов и сервисов, мобильных приложений и решений для финтех‑организаций. В 2022 году компания выпустила собственный продукт — маркетплейс для аптек Казахстана Rocket Pharm.

Чтобы сервис эффективно подстраивался под сезонную высокую нагрузку и легко масштабировался, его перенесли в Yandex Cloud. Миграция заняла всего одну неделю. Новая облачная инфраструктура и изменения в архитектуре проекта увеличили скорость загрузки контента у пользователей с 30 до 70 очков по оценке Google Page Speed и автоматизировали CI/CD‑процесс, тем самым оптимизировав ресурсы команды на поддержку сервиса.

Задача компании

Rocket Firm — это IT‑компания, которая разрабатывает сложные цифровые продукты для бизнес‑задач клиентов. Компания основана в 2011 году в Казахстане и работает как внутри страны, так и за её пределами.

В 2022 году Rocket Firm выпустила собственный проект электронной коммерции Rocket Pharm — маркетплейс для аптек, расположенных на территории Казахстана. На данный момент в сервис интегрировано 10 аптек и 2 магазина для взрослых, которые предлагают суммарно более 70 000 товаров. Ежемесячно маркетплейс посещает до 27 000 человек, но трафик может резко расти во время сезонных всплесков заболеваний. Уже на этом этапе компания отмечала сложности с загрузкой контента у пользователей. Всё осложнялось и тем, что компания использовала только один виртуальный сервер, на котором был расположен сервис.

Для создания отказоустойчивой системы и последующего масштабирования Rocket Firm было нужно изменить инфраструктуру проекта, распределив сервисы маркетплейса по нескольким серверам. Также необходимо было оптимизировать поисковую систему, ускорить загрузку медийного контента, автоматизировать создание резервных копий серверов и баз данных и подключить защиту от DDoS‑атак.

Так как Rocket Pharm — это сервис с плавающей нагрузкой и постоянно растущим числом клиентов, то компания искала решение, которое обеспечит гибкость, высокую доступность, безопасность и будет простым в использовании. Кроме того, важно было автоматизировать процессы, чтобы снизить нагрузку на DevOps‑специалистов и уменьшить затраты на обслуживание инфраструктуры. Все эти задачи можно было решить при помощи облачных технологий.

Rocket Firm рассматривала западных поставщиков облачных решений, а также локальных хостинг‑провайдеров. Yandex Cloud оказался наиболее гибким вариантом из всех рассмотренных — богатая функциональность облака, оперативная техническая поддержка и оплата в тенге оказали решающее влияние на выбор платформы. Также важными факторами стали высокий уровень безопасности облака, включая DDoS‑защиту и автоматическое шифрование данных, гибкая система тарификации, которая позволяет платить только за использованные ресурсы, и простота использования.

Миграция и новая инфраструктура проекта

Сервис Rocket Pharm предлагает пользователям лекарства по лучшим ценам с экономией до 30% и их доставку. Аптекам и партнёрам — простую интеграцию в систему и личный кабинет для обработки заказов, мониторинга товаров и аналитики. При этом каждая четвёртая аптека в Казахстане не цифровизирована, для них Rocket Pharm предоставляет решение для управления остатками и складом. Остальные аптеки используют продукты на базе 1С или других систем, данные из которых импортируются в сервис. Также в Rocket Pharm есть интеграция для клиник и врачей: сформированный рецепт ведет в готовую корзину на маркетплейсе.

Изначально сервис располагался на одном виртуальном сервере, арендованном у хостинг‑провайдера. Позже перешли на 3 виртуальных сервера: продакшен, тестовый, поиск и база данных. Миграцию в облако осуществляла команда DevOps‑специалистов Rocket Firm. Весь процесс занял одну неделю. Сперва перенесли тестовые среды, проверили периметр работы, после чего настроили все необходимые сервисы и управляемые базы данных, создали пайплайн CI/CD и применили настройки безопасности, а последним этапом перенесли данные, чтобы задержка на стороне клиентов была минимальной. Весь процесс занял одну неделю.

При переносе также изменили и архитектуру проекта, выбрав несколько управляемых СУБД и объектное хранилище из широкого набора сервисов платформы данных Yandex Cloud. Rocket Firm добавили управляемый кластер PostgreSQL для хранения основных данных, управляемый кластер Redis для кеширования данных и очередей и развернули бакет Yandex Object Storage для хранения статических файлов, таких как фото и описание товара, и резервных копий. Чтобы сократить время выгрузки медиаконтента из файлового хранилища, использовали Yandex Cloud CDN. А для защиты от DDoS‑атак подключили Yandex DDoS Protection.

Рабочие среды перенесли в Compute Cloud. Для этого развернули 3 виртуальные машины: продакшен, тестовую среду и Elasticsearch, который предоставляет умный поиск с подсказками и исправлениями и помогает подбирать аналоги препаратов.

Результаты

До  миграции производительность десктопной версии маркетплейса достигала 30 очков по оценке Google Page Speed. За счёт оптимизации кода проекта и переноса платформы в облачную инфраструктуру это значение возросло до 70.

За счёт перехода в Yandex Cloud снизилась нагрузка на DevOps‑специалистов. Весь процесс CI/CD автоматизирован и требует внимания только при нарушениях работы системы.

Новая архитектура проекта помогла увеличить скорость загрузки медиафайлов у пользователей и в SEO‑оптимизации. Это было особенно важным для компании, так как 80% трафика приходит из поисковых систем. В перспективе команда планирует добавить виртуальные машины в продакшен‑окружение и задействовать Yandex Network Load Balancer для распределения нагрузки в пиковые дни.

В процессе миграции компания перенесла 200 000 записей по лекарственным препаратам, БАДам и другим товарам. Объём статических файлов составил 40 Гб.

Rocket Pharm — молодой стартап, который нацелен на рост числа пользователей и поставщиков. Компания привлекает к сотрудничеству как крупные сети, так и небольшие аптеки, расположенные в регионах и пригородах крупных районных центров. Подготовка к интеграции небольших аптек может занимать продолжительное время, но компания планирует добавлять в сервис ежемесячно приблизительно 10 аптек.