Знаете, что такое
Хабраэффект? Это ситуация, когда все решили зайти на ваш сайт одновременно. Ну и сайт, конечно, не вывез.
Конкретно этот термин связан с популярной площадкой
Хабр. Но вообще эффект замечен ранее и в документах значится, как
Слэшдо́т-эффе́кт.
Когда я участвовал в разработке платформы лояльности, у нас было старое легаси-ядро, без всяких кэшей и очередей. Вот оно и падало перед Новым годом, потому что не могло обслужить такое количество пользователей, желающих лояльности.
Чтобы до такого не доводить и заранее понимать, где бутылочное горлышко по
Голдратту, надо делать
нагрузочное тестирование.
🔹Вот, например,
Apache JMeter как раз для такого. Опенсорсный инструмент, написанный на Java, который симулирует тяжелую нагрузку на серверы и целые сети. Имитирует пользователей, отправляет HTTP-запросы, работает с API, базами данных и другими протоколами. Позволяет строить сценарии: авторизация, поиск, добавление данных и так далее. Там даже есть специальная Test IDE для создания и отладки тест планов.
🔹У
Grafana тоже есть свой тестировщик нагрузки -
k6. Они используют подход "тест как код", можно писать скрипты тестирования на
JS/TS, хранить в репозитории и встраивать их в CI/CD. Нативно интегрируется с Grafana.
🔹Еще вариант -
Locust, тоже опенсорсный. В нем тоже пишутся сценарии в виде скриптов, но уже на
Python. То есть если у вас питонисты в команде, то можно не распыляться, использовать обычные библиотеки. Но есть и UI.
🔹А если у вас пишут на
Scala,
Java или
Kotlin, то можно посмотреть на
Gatling. Принципы те же, что и в предыдущих, язык другой. Высокая производительность, асинхронная архитектура.
🔹Ну и есть отечественный инструмент -
Yandex.Tank, тоже опенсорсный, поддерживает разные генераторы нагрузки.
Только тестируйте аккуратно, не уроните прод раньше времени 😉
#tools