Нагрузочное тестирование сервиса HRlink (СКЭД)
- Заказчик:
- HRlink
- Руководитель проекта со стороны заказчика
- Поставщик
- Перфоманс Лаб
- Год завершения проекта
- 2024
- Сроки выполнения проекта
- июнь, 2024 — сентябрь, 2024
- Масштаб проекта
- 2400 человеко-часов
- Цели
-
Чтобы приложение могло держать целевую нагрузку продолжительное время без сбоев в работе системы.
-
Подготовить систему к прогнозируемому росту пользовательской нагрузки.
-
Проверить, что сезонные пиковые нагрузки не оказывают влияния на производительность системы.
-
Оценить максимальную производительность системы и выявить узкие места проблемных компонентов системы.
-
Локализовать факторы, ограничивающие производительность системы.
-
Разработать рекомендаций по оптимизации производительности системы.
-
- Результаты
Проведена оценка максимальной производительности системы. Увеличена производительность системы со 100% базового профиля до 500%.
После проведения работ по оптимизации система готова выдерживать нагрузку до 10 млн пользователей без изменений в текущей архитектуре.
Проведена оценка стабильности системы. Увеличилась производительность по ключевой операции подписания документа с 200 тысяч подписаний в сутки до 1 000 000.
Выявлены узкие места системы, проведена оценка проблемных компонентов системы.
Предоставлены рекомендации по устранению проблем и узких мест системы.
Разработаны рекомендации по оптимизации производительности системы.
Предоставлены рекомендации по конфигурации тестового стенда.
Уникальность проекта
Сложность тестирования заключалась в работе с масштабной системой с численностью более 1,2 млн пользователей.
Уникальность проекта состояла в том, что было очень много разнообразных моделей поведения пользователя, которые надо было учесть, а также наличие интеграционной нагрузки через открытый API. И стоит отметить, что простота интерфейса скрывала множество методов внутри, из–за этого возникала сложность при составлении профиля, и пришлось провести много аналитической работы.
В профиле отдельно были разработаны три ключевых раздела: 1. Сценарии, имитирующие работу пользователей 2. Методы, которые входят в сценарии, но не до нагруженные в них 3. Методы, которые не входят в сценарии
По требованию заказчика за базовый профиль взяли 150% от текущей нагрузки.
В итоге, инженерами Перфоманс Лаб были реализованы вызовы отдельных методов, сложная генерация данных для отдельных методов и не простая реализация скриптов с отдельными методами, а также реализован выпуск сертификата с уникальным отпечатк
- Проект решает задачи импортозамещения
- Да
- Использованное ПО
1.BOOMQ - передовая платформа для оценки производительности и стабильности информационных систем, и выработки рекомендаций по устранению проблем.
2. Эмуляторы внешних систем разрабатываются на JAVA.
3. web-сервер на nginx;
4. приложение на Play Framework, написанное на Java;
5. сервис Удостоверяющего Центра на Java+Spring Boot;
6. сервис уведомлений: Java+Play Framework;
7. запуск эмуляторов в Docker-compose;
8. мониторинг Zabbix + Grafana, Prometheus + Grafana, мониторинг эмуляторов Spring Boot Actuator, статистика БД pg_stat_statements;
9. база данных PostgreSQL (14);
- Сложность реализации
Сложность проекта заключалась в следующем:
- нужно было создать среду, адекватно отражающую продуктивную, со всеми интерфейсами, цифровыми подписями, сложной работой эмуляторов внешних систем и других компонентов. При этом работа велась с обезличенными данными.
- в виду масштаба проекта пришлось сгенерировать очень много уникальных тестовых данных.
- Описание проекта
Компания ООО "Инновации в управлении кадрами", разработчик высоконагруженного сервиса КЭДО HRlink и компания Перфоманс Лаб, как лидер в области оценки производительности ИТ-систем, реализовали совместный проект "нагрузочное тестирование сервиса HRlink".
Основная цель проекта: оценить возможность сохранять работоспособность всех функций системы в моменты пиковых нагрузок и обеспечить производительность системы при росте пользовательской базы и пользовательской активности не менее чем в 10 раз.
Обеспечение надежности и отказоустойчивости вписано в стратегию развития продукта HRlink, т.к., если онлайн-платформа КЭДО станет недоступна (из-за высокой нагрузки или технических проблем), то процессы компании — часто ключевые — могут остановиться.
Поэтому, совместный проект является очень важным и жизненно необходимым.
В ходе проекта реализованы следующие этапы тестирования:
-
Создание методики
-
Настройка мониторинга
-
Разработка скриптов нагрузочного тестирования
-
Разработка эмуляторов внешних систем
-
Генерация пулов данных
-
Отладочное тестирование
-
Основное тестирование
-
Анализ результатов тестирования и выработка рекомендаций
-
Подготовка отчёта по нагрузочному тестированию
-
Подготовка документации по нагрузочному тестированию
-
- География проекта
Удаленно