Ускоренное освоение служб нагрузочного тестирования и масштабирования приложений в Bluemix

Comments

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

В среде Bluemix есть несколько инструментов тестирования приложений, которые можно использовать для тестирования действующего Bluemix-приложения под моделируемой нагрузкой со стороны пользователей. Службы, описанные в настоящем руководстве, входят в состав платформы BlazeMeter и основаны на проекте Apache JMmeter. Определив реакцию своего приложения на сценарии нагрузочного тестирования с помощью Blazemeter или аналогичного инструмента, можно лучше понять, как и когда применять имеющиеся средства масштабирования приложения. В процедурах, описанных в этом руководстве, я использую встроенную службу Bluemix Autoscaling для задания динамических правил автоматического наращивания или свертывания ресурсов, таких как оперативная память и количество экземпляров приложения. Таким образом, я могу удовлетворять требования по мере необходимости и исключать ненужные ресурсы.

Автомасштабирование и нагрузочное тестирование – это очень простые для освоения службы DevOps, доступные для Bluemix-приложений.

Настоящее руководство показывает, как легко использовать BlazeMeter для тестирования и автоматического масштабирования приложений, развернутых в Bluemix. Я использую здесь пример приложения Java EE™, но годится практически любое приложение, уже развернутое и работающее в Bluemix.

Что нужно для начала работы

  • Знакомство с понятиями производительности и надежности приложений, а также принципами тестирования производительности приложения.
  • Учетная запись Bluemix.
  • Приложение для тестирования. Я использую пример приложения Java EE CloudTrader, с которым я часто работаю на семинарах по Bluemix. Читатель тоже может использовать CloudTrader – или одно из своих собственных приложений. Все что требуется – приложение должно быть развернуто и запущено в Bluemix, и у вас должна быть возможность запускать приложение из веб-браузера с доступом к учетной записи этого приложения в Bluemix.

Запустить приложениеПолучить код

Шаг 1. Нагрузочное тестирование приложения

Начнем с нагрузочного тестирования приложения, чтобы понять, как оно реагирует на интенсивную нагрузку и что может потребоваться для масштабирования.

  1. На панели управления Bluemix выберите свое приложение и откройте его обзорную страницу. Выберите пункт меню Add a Service и найдите службу BlazeMeter в категории DevOps каталога Bluemix. Выбрав службу, укажите в полях Space и App пространство учетной записи Bluemix, где находится приложение. Поле unbound оставьте пустым. В качестве имени экземпляра службы можно использовать имя по умолчанию, созданное автоматически, или указать свое собственное имя.Панель управления Bluemix
    Панель управления Bluemix
  2. Служба добавится и станет доступной в разделе Services вашего личного кабинета Bluemix. Нажмите на значок службы и выберите его, чтобы запустить панель управления BlazeMeter.Панель управления BlazeMeter
    Панель управления BlazeMeter
  3. Использование службы можно начать с создания различных нагрузочных тестов и сценариев, выбрав пункт меню Add URL List Test.Пункт меню Add URL List Test
    Пункт меню Add URL List Test
  4. Введите адрес запуска Bluemix-приложения в строку URL-адреса BlazeMeter.
    Строка URL-адреса в BlazeMeter
    Строка URL-адреса в BlazeMeter

    Для параметров, перечисленных под URL-адресом Bluemix-приложения, таких как Hosts Override, Network Emulation и т.п., можно оставить значения по умолчанию.

  5. В правой части страницы параметров HTTP URLs Test можно изменять параметры, регулируя количество имитируемых одновременно работающих пользователей, темпы нарастания нагрузки, а также продолжительность между сеансами пользователей и задержку между ними. Можно также использовать любые предустановленные значения определенных тестовых комбинаций этих параметров (Gradual, Stress, или Extreme).Параметры в правой части страницы HTTP URLs Test
    Параметры в правой части страницы HTTP URLs Test
  6. Выберите Save в правом верхнем углу страницы, чтобы сохранить сценарий нагрузочного теста. Выберите кнопку с зеленой стрелкой Start в левом верхнем углу страницы, чтобы начать нагрузочное тестирование.
  7. Откроется график времени отклика приложения. Он отображает время отклика приложения по мере роста нагрузки со стороны пользователей.
    Время отклика приложения
    Время отклика приложения

    Сценарий нагрузочного теста, применяемый в облаке тестовой нагрузки Blazemeter, ясно указывает на увеличение времени отклика, начиная с нагрузки примерно в 12 одновременно работающих пользователей, и его резкое ухудшение по мере дальнейшего добавления нагрузки – начинаясь со значения, значительно меньшего полусекунды, оно почти удваивается при приближении к отметке в 20 пользователей. Для дальнейшего тестирования по мере необходимости можно применять различные нагрузки с использованием различных сценариев Blazemeter, чтобы определить требования по масштабированию приложения.

