Рабочий процесс CI/CD с использованием FAST
Соглашение о терминах
В этом руководстве используются следующие русскоязычные эквиваленты английских терминов:
- Задание CI/CD — CI/CD job.
Рабочий процесс CI/CD — CI/CD workflow, CI/CD pipeline и другие аналогичные термины.
Также будет использоваться термин «API» в значении «Валарм API», если не указано иное.
Интеграция FAST в рабочий процесс CI/CD предполагает добавление новых этапов в уже существующий рабочий процесс. Они могут быть оформлены и как самостоятельные задания, и как новые шаги в рамках уже существующего задания.
В зависимости от выбранного сценария развертывания и настройки FAST-ноды эти этапы будут отличаться. Возможные сценарии описаны далее.
Интеграция через API Валарм (далее — развертывание с API).
Сценарий подразумевает работу FAST-ноды в режиме управления через API Валарм, при этом API Валарм используется для управления тестами безопасности. В этом режиме FAST-нода может работать как с записью базовых запросов, так и с использованием уже записанных ранее:
В этом сценарии система обладает следующими свойствами:
- Один контейнер FAST-ноды — одна нода в облаке. Для одновременного запуска нескольких контейнеров FAST-нод вам потребуется соответствующее число нод в облаке и такое же число токенов.
- При запуске очередной FAST-ноды через ноду в облаке, через которую уже работает другая FAST-нода, тест безопасности последней будет прерван.
- Одна политика безопасности и один набор запросов могут использоваться несколькими тестами безопасности и FAST-нодами.
Подробно процесс интеграции описан здесь.
Интеграция через FAST-ноду (далее — развертывание с CI MODE).
Сценарий подразумевает использование FAST-ноды в режимах записи и тестирования путем изменения параметра CI_MODE
(режим управления через FAST-ноду) при запуске контейнера FAST-ноды. При этом обращения к API Валарм не требуется.
Работа FAST-ноды в режимах записи и тестирования схематично изображена на рисунке ниже:
В этом сценарии система обладает следующими свойствами:
- Один контейнер FAST-ноды — одна нода в облаке. Для одновременного запуска нескольких контейнеров FAST-нод вам потребуется соответствующее число нод в облаке и такое же число токенов. Для корректного запуска нескольких FAST-нод в параллельных (одновременных) рабочих процессах CI/CD вам необходимо использовать дополнительный механизм при запуске с CI MODE, который описан далее.
- При запуске очередной FAST-ноды в режиме тестирования через ноду в облаке, через которую уже работает другая FAST-нода в режиме тестирования, тест безопасности последней будет прерван.
- Одна политика безопасности и один набор запросов могут использоваться несколькими тестами безопасности и FAST-нодами.
Подробно процесс интеграции описан здесь.
Развертывание FAST-нод с CI MODE в параллельных рабочих процессах CI/CD
Развертывания FAST-нод в параллельных рабочих процессах подразумевает развертывание с CI MODE (в режимах записи и тестирования), но при этом контейнеру FAST-ноды передается дополнительный параметр BUILD_ID
.
Параметр позволяет производить параллельную запись разных наборов запросов через одну ноду в облаке, а затем использовать их параллельно в разных тестах безопасности.
Схематически развертывание FAST-нод в параллельных рабочих процессах CI/CD представлено на рисунках ниже:
В этом сценарии система обладает следующими свойствами:
- Через одну и ту же FAST-ноду в облаке в параллельных рабочих процессах CI/CD может одновременно работать несколько FAST-нод. При этом используется один и тот же токен.
- Запущенные тесты безопасности используют именно те наборы запросов, которые соответствуют указанному
BUILD_ID
. - В параллельных тестах безопасности могут использоваться разные политики безопасности.
Подробно процесс запуска FAST-нод в параллельных рабочих процессах CI/CD описан здесь.
Поддержка HTTPS
В этом руководстве описывается интеграция FAST в CI/CD для тестирования целевого приложения, работающего по протоколу HTTP.
FAST-нода также поддерживает тестирование приложений, работающих по протоколу HTTPS. Работа FAST с HTTPS описана в документе «Быстрый старт».
results matching ""
No results matching ""
results matching ""
No results matching ""