Сбор данных с 500 000 транспортных средств без потерь: кейс «ГЛОНАССSoft»
В кейсе рассказываем, как компания «ГЛОНАССSoft» развернула на инфраструктуре Selectel сервис для сбора данных с полумиллиона транспортных средств.

Задачи:
- Обеспечить быструю и отказоустойчивую работу сервисов.
- Сделать сервис безопасным.
- Избежать потери данных.
Продукты и услуги Selectel:
О компании
«ГЛОНАССSoft» — разработчик программного обеспечения и производитель оборудования на базе технологий спутниковой навигации ГЛОНАСС.
ПО для мониторинга транспорта предназначено для сбора, обработки и предоставления информации с терминалов и датчиков, установленных в автомобиле пользователя. С помощью него можно, например, отслеживать трек и маршрут автомобиля, потребление топлива, стоянки, скорость движения и другие параметры. Данные собираются в настраиваемые отчеты и могут отправляться пользователям по расписанию.
Система мониторинга транспорта обрабатывает более 500 000 объектов для более чем 2 000 компаний. Ежедневно веб-серверы компании принимают более 25 000 000 запросов. Клиенты «ГЛОНАССSoft» получают готовое решение с веб-интерфейсом, мобильным приложением и интеграциями с другими бизнес-приложениями.
Вызовы и решения
Обеспечить быструю и стабильную работу сервисов
Особенность систем «ГЛОНАССSoft» — огромное количество геостатических вычислений. Любой бизнес, обладающий собственным автопарком, хочет следить за множеством параметров: время транспорта в пути, расход топлива, манера вождения, превышения скорости и так далее. Бывают и более специализированные запросы: например, в сельском хозяйстве данные сервиса позволяют понимать, не ушел ли уборочный комбайн обрабатывать чужое поле.
Сервис должен справляться с приемом и обработкой данных с объектов, а потом передавать их пользователю в обработанном виде. Для подобных вычислений критически важны количество и частота ядер CPU, а также объем оперативной памяти. При этом базы данных требовательны к скорости и размеру дисков.За решением всех этих вопросов компания пришла в Selectel.
Выбрали серверы с производительным железом
Практически вся инфраструктура «ГЛОНАССSoft» размещена на выделенных серверах. Она включает в себя базы данных, кластеры Kubernetes, серверы приложений. В облаке находятся сервер-балансировщик, серверы Nginx и вспомогательное ПО.
В качестве СУБД используются разные решения — Cassandra, PostgreSQL, Kafka и Redis, каждая под свою задачу. От терминалов на транспорте на модуль приема данных поступает очень много сообщений, в том числе, геоданные и данные с различных датчиков. Модуль складывает их в Apache Kafka и передает сервису, который записывает данные в Cassandra, основную СУБД для сервисов «ГЛОНАССSoft». В PostgreSQL хранится справочная информация — например, данные о пользователях, агентах, объектах, созданных в веб-интерфейсе. PostgreSQL, в свою очередь, общается с Redis, отдавая ему нужные данные. То есть Redis — это своего рода внутренний кэш приложений.
Для обеспечения отказоустойчивости Cassandra развернута на кластере из 16 серверов, на каждом из которых используется дисковый массив RAID 10 с 10 ТБ памяти. В случае сбоя одного диска внутри RAID 1 запись автоматически переключается на другой. При этом в RAID 10 сохраняется производительность от RAID 0. Помимо дисков реплицируются и сами базы данных: каждый пакет от терминала записывается в Cassandra сразу на трех физических серверах. Все это позволяет обеспечить требуемый уровень SLA — 99,995%.
На application-серверах, где поднимаются поды с приложениями, размер и скорость диска не столь критичны. Там используются серверы в других конфигурациях с акцентом на вычислительные мощности. У каждого из них на борту до 20 ядер CPU и до 128 ГБ RAM.
Сделать сервис безопасным
С ростом числа телематических устройств и объема собираемых данных возрастают ИБ-риски. Надежная инфраструктура должна не только быстро обрабатывать и отдавать данные. Важно иметь защищенные каналы связи, изолированную внутреннюю среду и защиту от перегрузок и внешних вторжений.
Настроили связность внутри инфраструктуры и установили ограничение RPS через облачный файрвол
Команда «ГЛОНАССSoft» создала гибридную инфраструктуру с разными видами серверов. Клиентский API-запрос приходит на балансировщик в облаке, оттуда — на один из двух веб-серверов с Nginx, а оттуда — на одну из нод Kubernetes, связанную с базами данных и расположенную на выделенном сервере.
Что касается внутреннего устройства инфраструктуры, то все ее компоненты связаны локальной сетью со скоростью 10 Гбит/с. Кроме того, гибкость настроек внутренних сетей и роутеров Selectel позволили свести к минимуму количество портов, открытых в интернет. Такой подход исключает возможность несанкционированного подключения к сервисам.
Облачный файрвол Selectel используется, чтобы регулировать частоту клиентских API-запросов. Бывает, что клиенты отправляют их слишком часто. Например, запрашивают метод авторизации при каждом входе, тогда как ключ выдается сразу на час. Такое поведение может существенно замедлить работу сервиса, поэтому правила файрвола блокируют тех, кто им злоупотребляет.
Избежать потерь данных
Помимо настройки реплицирования важно позаботиться о том, где будут храниться бэкапы сервисов и редко редактируемые файлы.
Подключили объектное хранилище
Резервные копии сервисов и файлы, к которым пользователи редко обращаются, выгружаются в объектное хранилище S3. Например, если пользователь в системе устанавливает изображение на свой аватар, оно не хранится непосредственно на application-сервере, а отправляется в S3.
Такой подход позволяет не держать на сервере то, что не нужно для его работы. Кроме того, использование S3 для подобных целей дешевле, чем увеличение дискового пространства самого сервера, особенно если речь идет о холодном хранении.
Результаты
-
500 000
транспортных средств подключены к системам «ГЛОНАССSoft».
-
25 млн
запросов в сутки обрабатывается веб-серверами.
-
16
серверов с дисковым массивом RAID 10 используются для обеспечения отказоустойчивости серверов БД.
-
99,995
процентов — SLA сервисов «ГЛОНАССSoft»
Выделенные серверы
Физический сервер с запуском от двух минут и бесплатной заменой комплектующих. Все его ресурсы — только ваши.
Облачные серверы
Виртуальные машины в Москве, Санкт-Петербурге и Новосибирске с оплатой по потреблению и готовностью меньше минуты.
Межсетевой экран
Защитите свои данные от кибератак и утечек. Настройте правила межсетевого экрана и управляйте корпоративной сетью и трафиком без риска извне для всей инфраструктуры.
Объектное хранилище
Храните данные для работы сервисов и их бэкапы, данные аналитики и датасеты для ML. Обеспечим моментальное масштабирование и репликацию.
«По нашему анализу, на данный момент Selectel — это самый выгодный провайдер инфраструктуры по соотношению цены-качества в России. Только у вас были диски достаточного объема для нас, с приемлемым показателем IOPS на тестах.
В связи с ростом нагрузки мы планируем и дальше расширять парк серверов, рассматриваем возможность массового перемещения наших DNS-зон и использования облачного NFS для упрощения процесса доставки изменений в некоторые наши сервисы. Все больше сервисов мы переключаем на хранение резервных копий в S3 Selectel».