Опыт сервиса «Где мои дети»: перенос геоданных в Yandex Managed Service for ClickHouse

- Сервис «Где мои дети» позволяет родителям отслеживать местоположение ребёнка в реальном времени.
- У приложения более 800 000 активных пользователей в 209 странах мира.
- Основная функция сервиса — отслеживание местоположения ребёнка, также есть дополнительные возможности, например, возможность позвонить ребёнку или прослушать звуки вокруг его телефона.
- С ростом числа пользователей сервис столкнулся с техническими ограничениями текущей инфраструктуры: необходимо было сократить расходы на серверную инфраструктуру, улучшить стабильность решения, организовать масштабирование ресурсов для сохранения геоданных и получить возможность выполнять более сложные запросы.
- Изначально геоданные хранились в базе данных MySQL на виртуальных серверах одного из облачных провайдеров, но возникли проблемы с производительностью и затратами на облачные диски.
- После тестирования различных решений компания выбрала Yandex Managed Service for ClickHouse.
- Тестирование включало создание тестовой учётной записи, создание тестового кластера и нагрузочное тестирование записи и извлечения данных.
- После успешного тестирования началась реализация проекта, которая включала создание аккаунта, создание кластера, перенастройку сервиса, миграцию данных и переключение подсистемы на работу с новым хранилищем.
- Миграция данных заняла менее 60 человеко-часов и потребовала участия одного разработчика.
- По итогам проекта затраты на решение для хранения геоданных сократились более чем в три раза, аптайм сервиса приблизился к 100%, повысились удобство работы с геоданными и стабильность решения.
- Компания продолжает сотрудничество с Yandex Cloud и решила перевести в ClickHouse данные внутренней продуктовой аналитики.
- Технический директор компании «Рефреш» отметил оперативность техподдержки Yandex Cloud и удобство инструментов для управления облачными сервисами.
О компании
Сервис «Где мои дети»
Сейчас у приложения более 800 000 активных пользователей: половина из России и стран СНГ, остальные преимущественно из Бразилии, Турции, Израиля, США и Индии. В целом сервис имеет зарегистрированных пользователей в 209 странах мира, причем в 30 из них — более чем по 10 тысяч. Интерфейс приложения локализован на 32 языках.
Рубеж масштабирования
Основная функция сервиса «Где мои дети» — отслеживание местоположения ребенка и связанные опции, например, уведомление о выходе ребенка из обозначенной зоны и автоматическое сохранения истории посещений.
Сервис использует функцию GPS-трекинга. В качестве клиентского устройства может выступать смартфон с установленным приложением или другой аксессуар с модулем GPS, такой как смарт-часы.
Приложение предлагает и другие возможности. Например, можно позвонить ребенку и он услышит звонок, даже если забыл отключить бесшумный режим после урока. А чтобы узнать, закончился ли у ребенка урок, родитель может прослушать звуки вокруг его телефона.
С ростом количества пользователей клиентские устройства начали присылать более 1 000 наборов зашифрованных геоданных в секунду. Сервис подошел к рубежу, когда дальнейшее масштабирование становилось невозможным из-за технических ограничений текущей инфраструктуры. В итоге перед командой встала необходимость решения следующих задач:
- Сократить расходы на серверную инфраструктуру.
- Улучшить стабильность решения за счет повышения производительности систем хранения.
- Организовать масштабирование ресурсов для сохранения геоданных «на лету».
- Получить возможность выполнять более сложные запросы и извлекать больше пользы из данных.
Переход на Yandex Managed Service for ClickHouse
В этой статье:
Решение о переходе на сервисы Yandex Cloud было обусловлено предшествующим опытом. Изначально геоданные хранились в базе данных MySQL на виртуальных серверах одного из облачных провайдеров. Несмотря на использование самых дорогих дисковых массивов на базе SSD, скорость записи существующего решения была использована до предела.
Следующим этапом стал горизонтальный шардинг данных на несколько виртуальных серверов БД. Но даже если скорость записи была далека от пиковой, периодически происходило падение производительности дисков некоторых виртуальных серверов без видимых причин, что приводило к сбоям. Все чаще повторялись ситуации, когда очередь на запись данных начинала неконтролируемо расти. Приходилось экстренно переносить данные на другие шарды и жертвовать надежностью хранения для временного повышения производительности.
И наконец отчетность показала, что затраты на облачные диски составляют более половины всех расходов на инфраструктуру и оборудование.
Несмотря на сложности, компания не хотела переходить на выделенные аппаратные серверы, чтобы не отказываться от возможности удобного масштабирования и администрирования ресурсов. Поэтому было необходимо выбрать облачный сервис, удовлетворяющий потребностям компании. После сравнения и тестирования был сделан выбор в пользу Yandex Managed Service for ClickHouse.
Тестирование состояло из следующих шагов:
- создание тестовой учетной записи и изучение оптимальной архитектуры для текущих задач;
- создание тестового кластера, нагрузочное тестирование записи и извлечения данных.
При тестировании выполнялись те же запросы, что и в старом хранилище, а результаты были аналогичны или лучше. Например, появилась возможность создавать запросы на агрегацию больших данных, которые без дополнительного инструментария раньше было невозможно выполнить.
После успешного прохождения тестирования началась непосредственная реализация проекта:
- создание аккаунта для организации, формальные операции;
- создание кластера, тестирование работы хранилища в реальных условиях (настройка одновременной записи данных в старое хранилище и в ClickHouse);
- перенастройка сервиса на использование данных из нового хранилища;
- миграция данных из старого хранилища в новое;
- переключение подсистемы на работу только с новым хранилищем.
Для проведение миграции оказалось достаточно одного разработчика. Общие трудозатраты составили менее 60 человеко-часов.
Аптайм и стабильность
По итогам проекта удалось решить три из четырех поставленных задач. Затраты на решение для хранения геоданных сократились более чем в три раза. После переезда на Yandex Cloud аптайм сервиса приблизился к 100%, повысились удобство работы с геоданными и стабильность решения в целом.
Сотрудничество «Где мои дети» с Yandex Cloud продолжается. После успешного применения ClickHouse для хранения геоданных, было принято решение перевести в него данные внутренней продуктовой аналитики.