Шаг 2. Добавление возможности автомасштабирования Bluemix-приложения

Результаты нагрузочного тестирования указывают на необходимость применения масштабирования для обработки большего числа одновременно работающих пользователей, и теперь приложению нужно придать способность масштабируемости. В Bluemix достаточно легко увеличить количество экземпляров приложения и выделить больше памяти из доступных квот учетной записи. Однако это ручной процесс, требующий действия администратора, который к тому же может привести к некоторым серьезным проблемам. Одна из них – администратору приложения или операционной группе придется постоянно контролировать приложение и его время отклика, чтобы своевременно выделять дополнительные экземпляры или память. Вторая проблема – когда нагрузка со стороны пользователей снижается, лишние ресурсы, используемые дополнительной памятью и экземплярами, которые больше не нужны, могут расходоваться впустую, если операционная группа не будет очень старательно следить за сокращением этих ресурсов.

Служба Autoscaling, доступная в Bluemix, позволяет избежать этих проблем. Она динамически добавляет оперативную память и экземпляры приложения согласно настраиваемым правилам масштабирования. Служба Autoscaling позволяет определить правила динамического масштабирования для наращивания и свертывания количества экземпляров приложения и выделяемой памяти на основании таких параметров производительности, как используемая память и используемые ресурсы JVM.

Обеспечение достаточного объема памяти

Прежде чем добавить службу Autoscaling, желательно проверить доступные ресурсы памяти и количества экземпляров приложения и служб в своем личном кабинете Bluemix. Служба Autoscaling может добавлять ограниченный объем дополнительных ресурсов приложения в зависимости от вашего текущего использования ресурсов и доступных для учетной записи квот. Чтобы освободить больше памяти, выполните одно или несколько из следующих действий.

  1. Как правило, остановка любого запущенного приложения позволяет высвободить достаточно памяти. Чтобы остановить приложение, выберите его на панели управления Bluemix. На странице обзора приложения нажмите кнопку Stop App в правом верхнем углу.
  2. Если вы хотите освободить память и ресурсы для автомасштабирования, удалив все экземпляры приложения или служб, выберите приложение на панели управления Bluemix. На странице обзора приложения нажмите кнопку Delete App в правом верхнем углу.
  3. Если вы также хотите удалить любые службы, связанные с приложением, то в ответ на соответствующее предложение укажите ОК. В ответ на предложение удалить все маршруты приложения также нажмите кнопку ОК.
  4. Если вы не уверены, удалены ли экземпляры служб, то все приложения и службы, развернутые в вашем пространстве Bluemix, можно увидеть на панели управления. Перейдите в раздел Application Services. Чтобы удалить любой отдельный экземпляр службы, нажмите кнопку Delete Service.

Добавление к приложению дополнения Autoscaling

  1. На панели управления Bluemix выберите свое приложение и откройте его обзорную страницу. Нажмите кнопку Add a Service.
  2. В разделе DevOps найдите службу Autoscaling и нажмите на значок Autoscaling.
  3. В поле Space в правой части окна Add a Service выберите то пространство Bluemix, в котором развернуто ваше приложение. Развернутое приложение уже должно быть выбрано в поле App. В поле Selected Plan оставьте значение по умолчанию. Нажмите кнопку Create.
  4. В ответ на предложение перезапустить приложение нажмите ОК.
  5. Когда приложение будет перезапущено, нажмите на его значок на панели управления Bluemix. Теперь на обзорной странице приложения должна отображаться привязанная к приложению служба Autoscaling.
  6. Щелкните на экземпляре службы Autoscaling в окне обзора приложения. Запустится консоль Autoscaling. На этой консоли можно выбрать любую из следующих вкладок:
    • Policy Configuration: позволяет определить правила масштабирования, которые будут применяться автоматически;
    • Metric Statistics: позволяет просматривать характеристики производительности приложения, такие как использование ресурсов памяти;
    • Scaling History: позволяет просматривать любые правила масштабирования, автоматически применяемые к приложению.
  7. Выберите вкладку Policy Configuration для создания правил масштабирования, определяющих, как выделять память или экземпляры приложения, например, выделение дополнительных ресурсов при превышении указанного порога расхода памяти.

    Подробнее об этом читайте в документации Начало работы со службой Auto-Scaling.


    Нажмите кнопку Enable, чтобы активировать каждое созданное правило.
  8. Может потребоваться перезапуск приложения. В этом случае дождитесь, пока оно перезапуститься.
  9. Теперь, когда служба автоматического масштабирования включена, вернитесь в консоль Blazemeter и продолжите нагрузочное тестирование приложения.
  10. В моих тестах продолжительное нагрузочное тестирование в Blazemeter показало неудовлетворительное время отклика приблизительно при 17 пользователях, но затем оно восстановилось само по себе, как вы увидите ниже. Примерно при 22 пользователях производительность вновь начала снижаться. В этот момент начала действовать моя политика автомасштабирования, что исправило общее время отклика приложения. В конечном итоге время отклика стало вдвое короче, даже когда с приложением работали 30 пользователей.
  11. Перейдите на вкладку Scaling History, чтобы увидеть любые правила, применяемые службой автомасштабирования. В моем сценарии тестирования Blazemeter пик времени отклика начинался с 15 одновременно работающих пользователей, но примерно при 19 пользователях оно восстанавливалось, и пороговое значение использования ресурсов, которое я указал, не превышалось. Однако история масштабирования показывает, что, примерно при 25 одновременно работающих пользователях порог, установленный в моих правилах автомасштабирования, был превышен и автоматически развернулся дополнительный экземпляр приложения. Это произошло в то же время, когда началось второе значительное увеличение времени отклика. (Чуть позже, во время выполнения нагрузочного теста был развернут еще один дополнительный экземпляр.)История масштабирования
    История масштабирования

Заключение

Из этого руководства вы узнали, как можно использовать одну из доступных служб нагрузочного тестирования приложений DevOps в Bluemix — Blazemeter — для прямого тестирования Bluemix-приложения на работу под нагрузкой со стороны пользователей. Вы также увидели, как можно использовать службу DevOps Autoscaling для динамического масштабирования приложения с целью повышения производительности, улучшения времени отклика, рационального использования ресурсов и повышения готовности.

Автомасштабирование и нагрузочное тестирование – это очень простые для освоения службы DevOps, доступные для Bluemix-приложений. Теперь вы можете изучить другие возможности, помимо прямого применения готовых тестов нагрузки со стороны пользователей и нагрузочных испытаний в утяжеленном режиме с помощью Blazemeter. Например, Blazemeter позволяет создавать свои собственные сценарии тестов JMeter для облачных приложений, чтобы продемонстрировать, как используются выделенные ресурсы в Bluemix и DevOps.


Ресурсы для скачивания


Похожие темы


Комментарии

Войдите или зарегистрируйтесь для того чтобы оставлять комментарии или подписаться на них.

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Web-архитектура, Облачные вычисления
ArticleID=1014709
ArticleTitle=Ускоренное освоение служб нагрузочного тестирования и масштабирования приложений в Bluemix
publish-date=09092015