Ралли: Тестирование Openstack С Помощью Tempest Стало Проще (Проще)

Автор: Андрей Курилин В современном мире при построении облачных сервисов невозможно ограничиться простой установкой платформы; вам придется обновлять компоненты, интегрировать новое оборудование, масштабировать и вносить множество изменений в настройки.

Но как можно оставаться уверенным в том, что после всех этих изменений ваше облако продолжит работать должным образом и служить империи клиентов? На этом этапе для этих задач используется Tempest (официальный компонент OpenStack для функционального тестирования).

Тесты Tempest автоматически запускаются для каждого нового изменения почти во всех проектах OpenStack, что снижает вероятность применения неправильных изменений (ломаных, кривых, другими словами, изменений, которые могут что-то сломать в вашей инфраструктуре).

Однако пользователи часто сталкиваются с некоторыми неудобствами при использовании Tempest. Использование Tempest напоминает мне изучение языка ассемблера в университете.

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

Когда нам предложили возможность использовать Turbo Pascal в качестве среды для выполнения ассемблерных инструкций, мы были безмерно счастливы; процесс изучения и разработки приложений на языке ассемблера был значительно упрощен.

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

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

Эти проблемы можно решить Ралли — проект OpenStack, способный на многое, в частности: создание сред для проверки, тестирования производительности, а также бенчмаркинг OpenStack (в том числе с использованием Tempest).

Говоря о Rally+Tempest, Rally автоматизирует процесс установки, настройки и запуска тестов Tempest. В отличие от Tempest, который необходимо устанавливать и настраивать отдельно на каждом кластере, после установки Rally может сканировать огромное количество облаков — все, что вам нужно сделать, это добавить информацию о ваших кластерах в Rally, а затем вы сможете легко переключаться между ними.

Механизм сравнительного анализа Rally способен автоматически запускать тесты, имитирующие пользовательскую нагрузку.

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

Далее мы рассмотрим, как использовать Rally и Tempest, но прежде чем мы перейдем к самому интересному, рассмотрим основные причины интеграции Rally с Tempest: 1. Большинство проектов OpenStack используют системы CI/CD, основанные на Tempest, для автоматического тестирования новых изменений.

Исходя из этого, если есть возможность облегчить жизнь разработчикам, а именно позволить им более активно и удобно использовать Tempest, то мы должны это сделать! 2. Нагрузочное тестирование с использованием тестов Tempest: 1. В Tempest уже разработано множество тестов, поэтому нет необходимости дублировать их в Rally. Чем меньше дублирования кода, тем лучше.

2. Проверка не должна ограничиваться тестированием без нагрузки.

Rally может моделировать нагрузку для Tempest. Другими словами, механизм сравнительного анализа Rally может запускать тесты Tempest с различным количеством (смоделированных) активных пользователей.

3. Отладка Tempest и OpenStack. Если в шлюзах обнаружено состояние гонки, разработчики смогут запустить тот же тест (или набор тестов) под нагрузкой в своей среде, что упрощает идентификацию источника этих типов ошибок.

Можно много говорить о том, насколько круто и многообещающе Ралли, но вы никогда не узнаете, насколько оно хорошо, пока не попробуете его в действии.

Итак, вы, вероятно, готовы перейти от «лирики» к практике.

Тогда приступим!



Раллийная установка

Неудивительно, но чтобы использовать Rally, его нужно сначала скачать( репозиторий GitHub ), а затем запустите сценарий установки «install_rally.sh».



Ралли: тестирование OpenStack с помощью Tempest стало проще (проще)



Добавление вашего облака в Rally

После успешной установки следует добавить облако в Rally, которое будет протестировано.

Эту операцию можно выполнить двумя способами.

Одним из вариантов инициализации кластера в Rally является использование OpenRC вашего облака.

Например вот так:

Ралли: тестирование OpenStack с помощью Tempest стало проще (проще)

Второй способ — описать облако в JSON-файл , который следует передать в команду «создать развертывание ралли» с использованием аргумента –file:

Ралли: тестирование OpenStack с помощью Tempest стало проще (проще)

Запустив команду `rally Deployment List`, вы можете увидеть список всех инициализированных «развертываний».



