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

Создатели дейтинг‑сервиса Twinby всего за год привлекли в своё приложение более 5 миллионов пользователей. Особенность приложения — встроенная система тестирования на психологическую совместимость, которая позволяет подобрать идеальную пару.

Для того чтобы обеспечить отказоустойчивую работу приложения, компания перенесла его в Yandex Cloud.

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

За 9 месяцев с момента запуска проекта инфраструктура выросла с 4 нод в одном кластере до более чем 30 нод. А число активных пользователей сервиса увеличилось с 300 тысяч до 6 миллионов. Успеть по производительности за взрывным ростом популярности Twinby позволили гибкие и масштабируемые сервисы Yandex Cloud: Yandex Compute Cloud, Yandex Managed Service for Kubernetes®, Yandex Managed Service for Apache Kafka® и другие.

Масштабировать проект под взрывной рост популярности приложения

Twinby — это мобильное приложение для знакомств на основе совместимости. Его особенность в подходе поиска пары. Технологии сервиса проводят психологическое тестирование каждого пользователя, анализируют личностные качества и, исходя из полученных данных, подбирают лучшую пару.

Сервис запустили 1,5 года назад, и за короткий срок он привлёк более 6 миллионов пользователей.

На этапе разработки приложения использовалась локальная вычислительная инфраструктура. Экспоненциальный рост числа пользователей потребовал от платформы гибкости с точки зрения архитектуры, а следовательно, внедрения масштабируемой инфраструктуры для наращивания вычислительных ресурсов и сохранения высокой производительности сервиса. При этом нужны были управляемые сервисы, чтобы не тратить излишние усилия на поддержку инфраструктуры. Тогда для обеспечения отказоустойчивости и масштабируемости компания перенесла сервис в зарубежное облако. Однако для выполнения требований ФЗ‑152 и увеличения скорости доступа к приложению российских пользователей в 2023 году компания решила совершить миграцию на российскую облачную платформу.

Twinby — быстрорастущий проект, поэтому возможности наращивать производительность в облаке, внедрять современные технологии для новых сервисов и сокращать расходы на владение и обслуживание инфраструктуры стали ключевыми факторами в выборе облачного провайдера.

При выборе российской облачной платформы команда рассмотрела сервисы лидеров рынка. Учитывались следующие критерии:

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

Соответствовать всем критериям и предоставить лучшую функциональность смогла платформа Yandex Cloud. Её выбрали исходя из следующих преимуществ:

  • удобные управляемые сервисы;
  • возможность быстрого и простого масштабирования ресурсов;
  • платформа давно на рынке, и на ней реализовано много крупных проектов;
  • возможность использования опенсорс-решений на облачных вычислительных мощностях;
  • отзывчивая клиентская и сервисная поддержка;
  • локализация на территории РФ и соответствие требованиям ФЗ‑152;
  • прозрачная финансовая модель и оплата только за потребляемые ресурсы, высокая экономическая эффективность использования ресурсов;
  • высокий уровень отказоустойчивости и надёжности за счёт использования современной геораспределённой инфраструктуры;
  • соответствие требованиям информационной безопасности.

Облако для безотказной работы и масштабирования

Twinby — это высоконагруженный дейтинг‑сервис. Команда изначально выбрала микросервисную архитектуру высокой доступности, чтобы сервис мог работать стабильно и быстро, независимо от нагрузок. Использование облака наилучшим образом подходит для разработки высоконагруженных приложений, а также позволяет решать сопутствующие задачи по организации хранения и обработки больших данных. Поэтому проект был перенесён из локальной инфраструктуры в облако зарубежного провайдера, с использованием виртуальной вычислительной инфраструктуры для базы данных и сервисов управления контейнерами: 4 ноды Kubernetes, включая одну с GPU для выполнения ML‑задач определения человека по фото.

Дальнейшая миграция в Yandex Cloud заняла всего один месяц и была реализована силами одного специалиста. При технической поддержке инженеров и менеджеров Yandex Cloud не только развернули аналогичную исходной инфраструктуру (вычислительные кластеры, Kubernetes‑кластеры, объектное хранилище, балансировщики нагрузки), но и доработали платформу для лучшей совместимости. Так, например, написали и выложили в публичный доступ интеграцию для CockroachDB, которая позволяет создавать резервную копию БД в Yandex Object Storage.

Многие задачи удалось выполнить автоматически, так как использовали инструменты автоматизации развёртывания, такие как Terraform. Это, в свою очередь, сократило время переноса и позволило мигрировать без остановки работы приложения.

Широкий стек технологий Yandex Cloud позволил в полной мере реализовать необходимую Twinby IT‑архитектуру проекта и решать задачи безотказной работы и масштабирования приложения с перспективой развития сервиса.

Сейчас в решении используются следующие сервисы платформы:

  • Yandex Compute Cloud — для размещения вычислительных кластеров для баз данных и других служб, в том числе кластер СУБД CockroachDB, состоящий из 6 нод производительностью по 64 ядра и 256 Гб ОЗУ каждая.
  • Yandex Managed Service for Kubernetes® — для создания Kubernetes‑кластеров для размещения сервисов машинного обучения (ноды с GPU), фронтенда и бэкенда приложения, dev‑кластера, кластера Elasticsearch, кластера безопасности, собственного локального GitLab‑инстанса и других необходимых микросервисов.
  • Yandex Object Storage — для хранения статичных данных и резервных копий.
  • Yandex Certificate Manager — для управления TLS‑сертификатами.
  • Yandex Managed Service for Apache Kafka® — для распределённой доставки, хранения и обработки данных приложения.
  • Yandex Cloud DNS — для обслуживания DNS‑запросов и публикации сервисов.

Результаты

При миграции в Yandex Cloud компания достигла всех ключевых целей: перенесла инфраструктуру в облако, обеспечила её отказоустойчивость и лёгкую масштабируемость. Сейчас в Yandex Cloud размещены все сервисы и базы данных Twinby, включая 3 кластера виртуальных машин с более чем 30 вычислительными нодами, несколько кластеров Kubernetes, объектное хранилище, управляемые сервисы для работы с DNS, балансировки нагрузки, распределения нагрузки, поиска и управления сертификатами. Компания локализовала приложение для выполнения требований ФЗ‑152, сократила «последнюю милю» до пользователя и ускорила доступ к сервису, повысила экономическую эффективность за счёт сокращения издержек и снижения стоимости владения инфраструктурой.

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

В ближайших планах развитие архитектуры и инфраструктуры проекта — сервис авторизации, дополнительный кластер для разработки, мониторинг и логирование, а также внедрение БД Yandex Managed Service for ClickHouse® и Yandex DataSphere для использования ML в сценариях распознавания людей на фото. Компания активно движется к выходу в новые регионы и в страны СНГ. В партнёрстве с Yandex Cloud time‑to‑market на новых рынках будет значительно короче.