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



О сервисе
Сервис «Где мои дети», принадлежащий компании «Рефреш», позволяет родителю в любой момент времени определять, где находится его ребенок. Для работы сервиса нужна оперативная обработка и хранение огромного количества зашифрованных геоданных. На данный момент сервис «Где мои дети» локализован на 32 языка и имеет зарегистрированных пользователей в 209 странах мира, в 30 из которых зарегистрировались более 10 000 человек. Сейчас у приложения 800 000 активных пользователей, при этом на Россию и СНГ приходится лишь половина из них, вторая половина преимущественно из таких стран, как Бразилия, Турция, Израиль, США и Индия.
findmykids.org

Рубеж масштабирования
Сервис «Где мои дети» предлагает разные возможности. Например, при помощи приложения можно позвонить ребенку, и он услышит звонок, даже если он забыл отключить бесшумный режим после урока. А чтобы узнать, закончился ли у ребенка урок, родитель может прослушать звук вокруг его телефона. Но основной функцией приложения является отслеживание местоположения ребенка плюс взаимосвязанные опции вроде уведомления о выходе ребенка из обозначенной зоны и автоматического сохранения истории посещений. Сервис использует функцию GPS-трекинга. В качестве клиентского устройства может выступать смартфон с установленным на него приложением либо GPS-аксессуар в виде наручных часов. На данный момент клиентские устройства присылают более 1 000 наборов зашифрованных геоданных каждую секунду. Сервис подошел к тому рубежу, когда дальнейшее масштабирование становилось невозможным из-за технологических ограничений текущей инфраструктуры. В итоге перед командой встала необходимость решения следующих задач:
  • Сократить расходы на серверную инфраструктуру.
  • Повысить стабильность решения за счет меньшей требовательности к скорости дисков.
  • Организовать масштабирование ресурсов для хранилища геоданных «на лету».
  • Получить возможность выполнять более сложные запросы и извлекать больше пользы из данных.

Переход на Yandex Managed Service for ClickHouse
Решение о переходе на Yandex Managed Service for ClickHouse было обусловлено предшествующим опытом. Изначально в компании геоданные хранили в MySQL, используя виртуальные серверы одного из облачных провайдеров. Несмотря на использование самых дорогих облачных дисков на базе SSD, вскоре был достигнут барьер производительности записи текущего дискового решения. Следующим этапом стал горизонтальный шардинг данных на несколько БД серверов, но даже при непиковой скорости записи специалисты компании периодически сталкивались с тем, что производительность дисков в облаке некоторых серверов сильно деградировала без каких-либо причин, что приводило к аварийным ситуациям. В разные периоды времени с разной частотой специалисты компании сталкивались с ситуацией, когда очередь на запись начинала расти быстрее, чем рассасываться. Приходилось экстренно переносить данные на другие шарды и жертвовать надежностью хранения в угоду временному увеличению производительности. Помимо этого, в определенный момент обнаружилось, что только на облачные диски приходится более половины всех расходов на инфраструктуру и оборудование.

Несмотря на сложности, компания не хотела переходить на выделенные серверы, чтобы не отказываться от возможности удобного масштабирования ресурсов и их администрирования. Выбор пал на ClickHouse. Во время тестирования были выполнены следующие шаги:
  • создание тестовой учетной записи и изучение архитектуры, которая будет оптимальна для текущих задач;
  • создание тестового кластера, нагрузочное тестирование записи и извлечения данных.
При тестировании запросы были аналогичны тем, которые выполнялись в старом хранилище, а результаты были аналогичны или лучше. Например, появилась возможность выполнять запросы на агрегацию больших данных, которые без дополнительного инструментария раньше выполнить было просто невозможно.

После получения положительных результатов началась непосредственная реализация проекта:
  • создание аккаунта для организации, формальные операции;
  • создание кластера, тестирование работы хранилища в реальных условиях (настройка записи данных в старое хранилище и ClickHouse одновременно);
  • перенастройка сервиса на использование данных из нового хранилища;
  • миграция данных из старого хранилища в новое;
  • переключение подсистемы на работу только с новым хранилищем.
Миграцию провел один разработчик, трудозатраты составили менее 60 человеко-часов.

Результаты
По итогам проекта сразу удалось решить три из четырех поставленных задач. Затраты на решение для хранения геоданных сократились более чем в три раза. С момента переезда в Яндекс.Облако uptime сервиса составляет 100%, повысились удобство работы с геоданными и стабильность решения в целом. В настоящий момент сотрудничество продолжается. После того как в компании попробовали ClickHouse для хранения геоданных, было принято решение перевести в него данные внутренней продуктовой аналитики.

Мнение
Техподдержка Яндекс.Облака быстро решала технические вопросы и консультировала специалиста, клиентские менеджеры оперативно закрывали организационные вопросы. Эффективная коммуникация, удобный инструмент для управления облаком и достаточно полная документация позволили провести тестирование и миграцию на новое хранилище за один месяц
Григорий Гудименко, технический директор компании „Рефреш“

0 комментариев

Оставить комментарий