Нагрузочное тестирование под ключ с Yandex Load Testing

Как быстро и удобно проводить нагрузочное тестирование и анализ производительности с помощью облачного сервиса Yandex Load Testing.

Любая компания, которая владеет высоконагруженным сервисом, стремится сделать его стабильнее в штатном режиме и заранее подготовить к пиковым нагрузкам или смене инфраструктуры. Для таких задач используется набор инструментов: генератор нагрузки, модуль визуализации и анализа, базы данных для хранения результатов. Это могут быть как бесплатные опенсорс‑решения, так и комплексные сервисы под ключ для полного цикла нагрузочного тестирования. К последнему варианту относится облачный сервис Yandex Load Testing, с помощью которого можно выстроить процесс тестирования любой сложности и интенсивности.

Yandex Load Testing решает три главные задачи нагрузочного тестирования:

  • проведение теста;

  • анализ полученных результатов;

  • хранение данных для сравнения.

Подробнее об инструменте экосистемы Yandex Cloud для создания генераторов нагрузки в привычном интерфейсе платформы, проведения тестирования и формирования отчётов мы расскажем в этой статье.

Для чего нужно нагрузочное тестирование

Нагрузочное тестирование проводят, чтобы проверить стабильность работы приложения или сервиса и их отказоустойчивость при повышенной нагрузке. То есть узнать, способны ли они нормально работать при целевой нагрузке и не «упадут» ли, если она неожиданно повысится.

Использовать нагрузочное тестирование можно по‑разному. Вот несколько сценариев, которые применяют компании в e‑com, финтех‑направлении, производстве, медиа и других отраслях:

  • Подготовка нового сервиса к запуску. Когда надо убедиться, что он будет стабильно работать при разных нагрузках.

  • Выпуск нового релиза. Когда надо проверить, что новая версия приложения не потеряла в производительности.

  • Смена программного или аппаратного стека. Например, замена серверного оборудования с процессором Intel на AMD или перенос приложения из локальной инфраструктуры в облако.

  • Подготовка к сезону. Если на сервис есть сезонный спрос или нужно подготовиться к разовой пиковой нагрузке. Например, к распродаже в онлайн‑магазине: надо убедиться, что сервис не перестанет работать при большом количестве покупателей.

  • Выстраивание стандартного процесса разработки приложения с обязательным тестированием производительности.

  • Смена облачной платформы. Если надо выполнить миграцию сервиса в другое публичное облако и заранее убедиться, что в новой инфраструктуре приложение будет работать так же быстро, как в исходной.

Во всех сценариях важна не только атака приложения запросами, но и сбор полученных результатов, их анализ и хранение.

С помощью анализа результатов тестирования можно найти слабые места информационной системы, которые приводят к отказу. Кроме того, анализ помогает увидеть тренды производительности — в какой момент она начинает снижаться — и определить, какие ресурсы нужны (например, для поддержания скорости).

Хранение данных позволяет сравнивать результаты тестирований, полученных в разное время, на разных платформах, с разными настройками и другими параметрами. Так можно выбирать оптимальный релиз или самую эффективную платформу для размещения приложения.

Все эти сценарии нужны для одной глобальной цели — обеспечить безотказную работу приложений и сервисов, чтобы пользователи, клиенты, покупатели или заказчики остались довольны, а предприятие не несло убытки от простоя.

Например, белорусская компания RocketData, разработчик SaaS‑платформы управления онлайн‑присутствием и репутацией бренда, использует Yandex Load Testing, чтобы рассчитывать частоту запросов к кластеру на стадии подготовки к производству. Компания перенесла все продукты и данные в Yandex Cloud и смогла масштабировать проект за счёт использования облачных ресурсов, ускорить работу и снизить количество инфраструктурных инцидентов. Подробнее о кейсе RocketData — в нашем блоге.

Инструменты нагрузочного тестирования

К базовым инструментам тестирования можно отнести генераторы нагрузки Apache JMeter, Pandora и Phantom. Они предназначены для эмулирования нагрузки на сервис согласно заданным параметрам. Это опенсорс‑решения: их можно самостоятельно установить, настроить и использовать. Установка доступна как в локальной инфраструктуре, так и в любом из публичных облаков. Для анализа результатов (изучения логов, переноса в таблицы и ручной визуализации) не обойтись без навыков администрирования и разработки.

Можно выбрать готовое облачное решение:

  • Нагрузочное тестирование Azure предлагает полный набор инструментов, включая агенты тестирования, модули анализа и дашборды для визуализации данных. Минусы: высокая стоимость решения Azure и размещение на зарубежных серверах, что влечёт за собой труднодоступный сервис для российских компаний, среднего и малого бизнеса.

  • Нагрузочное тестирование Distributed Load Testing от AWS. Не готовое коробочное решение, а набор инструкций, методик и скриптов технологий AWS и открытого ПО для развёртывания внутри облака.

Универсальным решением может стать Yandex Load Testing — облачный сервис нагрузочного тестирования и анализа производительности.

Как работает Yandex Load Testing

Возможности сервиса решают главные задачи нагрузочного тестирования:

В архитектуре решения два основных блока: виртуальные машины с генераторами нагрузки и облачный сервис для управления тестами и анализа результатов. Настроить параметры тестирования можно через форму или с помощью конфигурационного файла.

От числа тестируемых сервисов и необходимой нагрузки зависит количество виртуальных машин — агентов — с заданной конфигурацией и предустановленным программным обеспечением генератора нагрузки (Pandora и Phantom).

С помощью Yandex Load Testing можно проводить нагрузочное тестирование любых сервисов и приложений: внешних и развёрнутых внутри Yandex Cloud, например, в Yandex Compute Cloud, Yandex Managed Service for Kubernetes®, Yandex Cloud Functions или в Yandex DataSphere.

Итоговая стоимость использования Yandex Load Testing складывается из трёх статей расходов:

  • Время выполнения тестов. Первые 50 часов в месяц не тарифицируются, а их обычно достаточно для завершения работы.

  • Хранение результатов тестов. Результаты 600 часов тестирования хранятся бесплатно.

  • Виртуальные машины с агентами. Оплачивается только время работы машины и объём диска. Конфигурация базового агента: vCPU 2, память — 2 ГБ, диск — 15 ГБ, может быть остановлен сразу после завершения тестирования. Таким образом, стоимость будет складываться только из затраченного времени работы виртуальной машины и размера виртуального диска.

Чтобы подробнее познакомиться с задачами нагрузочного тестирования и их решением с помощью Yandex Load Testing, рекомендуем посмотреть наши материалы:

А ещё предлагаем пройти бесплатный курс «Нагрузочное тестирование» с теорией и практикой. В нём можно:

  • узнать, как повысить надёжность системы с помощью нагрузочного тестирования;

  • научиться разворачивать копии production‑стенда для нагрузочного тестирования;

  • научиться организовывать нагрузочное тестирование и подводить его итоги.

Кратко: почему Yandex Load Testing

Сервис нагрузочного тестирования Yandex Load Testing — это простой и удобный инструмент для повышения надёжности работы информационных сервисов и приложений. С его помощью можно провести тестирование, проанализировать результаты и сохранить данные для сравнения.

Разобраться с настройкой сервиса можно без специальных навыков или квалификации — по документации. А модель тарифов с существенным фритиром сэкономит бюджет проекта.

Напишите нам

Начать пользоваться Yandex Cloud

Тарифы

Узнать цены и рассчитать стоимость

Мероприятия

Календарь событий Yandex Cloud
Нагрузочное тестирование под ключ с Yandex Load Testing
Войдите, чтобы сохранить пост