О чём эта история
Создатели дейтинг‑сервиса 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 на новых рынках будет значительно короче.