Ралли: тестирование OpenStack с помощью Tempest стало проще (проще)



Проверка вашего облака

С помощью `rally Deployment Check` вы можете проверить корректность добавленного деплоя, а также посмотреть, какие сервисы доступны в вашем облаке из Rally:

Ралли: тестирование OpenStack с помощью Tempest стало проще (проще)



Подготовка Tempest для вашего облака

Как говорилось ранее, Rally может одновременно работать с огромным количеством облаков, следовательно, каждое облако имеет свой Tempest. Чтобы сократить время, необходимое для клонирования репозитория Tempest, Rally клонирует его один раз, а затем использует локальный репозиторий, настраивая его для каждого облака.

Подготовка Tempest (клонирование репозитория и установка виртуальной среды со всеми зависимостями) выполняется командой `rally-manage tempest install`.



Ралли: тестирование OpenStack с помощью Tempest стало проще (проще)



Запуск Темпеста

Запуск автоматической облачной верификации (иными словами, облачной верификации) реализуется с помощью команды `rally verify start`; для этого требуется только один аргумент: имя набора тестов.

Если этот аргумент не указан, будут выполнены дымовые тесты (по умолчанию).

Вывод этой команды аналогичен выводу Tempest. Допустимые имена наборов тестов: полный, дым, голое железо, вычисления, обработка данных, личность, изображение, сеть, объект_хранилище, оркестрация, телеметрия и том.



Ралли: тестирование OpenStack с помощью Tempest стало проще (проще)



Список всех результатов Tempest

Результаты всех проверок сохраняются в базе данных Rally, поэтому вы можете просмотреть и сравнить их в любое время.

Списки запущенных проверок будут отображаться на экране с помощью команды `rally verify list`.



Ралли: тестирование OpenStack с помощью Tempest стало проще (проще)



Просмотр результатов конкретной проверки

Просмотреть результаты конкретной проверки можно с помощью двух команд: «rally проверить показать» и «rally проверить подробно».

Последний дополняет вывод первой команды отслеживанием неудачных тестов.



Ралли: тестирование OpenStack с помощью Tempest стало проще (проще)



Ралли: тестирование OpenStack с помощью Tempest стало проще (проще)



Бенчмаркинг с помощью тестов Tempest

Помимо установки, настройки и запуска Tempest, Rally может моделировать пользовательскую нагрузку с помощью тестов Tempest. Результаты нагрузочного теста также сохраняются и могут быть отображены позже.

Запустим тест и смоделируем нагрузку (от 2 до 10 пользователей) для следующего тестового сценария: tempest.api.identity.admin.v3.test_domains.DomainsTestXML.test_create_update_delete_domain. После завершения теста с помощью команды `rally Taskplot2html` мы сгенерируем HTML-файл с результатами.

Информацию и примеры того, как правильно указать входные данные в файлах JSON/YAML, используемых для определения заданной задачи, можно найти в репозитории Rally (в каталоге rally/doc/samples/tasks) или на странице OpenStack вики .



Ралли: тестирование OpenStack с помощью Tempest стало проще (проще)



С двумя активными пользователями:



Ралли: тестирование OpenStack с помощью Tempest стало проще (проще)



При 6 активных пользователях:



Ралли: тестирование OpenStack с помощью Tempest стало проще (проще)



При 10 активных пользователях:



Ралли: тестирование OpenStack с помощью Tempest стало проще (проще)



Заключение

При использовании облака в производстве вам придется иметь дело с постоянными изменениями.

Возникает вопрос: как проверить каждое изменение? Tempest — хорошее, но громоздкое решение.

Rally, помимо прочего, может сделать его более простым в использовании.

Rally предоставляет механизм нагрузочного тестирования OpenStack, и теперь, благодаря интеграции с Tempest, библиотека тест-кейсов стала огромной.

Поможет ли ваше исправление ускорить какие-либо операции? Ваше облако такое же быстрое, как и ваши конкуренты? Почему бы не выяснить это с помощью Ралли?! Оригинальная статья по-английски .

Теги: #Mirantis #Mirantis #openstack #OpenSource #Rally #TEMPEST #бенчмаркинг #openrc #open source

Вместе с данным постом часто просматривают: