О компании
Петербургская компания «РОССИННО» разработала и продвигает на российском рынке платформу мониторинга и управления «Центральный пульт» — систему цифровой трансформации операционной деятельности для инфокоммуникационной и 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 позволяют построить гибкую отказоустойчивую архитектуру для опытной и промышленной эксплуатации. В России, как и в других странах, компании всё чаще арендуют вычислительные ресурсы и ресурсы хранения только на время использования. При этом не требуется оплачивать простаивающие или незагруженные мощности корпоративных центров обработки данных.