Как провести нагрузочное тестирование в облаке. Опыт платформы «Центральный пульт»

О компании

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

Решим вашу IT-задачу

Мы оперативно расскажем вам о возможностях Yandex Cloud для вашего бизнеса или подберем партнёра, который полностью реализует ваш IT-проект.
Войдите, чтобы сохранить пост