О компании

Сервис «Где мои дети», принадлежащий компании «Рефреш», позволяет родителям в реальном времени определять местоположение ребенка. Для его работы требуется оперативная обработка и хранение больших объемов зашифрованных геоданных.

Сейчас у приложения более 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 для хранения геоданных, было принято решение перевести в него данные внутренней продуктовой аналитики.

Мнение

Григорий Гудименко,
технический директор компании «Рефреш»
Григорий Гудименко,
технический директор компании «Рефреш»

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