Нагрузочное тестирование BMC: от специфики микроконтроллеров к промышленному решению
Как инженеры «Аквариуса» создали универсальную платформу для тестирования производительности критических компонентов серверов и СХД.
Автор статьи: Борис Бочкарев — Ведущий инженер тестирования программного обеспечения
Введение
Серверы являются фундаментальной основной современной ИТ-инфраструктуры, от которой напрямую зависит работоспособность ключевых бизнес-систем и сервисов. Отказоустойчивость и производительность оборудования определяют стабильность процессов, уровень безопасности данных и способность предприятия масштабироваться, оперативно реагируя на рыночные изменения и растущие нагрузки.
Надежность серверного оборудования обеспечивается не только мощностью центральных процессоров, но и отказоустойчивостью служебных компонентов, один из которых — BMC.
Baseboard Management Controller
— это специализированный микроконтроллер, отвечающий за удаленное управление, мониторинг и диагностику серверов. Его стабильная работа напрямую влияет на доступность всего парка оборудования.
В «Аквариусе» — компании с полным циклом собственного производства от печати плат до готовых систем — мы стремимся обеспечить стабильность и предсказуемость работы каждого компонента.
В этой статье мы расскажем, как создавали промышленное решение для нагрузочного тестирования BMC и как этот опыт был масштабирован на другие направления, например, на тестирование систем хранения данных (СХД).
Особенности тестирования микроконтроллеров
BMC — это ресурсоограниченное устройство (типичные характеристики: ядро ARM11 @ 800 МГц, 512 МБ ОЗУ), что формирует две ключевые задачи при тестировании:
1. Определение реальной пропускной способности без переполнения внутренних очередей.
2. Выработка рекомендаций по безопасной частоте опроса для систем мониторинга (например, DCIM).
Наша цель — не просто «нагрузить» контроллер, а определить его оптимальные рабочие параметры в условиях, приближенных к реальным. Это позволяет нашим клиентам — администраторам ЦОД — эффективно выстраивать процессы мониторинга без риска парализовать управляющую логику серверов.
Индустриальный подход: Performance Testing as a Service
Взяв за основу лучшие практики Enterprise-разработки, мы построили не просто набор скриптов, а универсальную сервисную платформу.
Её ключевые принципы:
Контейнеризация и оркестрация:
Тестовые стенды и генераторы нагрузки развертываются в контейнерах, что позволяет параллельно тестировать десятки серверов с разными версиями прошивок. Очередь задач реализована на базе RabbitMQ.
Автоматизация жизненного цикла теста:
Система автоматически подбирает профили нагрузки, выполняет тесты по расписанию или событию (например, выход новой прошивки) и формирует детальные отчеты. Это освобождает инженеров для решения более сложных задач.
Широкий выбор инструментов генерации нагрузки:
Мы абстрагировали понятие «бенчмарк», отделив логику теста от генератора нагрузки (поддерживаются JMeter, Locust, k6). Это позволяет быстро адаптировать платформу под новые продукты, такие как СХД.
Принципы Enterprise-разработки как основа промышленного тестирования
Опыт создания масштабируемых корпоративных систем сыграл ключевую роль в этом проекте. Мы адаптировали и внедрили несколько ключевых практик, которые легли в основу нашей платформы:
Проектирование и планирование:
Принципы микросервисной архитектуры были положены в основу системы с целью обеспечения её горизонтальной масштабируемости. Для документирования мы используем C4-модели, реализуя подход «архитектура как код», что обеспечивает прозрачность и управляемость на всех этапах жизненного цикла. Развёртывание на платформе Kubernetes позволяет использовать встроенные механизмы оркестрации для автоматического масштабирования ресурсов в режиме реального времени. Это критически важно для обработки пиковых нагрузок и предотвращения накопления очередей тестовых заданий.
Унификация компонентов для кросс-продуктового применения
По аналогии с тем, как сервисы уведомлений стали стандартом для корпоративных систем, мы провели абстракцию и стандартизацию тестовых сценариев, оформив их в виде универсальных бенчмарков. Это позволило добиться единообразия методологии, форматов отчётов и критериев оценки. В результате платформа приобрела свойство расширяемости: наработанный подход и инфраструктура были успешно применены не только для тестирования BMC, но и для оценки производительности систем хранения данных (СХД), что значительно сократило время выхода на новые продуктовые направления.
Стандартизация интерфейсов и гибкость интеграции
Взаимодействие между сервисами платформы построено на REST API и асинхронной очереди сообщений (MQ), что обеспечивает отказоустойчивость и слабую связанность компонентов. Данный подход позволил создать единую точку входа для запуска тестов, доступную через различные интерфейсы: веб-приложение, интеграцию с Jenkins и командную строку (CLI). Независимо от выбранного способа взаимодействия, каждый запрос консолидируется в единый REST-вызов к ядру системы, что гарантирует согласованность процессов и снижает операционные риски.
Многофункциональные интерфейсы для различных сценариев работы
Платформа предлагает как визуальный веб-интерфейс для наглядного управления, так и CLI для автоматизации и интеграции в CI/CD-конвейеры. Такой подход обеспечивает адаптивность к рабочим процессам различных специалистов - от тестировщиков до DevOps-инженеров. Это позволяет командам оперативно оценивать влияние изменений на производительность уже на этапе разработки, до попадания кода в основную ветку. В результате мы создаём универсальный сервис для тестирования производительности, который легко адаптируется под различные серверные продукты и позволяет небольшой по численности команде экспертов эффективно решать широкий спектр задач.
Как наш подход помог улучшить BMC?
История успеха №1: улучшение системы логирования
Мы выявили, что логирование в BMC может не справляться с высокой нагрузкой, что приводило к потере некоторых логов. С помощью бенчмарков мы выявили критические моменты в подсистеме логов и предложили улучшения, которые позволили повысить надежность логирования.
История успеха №2: адаптация сервиса под другие команды
Благодаря внедренным бенчмаркам и унификации интерфейсов нам удалось создать единый сервис, который могут использовать не только тестировщики, но и разработчики, аналитики и другие команды для исследования производительности. Это позволило значительно расширить возможности тестирования и упростило взаимодействие между отделами, а также помогло оптимизировать время, которое тратится на получение результатов проверки новых прошивок и версий продуктов.
Заключение
Для «Аквариус», как для производителя с полным циклом, глубокий контроль над качеством каждого компонента - это основа доверия со стороны заказчиков из финансового, телекоммуникационного и государственного секторов. Разработанная нами платформа нагрузочного тестирования - это не просто внутренний инструмент, а часть философии создания надежной и предсказуемой ИТ-инфраструктуры.
Задача удалённого мониторинга и управления компьютерными системами критически важна в работе общей ИТ-инфраструктуры. ПО «ВМС» позволяет администраторам удаленно управлять питанием, загрузкой и выключением компьютерных систем, а также контролировать параметры работы аппаратного обеспечения, такие как температура отдельных блоков оборудования, напряжение на блоках питания, скорости вращения вентиляторов, показания датчиков.
Мы продолжаем активно развивать этот сервис, адаптируя его для новых аппаратных платформ и программных стеков. Если ваша задача - обеспечить бесперебойную работу критической ИТ-инфраструктуры, основанной на отечественном оборудовании, давайте обсудим, как наш опыт может быть вам полезен.
Читайте подробнее о BMC от «Аквариуса» на нашем сайте