Запуск FAST-нод в параллельных рабочих процессах CI/CD
Необходимые сведения
В качестве демонстрационных будут использоваться следующие значения:
- токен —
qwe_12345
; - идентификаторы наборов запросов:
rec_1111
иrec_2222
;
Несколько FAST-нод могут запускаться в параллельных (одновременных) рабочих процессах CI/CD и работать через одну и ту же FAST-ноду в облаке (используя одинаковый токен). Это доступно и для режима записи, и для режима тестирования FAST-нод.
Для обеспечения бесконфликтной работы FAST-нод в параллельных рабочих процессах CI/CD используется переменная окружения BUILD_ID
, передаваемая FAST-нодам.
Переменная BUILD_ID
выполняет следующие функции:
- Служит дополнительным идентификатором набора запросов, который формируется в режиме записи FAST-ноды.
- Определяет на основе какого набора запросов FAST-ноде формировать тест безопасности в режиме тестирования (связывает тест безопасности и набор запросов).
- Идентифицирует конкретный рабочий процесс CI/CD.
Переменная BUILD_ID
может принимать любые буквенно-числовые значения.
Далее будут рассмотрены примеры одновременного запуска двух FAST-нод сначала в режиме записи, а затем в режиме тестирования. Описанные ниже принципы вы сможете применить в рабочих процессах CI/CD и при необходимости масштабировать на большее количество нод.
Запуск FAST-нод в режиме записи в параллельных рабочих процессах CI/CD
Упрощение запуска
В приведенных ниже примерах будет использован минимально необходимый набор переменных окружения для успешного запуска контейнеров FAST-ноды.
Команда Docker для запуска одного из двух контейнеров FAST-ноды в режиме записи:
docker run --rm --name fast-node-1 \ # Запуск контейнера с именем fast-node-1
-e WALLARM_API_HOST=api.wallarm.com \ # Адрес API Валарм (в данном случае используется европейское облако)
-e WALLARM_API_TOKEN='qwe_12345' \ # Токен для соединения с FAST-нодой в облаке
-e CI_MODE=recording \ # Запуск в режиме записи
-e BUILD_ID=1 \ # Значение BUILD_ID (в параллельном рабочем процессе CI/CD должно отличаться)
-p 8080:8080 wallarm/fast # Публикация порта контейнера и имя образа контейнера
Команда для запуска второго контейнера FAST-ноды в режиме записи в параллельном рабочем процессе CI/CD:
docker run --rm --name fast-node-2 \
-e WALLARM_API_HOST=api.wallarm.com \
-e WALLARM_API_TOKEN='qwe_12345' \ # Идентичное значение токена
-e CI_MODE=recording \
-e BUILD_ID=2 \ # Значение BUILD_ID отличается от такового в параллельном рабочем процессе CI/CD
-p 8000:8080 wallarm/fast
Обратите внимание
Команды выше ориентированы на запуск в рамках одного хоста (сервера), поэтому помимо переменной окружения BUILD_ID
в них также отличаются имена контейнеров (fast-node-1
и fast-node-2
) и порты хоста для публикации (8080
и 8000
).
При запуске контейнеров FAST-ноды в параллельных рабочих процессах CI/CD на разных хостах команды могут отличаться лишь значением переменной BUILD_ID
.
В результате запуска команд выше две FAST-ноды будут работать в режиме записи через одну и ту же FAST-ноду в облаке Валарм, но при этом будут созданы разные наборы запросов. Вывод в консоль инструмента CI/CD будет аналогичным тому, что был описан здесь.
После завершения работы FAST-нод в режиме записи и формировании наборов запросов ноды могут быть запущены в режиме тестирования.
Запуск FAST-нод в режиме тестирования в параллельных рабочих процессах CI/CD
Пусть в результате работы FAST-нод fast-node-1
и fast-node-2
в режиме записи были сформированы наборы запросов rec_1111
и rec_2222
соответственно.
Тогда для того, чтобы FAST-нода в режиме тестирования использовала набор запросов rec_1111
, ей необходимо передать переменную BUILD_ID=1
, а для использования rec_2222
— BUILD_ID=2
.
Команды на запуск FAST-нод в режиме тестирования приведены ниже.
Для первой FAST-ноды:
docker run --rm --name fast-node-1 \
-e WALLARM_API_HOST=api.wallarm.com \
-e WALLARM_API_TOKEN='qwe_12345' \
-e CI_MODE=testing \ # Запуск в режиме тестирования
-e BUILD_ID=1 \ # Значение `BUILD_ID=1` соответствует набору запросов `rec_1111`
wallarm/fast
Для второй (в параллельном рабочем процессе CI/CD):
docker run --rm --name fast-node-2 \
-e WALLARM_API_HOST=api.wallarm.com \
-e WALLARM_API_TOKEN='qwe_12345' \
-e CI_MODE=testing \ # Запуск в режиме тестирования
-e BUILD_ID=2 \ # Значение `BUILD_ID=2` соответствует набору запросов `rec_2222`
wallarm/fast
Вывод в консоль инструмента CI/CD будет аналогичным тому, что был описан здесь.
В результате передачи FAST-нодам соответствующих значений переменной BUILD_ID
будут одновременно запущены два теста безопасности, работающих на основе двух разных наборов запросов.
Таким образом, задавая параметр BUILD_ID
вы можете запускать FAST-ноды в параллельных рабочих процессах CI/CD и при этом не будет возникать конфликтов (один тест безопасности не будет прерывать другой).
results matching ""
No results matching ""
results matching ""
No results matching ""