О компании

Петербургская компания «РОССИННО» разработала и продвигает на российском рынке платформу мониторинга и управления «Центральный пульт» — систему цифровой трансформации операционной деятельности для инфокоммуникационной и IoT-среды.

Платформа развернута в Yandex Cloud, что позволяет реализовать надежную и безопасную работу с устройствами разных производителей и модулями, обеспечивающими интерфейсы конечных пользователей.

Мониторинг работы сети, оборудования, приложений и сервисов

Платформа «Центральный пульт» визуализирует и контролирует работу сети, оборудования, приложений и сервисов. Можно завести в мониторинг практически любой объект физического или логического мира и отслеживать изменения.

Особенность платформы — это возможность хранения оригинальных, немодифицированных значений показателей за большие промежутки времени. При этом обеспечивается высокая скорость записи и доступа к данным. Таким образом, появляется возможность быстро и качественно анализировать события настоящего и прошлого, а также строить математически обоснованные прогнозы развития ситуаций.

Компания растет, растут и ее клиенты. В долгосрочной перспективе предполагалось увеличить количество подключенных устройств до десяток и сотен тысяч. При постоянно растущих нагрузках важной задачей стало обеспечение непрерывной работоспособности платформы. Конечно, при этом также необходимо было оптимизировать затраты на инфраструктуру.

Сначала компания планировала использовать bare-metal серверы и VDS-провайдеров, но этот вариант оказался медленным и негибким. Решили использовать Yandex Cloud, потому что облачные среды отличаются скоростью развертывания.

Но для начала была поставлена задача провести нагрузочное тестирование и тестирование масштабирования.

Нагрузочное тестирование в облаке

На виртуальных машинах были развернуты два узла системы «Центральный пульт», узлы для баз СУБД, а также дополнительный сервер балансировки на базе NGiNX.

В первой группе тестов использовался сервис Яндекс.Танк, с помощью которого эмуляция нагрузки от устройств и пользователей направлялась на сервер балансировки для равномерного распределения запросов по узлам «Центрального пульта».

Танк — расширяемый инструмент для нагрузочного тестирования и анализа производительности веб-сервисов и приложений. Применяется в Яндексе с 2006 года как один из основных инструментов измерения производительности.

Модульная архитектура инструмента позволяет использовать различные генераторы нагрузок, в том числе высокопроизводительный асинхронный hit-based генератор HTTP-запросов Phantom и сценарный инструмент Apache JMeter, который подает нагрузку для разных протоколов.

В тестировании с помощью Танка удавалось достичь нагрузки в 50 тысяч сообщений в секунду от устройств. Каждое сообщение содержало в себе около двух десятков метрик.

У платформы довольно много компонентов, которые друг на друга влияют, поэтому нужно было учитывать много факторов и настроек. На этом этапе много времени потратили на однотипные тесты, чтобы прийти к общему значению.

Яндекс.Танк — производительный сервис, однако его использование требует адекватной квалификации и опыта работы со скриптами.

Yandex Network Load Balancer

Во второй серии тестов решили попробовать Yandex Network Load Balancer, который позволяет создавать и настраивать балансировщики для обеспечения отказоустойчивости приложений и для распределения сетевого трафика между облачными ресурсами. Балансировщики контролируют статус облачных ресурсов, отправляя запросы об их состоянии, и исключают ресурсы, не прошедшие проверку.

Network Load Balancer использует технологии, которые работают на 4-м уровне сетевой модели OSI. С их помощью балансировщики обрабатывают сетевые пакеты с минимальной задержкой. Это позволяет минимизировать число факторов, влияющих на систему, а значит, гарантировать высокую производительность.

Отказ от использования NGiNX

Результаты первой и второй группы тестов оказались схожими: система показала себя с лучшей стороны и все рабочие гипотезы были проверены.

После второй группы тестов выяснилось, что одним из узких мест платформы «Центральный пульт» было применение NGiNX для обработки множества запросов от устройств. Вместо него решили в дальнейшем использовать Network Load Balancer. При этом можно отказаться от высоконагруженной виртуальной машины; как следствие, пропадает необходимость следить за ее отказоустойчивостью и кластеризацией. Замена позволила существенно увеличить возможности платформы по обработке сообщений от большого количества устройств.

Мнение

Денис Салонников,
инженер по внедрению «РОССИННО»
Денис Салонников,
инженер по внедрению «РОССИННО»

Виртуальные машины Yandex Cloud оказались удобнее, быстрее и дешевле аппаратных. Инструменты Yandex Cloud позволяют построить гибкую отказоустойчивую архитектуру для опытной и промышленной эксплуатации. В России, как и в других странах, компании всё чаще арендуют вычислительные ресурсы и ресурсы хранения только на время использования. При этом не требуется оплачивать простаивающие или незагруженные мощности корпоративных центров обработки данных.