Как без даунтайма перенести 500 микросервисов: миграция Циан в Yandex Cloud

За четыре месяца подготовки и полтора месяца миграции Циан перенёс 500 микросервисов своей инфраструктуры в Yandex Cloud. Сервисы работали стабильно во время и после переноса.

Краткий пересказ YandexGPT
  • Циан — один из топ-15 сайтов по недвижимости в мире, ежемесячно его посещают более 19 миллионов пользователей.
  • В компании работает более 900 сотрудников в 12 продуктовых направлениях.
  • Циан перенёс 500 микросервисов своей инфраструктуры в Yandex Cloud за четыре месяца подготовки и полтора месяца миграции.
  • Цели компании: создать стабильную инфраструктуру и организовать подход Infrastructure as Code (IaC) с применением Terraform.
  • Изначально Циан выбрал зарубежного облачного провайдера, но в 2022 году решил локализовать проект и выбрал Yandex Cloud из-за широкой поддержки модулей Terraform и успешного опыта работы в рамках disaster recovery.
  • Архитектура Циан перед переездом в Yandex Cloud включала 500 микросервисов и 2 монолитных приложения.
  • Во время подготовки к миграции пришлось изменить конфигурацию сети, развернуть Terraform и Salt, создать утилиту для миграции микросервисов.
  • Микросервисы и один монолит перенесли в Yandex Managed Service for Kubernetes, а монолит на Windows IIS — на виртуальные машины Compute Cloud.
  • Для хранения данных используют Object Storage, для работы с документоориентированными моделями данных — Managed Service for MongoDB, для эксплуатации и администрирования реляционных баз данных — Managed Service for PostgreSQL и Managed Service for MySQL.
  • В процессе переноса команда столкнулась с проблемами (например, ограничение на количество нод в кластере Kubernetes, отсоединение сетевых дисков) и успешно их решила.
  • Результаты миграции: локализация инфраструктуры, оптимизация финансовых затрат, стабильная работа сервисов, достижение SLO в 99,9% по основным страницам и API, реализация Infrastructure as Code.
  • Миграцию масштабной инфраструктуры удалось провести за полтора месяца без даунтаймов.
  • Руководитель команды «Платформа» в Циане отметил высокую помощь службы поддержки Yandex Cloud.

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

Циан входит в топ‑15 сайтов по недвижимости в мире — ежемесячно сайт посещает более 19 миллионов пользователей.

В компании работает более 900 сотрудников в 12 продуктовых направлениях.

За четыре месяца подготовки и полтора месяца миграции Циан перенёс 500 микросервисов своей инфраструктуры в Yandex Cloud. Сервисы работали стабильно во время и после переноса.

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

Циан — технологичный сервис для покупки, продажи, сдачи в аренду и оценки стоимости недвижимости в России, где также можно рассчитать процентную ставку и получить одобрение по ипотеке. Ежемесячно Циан посещают более 19 млн уникальных пользователей, которые хотят купить, продать или арендовать недвижимость. Публикуется 1,9 млн актуальных объявлений от собственников и агентств недвижимости.

Компания стабильно растёт с 2015 года, в  том числе повышается нагрузка на инфраструктуру. В 2018 году начались ощутимые проблемы из‑за периодических даунтаймов, которые вредили репутации и требовали внимания и ресурсов.

Команда Циан поставила две основные цели:

— создать стабильную инфраструктуру;
— организовать подход Infrastructure as Code (IaC) с применением Terraform.

Было два очевидных пути реализации этих целей:

  1. Самостоятельно развернуть и настроить необходимую инфраструктуру.
  2. Найти готовое решение.

Первый вариант предполагал большие временные затраты, расширение штата и увеличение ФОТ. Поскольку Циан был ограничен во времени — компании не хотелось продолжения даунтаймов, — команда приняла решение делегировать часть инфраструктурных задач облачному провайдеру.

Облако для миграции 500 ТБ данных без даунтайма

Изначально компания выбрала зарубежного облачного провайдера, но основная аудитория Циан — российская, поэтому в 2022 году Циан решил локализовать проект и избежать возможных валютных и лицензионных рисков. Для Циан было важно:

— перенести сервисы за 1–2 месяца;
— провести миграцию без значительных даунтаймов, особенно в прайм‑тайм;
— перенести более 500 ТБ данных.

