Как осуществить нагрузочное тестирование сервиса HRlink (КЭДО): кейс «Перфоманс Лаб»

Компания «Перфоманс Лаб», лидер в области оценки производительности IT-систем, провела масштабное нагрузочное тестирование системы кадрового электронного документооборота (КЭДО) HRlink, разработанной ООО «Инновации в управлении кадрами». Цель проекта — обеспечить стабильной работой платформы при кратном росте пользовательской активности, что критично для развития бизнеса и решения задач импортозамещения. Компания «Перфоманс Лаб» рассказала обо всех стадиях этого масштабного проекта в статье, подготовленной специально для CISOCLUB.
О компании и системе
HRlink — высоконагруженная платформа кадрового электронного документооборота.
При кратном росте числа пользователей HRlink в России потребовалось масштабирование системы, чтобы выдерживать многократное увеличение нагрузки без ухудшения производительности.
Задачи проекта
- Обеспечение стабильной работы приложения под целевой нагрузкой в течение длительного времени без сбоев.
- Подготовка системы к увеличению пользовательской активности, связанной с прогнозируемым ростом нагрузки.
- Проверка устойчивости производительности системы в условиях сезонных пиковых нагрузок.
- Определение пределов производительности системы с детальным анализом наиболее уязвимых компонентов.
- Идентификация и локализация факторов, которые ограничивают производительность системы.
- Разработка рекомендаций для улучшения производительности и оптимизации архитектуры системы.
Особенности проекта
Масштаб. HRlink обслуживает более 1,5 млн пользователей, и планируется рост до 10 млн. При этом каждый пользователь активно взаимодействует с системой: подписывает документы, получает уведомления, использует интерфейс API. Высокая степень нагрузки на ключевые компоненты требовала глубокого анализа и работы в ночное время, когда пользовательская активность снижена.
Данные и безопасность. Для тестирования системы было важно учитывать данные, максимально близкие к реальным. Однако HRlink придерживается строгих стандартов конфиденциальности, что исключало передачу настоящих данных. Это потребовало создания сложных эмуляторов и обезличенных наборов данных.
Интеграционные сценарии. Платформа включает сложную интеграцию с внешними системами через API. Это увеличило сложность составления профилей нагрузки и тестовых сценариев.
Работа с электронной подписью. Учет ЭЦП при тестировании требовал разработки оригинальных подходов в работе с подписями и специальных сценариев.
Процесс
Проект включал несколько этапов:
1. Создание методологии тестирования:
Разработка профилей нагрузки на основе сценариев реальной работы пользователей.
Учет требований по интеграции и эмуляции внешних систем.
2. Подготовка инфраструктуры:
Настройка среды, максимально близкой к промышленной.
Генерация уникальных тестовых данных.
3. Реализация тестовых сценариев:
Написание нагрузочных скриптов.
Эмуляция API и других внешних взаимодействий.
4. Проведение тестирования:
Отладочные тесты в ночное время (для минимизации влияния на основную систему).
Основное тестирование с фиксацией всех ключевых показателей.
5. Анализ и оптимизация:
Локализация узких мест.
Разработка рекомендаций по улучшению производительности.
6. Заключительный этап:
Подготовка отчёта с результатами нагрузочного тестирования, включающего рекомендации по устранению проблемных зон и оптимизации производительности.
Передача экспертизы клиенту, позволяющая его команде самостоятельно выявлять и дорабатывать узкие места в системе.
Используемые технологии
Для реализации проекта использовались следующие инструменты:
Boomq — платформа для оценки производительности и стабильности систем.
Docker-compose — запуск эмуляторов внешних систем.
Мониторинг — Zabbix, Grafana, Prometheus.
База данных — PostgreSQL (версия 14).
Эмуляторы — разработаны на Java с использованием Spring Boot.
Серверная часть — Play Framework.
Результаты
- Система продемонстрировала стабильную работу при увеличении производительности до 500% от базового уровня.
- Подготовлена к поддержке 10 млн пользователей без изменений в архитектуре.
- Количество подписаний увеличено с 200 тыс. в сутки до 1 млн.
- Локализованы проблемные компоненты, ограничивающие производительность. Представлены рекомендации по их устранению.
- Разработаны и переданы заказчику рекомендации по настройке тестового стенда и архитектуры системы.
По словам Михаила Мериина, руководителя проектов «Перфоманс Лаб»: «Проект по нагрузочному тестированию HRlink стал ключевым этапом в масштабировании платформы. Результаты тестирования позволили не только обеспечить отказоустойчивость системы, но и повысить ее конкурентоспособность на рынке.»
Сергей Красноперов, CPO и руководитель проекта со стороны заказчика, поделился:
«Сотрудничество с «Перфоманс Лаб» дало нам больше, чем мы ожидали. Мы не просто получили готовое решение, но и приобрели глубокое понимание, как работать с высоконагруженными системами. Теперь наша команда готова самостоятельно решать сложные задачи и уверенно смотреть на перспективы роста.»
