«Здравсити» повысила SLA до 99,95% и увеличила надёжность с помощью облака

О чём эта история
«Здравсити»
Команда «Здравсити» перенесла платформу в облачную инфраструктуру Yandex Cloud, развернув её в трёх ЦОД. Это повысило уровень SLA до 99,95% и ускорило обновление данных с часов до минут. Миграция в облако и переход на микросервисную архитектуру позволили ежедневно выпускать релизы без увеличения штата и без существенного повышения затрат на инфраструктуру.

Обеспечить отказоустойчивость и наладить быстрый обмен данными
Компания планировала построить единый инфраструктурный контур, который ускорит работу сервисов и повысит уровень автоматизации внутренних процессов. Для этого нужно было убрать задержки при обмене данными между компонентами сервиса — как внутри экосистемы ГК «Протек», так и при работе с несколькими десятками интегрированных решений. Кроме того, «Здравсити» стремилась построить надёжную инфраструктуру с высоким уровнем SLA, оптимизировать расходы на её поддержку и обеспечить быстрый отклик пользовательских интерфейсов. Команда выбрала облачный вариант размещения сервиса.
Ключевыми факторами выбора Yandex Cloud стали уровень доступности — SLA выше 99,9% — и возможность разместить инфраструктуру проекта в трёх российских ЦОД, тем самым снизив риски простоев. Также учитывали простоту интеграции, широкий набор управляемых сервисов и высокую скорость внедрения. Важную роль сыграли соответствие требованиям международных стандартов безопасности и возможность управления инфраструктурой по модели IaC через Terraform, а также автомасштабирование в зависимости от нагрузки.
В этой статье:
Перенесли платформу в Yandex Cloud и ускорили обработку данных
В «Здравсити» представлено свыше 50 тыс. наименований товаров, включая ассортимент 35 тыс. партнерских аптек. Пользователи работают с платформой через веб-интерфейс и приложения для Android и iOS. Фронтенд реализован на React, бэкенд — на Go. До миграции решение размещалось на собственных серверах компании в ЦОД и представляло собой монолитную систему.
Команда «Здравсити» перенесла платформу в облако с помощью поддержки Yandex Cloud. Подготовка плана миграции и запуск MVP заняли два месяца. Затем решение тестировали в течение нескольких месяцев и запустили его в продакшен в одном ЦОД. Основная сложность заключалась в том, что во время миграции команда одновременно развивала новые бизнес-функции и поддерживала стабильную работу платформы. С этими задачами удалось справиться за счёт детального планирования и инструментов Yandex Cloud, которые помогают автоматизировать процессы.
После этого инженеры доработали компоненты для запуска в кластере и развернули платформу уже в трёх ЦОД. Для деплоя использовали Terraform, вся инфраструктура описана как IaC. На проект ушло четыре года с учётом одновременной разработки новых бизнес-процессов, функций, тестирования и последующих доработок.
При миграции команда вынесла отдельную функциональность из монолита в микросервисы. Каждый кластер состоит из двух групп виртуальных машин — постоянных и прерываемых. Такая структура даёт возможность быстро увеличивать ресурсы при росте нагрузки и наоборот. Всего при работе платформы используются 20 виртуальных машин Yandex Compute Cloud. Инженеры сохранили контроль потоков данных между монолитной легаси-системой, которая осталась на серверах компаний ГК «Протек», и микросервисами в облаке. Кроме того, настроили ETL-процесс. С помощью Yandex Managed Service for Apache Kafka® команда организовала событийный обмен данными внутри платформы и с внешними сервисами, и теперь он идёт значительно быстрее, чем до миграции. Раньше данные передавались по расписанию, с помощью cron, а сама передача занимала часы. Теперь процессы проходят почти в реальном времени. Новый подход помогает управлять потоками данных, объединять их или разделять между легаси-системой и микросервисным контуром, а также между отдельными сервисами. Команда также настроила автоматическое управление компонентами платформы на основе порогов ошибок и алертов: если партнёрская система замедляет работу, она автоматически отключается, а после нормализации подключается снова.
Для хранения данных разных типов команда использует кластеризованные базы: Yandex Managed Service for MySQL® — основная база данных для легаси-системы, Yandex Managed Service for PostgreSQL — основная для микросервисов и Yandex Managed Service for Valkey™ — для оперативных данных (сессии, токены, кеш). Общий объём данных составляет несколько сотен гигабайт. Статические файлы хранятся в Yandex Object Storage, а их доставку ускоряет Yandex Cloud CDN. Для защиты пользовательских запросов и борьбы с фродом подключили Yandex SmartCaptcha.
Рост скорости обновления данных и сокращение трудозатрат
«Здравсити» автоматизировала управление всей инфраструктурой, внедрила автомасштабирование и развернула платформу в трёх ЦОД. Таким образом повысили доступность: до миграции SLA не превышал 90%, а после перехода в Yandex Cloud вырос до 99,95%. Также с нескольких часов до нескольких минут сократилось время обновления витрины данных.
Миграция позволила масштабировать инфраструктуру без существенного роста расходов. Кроме того, «Здравсити» оптимизировала трудозатраты. Если раньше команда выпускала не больше одного релиза в месяц, то теперь — два релиза в день. Для поддержки инфраструктуры такого масштаба раньше компании потребовалось бы ещё примерно восемь DevOps-специалистов, а сейчас справляется уже существующая команда.