Ещё в 2020 году Циан выбрал Yandex Cloud как инструмент для аварийного восстановления, потому что у Yandex Cloud была широкая поддержка модулей Terraform. Работа с Yandex Cloud в рамках disaster recovery была успешной, и в качестве основного облачного провайдера на российском рынке Циан рассматривал только Yandex Cloud.

Переезд за 2 месяца после 4 месяцев подготовки

Архитектура Циан перед переездом в Yandex Cloud включала в себя 500 микросервисов и 2 монолитных приложения. Один из монолитов был размещён в контейнерах, второй развёрнут с помощью Windows IIS. Технологический стек компании включает Python, C#, Node.js. Работа с данными велась в PostgreSQL, MSSQL, Cassandra, Elasticsearch; приём и отправка сообщений — в RabbitMQ и Kafka.

Подготовительный этап миграции в Yandex Cloud занял 4 месяца. Из них 2 месяца ушло на проверку осуществимости миграции. На этом этапе, например, пришлось изменить конфигурацию сети. Работа в Yandex Cloud отличалась от работы с предыдущим поставщиком, поэтому Terraform и Salt разворачивали в течение месяца. И ещё месяц работали над возникшими с ними проблемами. Параллельно с этим делали утилиту для миграции микросервисов.

В минимальном объёме нужные компоненты развернули в то время, когда Yandex Cloud служил инструментом для аварийного восстановления. Перед основным переездом тестировали компоненты.

За полтора месяца миграции микросервисы и один монолит перенесли в Yandex Managed Service for Kubernetes®, а монолит на Windows IIS — на виртуальные машины Compute Cloud. Для хранения данных используют объектное хранилище Object Storage, для гибкой работы с документоориентированными моделями данных — Managed Service for MongoDB, для эксплуатации и администрирования реляционных баз данных — Managed Service for PostgreSQL и Managed Service for MySQL®.

В процессе переноса команда столкнулась с проблемой. Максимально кластер Kubernetes можно разделить на 128 нод, а Циан было необходимо 250 нод. Для решения этой проблемы развернули несколько кластеров на Vanilla Kubernetes. А чтобы приложения могли продолжать обращаться друг к другу по имени, сделали синхронизатор эндпоинтов. При развёртывании микросервиса в одном кластере и создании его виртуальной копии в другом синхронизатор точно фиксирует изменения в микросервисах.

Были и другие сложности, но все их удалось решить. Например, иногда отсоединялись сетевые диски и исчезало сетевое подключение. Для решения обновили драйвера и сменили процессоры на семейство Ice Lake (платформа v3). Циан также решил использовать нереплицируемые SSD для работы MSSQL, потому что в данном случае критична скорость работы железа.

Процесс непрерывной интеграции и развёртывания был развит у Циан ещё до миграции, и благодаря тому, что Yandex Cloud уже использовали как инструмент аварийного восстановления, изменения пришлось внести небольшие — сделали генерацию манифестов для Kubernetes.

Результаты

В кейсе Циан облако Yandex Cloud помогло решить вопрос локализации инфраструктуры, а автомасштабирование, возможное только в облачной инфраструктуре, помогает оптимизировать финансовые затраты. Плюсом миграции стало и то, что Циан не нужно подолгу ждать новое оборудование, что неизбежно при использовании физических серверов.

Широкий набор сервисов Yandex Cloud позволил Циан подобрать решения для своего стека технологий. Циан получил стабильную работу своих сервисов, SLO (цели уровня обслуживания) в 99,9% по основным страницам и API, Infrastructure as Code вместо ручных изменений.

Миграцию масштабной инфраструктуры удалось провести за полтора месяца и избежать даунтаймов при переезде.

Мнение

В Yandex Cloud нам очень помогала служба поддержки. При возникновении сложностей нам давали специалистов, которые очень хорошо разбираются в этой проблеме. Кроме того, можно было решить её непосредственно с архитекторами. Это очень облегчило процесс переезда и дальнейшей работы.
Михаил Логутов,
руководитель команды «Платформа» в Циан

Решим вашу IT-задачу

Мы оперативно расскажем вам о возможностях Yandex Cloud для вашего бизнеса или подберем партнёра, который полностью реализует ваш IT-проект.
Войдите, чтобы сохранить пост