Архитектура развертывания ТестОпс: компоненты, версии, сетевые потоки

Последние изменения: 11.09.2026

Статья описывает состав инсталляции ТестОпс (серверная версия 5.x), требования к зависимостям и сетевые взаимодействия.

Состав инсталляции

Приложение ТестОпс — единый сервис (один контейнер/процесс, отдающий и веб-интерфейс, и REST API). Инсталляция целиком состоит из приложения и четырех зависимостей:

Компонент Назначение Данные Резервное копирование
Приложение ТестОпс UI, API, обработка результатов Stateless, масштабируется репликами (все реплики — одна сборка) Не требуется
PostgreSQL Основная база данных Критичные — все сущности продукта Рекомендуется
S3-совместимое хранилище Артефакты (вложения, скриншоты, логи) Критичные Рекомендуется
RabbitMQ или Artemis Очереди задач (обработка загрузок, чистки, экспорт) Временные: задачи в обработке; при штатной работе очереди пусты Не требуется. Персистентность — по желанию: с ней задачи, находившиеся в обработке, переживают рестарт брокера; без нее при рестарте они будут потеряны (результаты, загружавшиеся в этот момент, потребуется загрузить повторно). База данных и хранилище артефактов в любом случае не затрагиваются
Redis или Valkey Сессии пользователей, кэши Одноразовые: потеря = перелогин пользователей и прогрев кэшей Не требуется, персистентность не нужна

Требования и вариации по компонентам

PostgreSQL. Версия 15 и выше. Обзор роли базы данных в инсталляции — в документации: Архитектура → База данных. Параметры PostgreSQL, необходимые для корректной работы приложения ТестОпс, — в разделе База данных → Параметры PostgreSQL. Поддерживаются отказоустойчивые конфигурации (в том числе Patroni; для Kubernetes — helm chart 5.24.10+).

Redis или Valkey. Valkey (форк Redis под Linux Foundation) совместим по протоколу и поддерживается наравне с Redis. Два режима подключения:

  • Standalone — один инстанс, достаточно для большинства инсталляций;
  • Sentinel — отказоустойчивый режим (минимум 3 ноды Sentinel на независимых хостах).

Персистентность не требуется. Соединение приложения с Redis/Valkey может быть зашифровано TLS (включается настройкой ТестОпс, серверная часть — на стороне Redis/Valkey). Redis Cluster не поддерживается

Брокер сообщений. Два поддерживаемых варианта:

  • RabbitMQ (AMQP, порт 5672; с TLS — 5671). Три режима очередей: non-durable (по умолчанию), durable (классические устойчивые очереди), quorum (кворумные очереди для кластерной установки). Смена режима на работающей инсталляции требует пересоздания очередей — иначе ошибка PRECONDITION_FAILED.
  • Apache Artemis — альтернатива RabbitMQ, подключение нативным протоколом CORE (tcp://host:61616).

Брокер хранит только задачи в полете и dead-letter-очереди; первичных данных в нем нет.

S3-хранилище. Любое S3-совместимое решение. Два режима работы приложения (storage.type в values чарта):

  • S3 — базовый, максимальная совместимость;
  • S3_ASYNC — расширенный (AWS SDK v2): пакетное удаление объектов (DeleteObjects), server-side copy и move — заметно ускоряет массовые чистки и удаление запусков. Рекомендуется, если хранилище поддерживает эти операции.

Включение расширенного режима в values helm-чарта (advancedS3SDK работает только при type: S3_ASYNC, при типе S3 игнорируется):

storage:
  type: "S3_ASYNC"
  s3:
    advancedS3SDK:
      enabled: true
      bulkRemoveSupported: true
      moveSupported: true
      copySupported: true

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

Поддержка массовых операций хранилищами: AWS S3 и MinIO поддерживают все три операции; Ceph RGW поддерживает пакетное удаление и server-side copy. Для других решений (в том числе отечественных — YADRO TATLIN.OBJECT, RAIDIX iSAN) поддержку DeleteObjects и server-side copy/move необходимо подтвердить у вендора до включения соответствующих флагов. Проверка проста: включить S3_ASYNC на тестовом стенде и выполнить массовое удаление запусков.

Требования: только SSD, стандартный класс хранения, версионирование объектов отключить, выделенный инстанс, не на одном диске с базой данных. Поддерживаются path-style и virtual-host адресация (ключ storage.s3.pathstyle), а также SSE-шифрование.

Варианты развертывания. Kubernetes с helm-чартом (версия Kubernetes 1.20 и выше) — наиболее рекомендуемый вариант для производственной среды; docker-compose - требования: Docker Engine и плагин Docker Compose V2; установка RPM/DEB-пакетами — для развертывания без контейнеров.
Образы предоставляются через реестр qatools по логину/паролю предоставленному отделом продаж.

Матрица сетевых потоков

Откуда Куда Порт (дефолт) Варианты Назначение
1 Браузеры пользователей Вход (ingress/балансировщик) → приложение 443/HTTPS 80/HTTP (см. примечание 2) UI + REST API
2 CI-агенты (allurectl, плагины CI) Тот же вход, что и №1 443/HTTPS 80/HTTP Загрузка результатов
3 Приложение PostgreSQL 5432/TCP Нестандартный порт; при Patroni — VIP/haproxy База данных
4 Приложение RabbitMQ или Artemis 5672/AMQP 5671/AMQPS (TLS); Artemis — 61616/CORE Очереди задач
5 Приложение Redis или Valkey 6379/TCP TLS; при Sentinel — дополнительно 26379 на все ноды Sentinel Сессии, кэши
6 Приложение S3-хранилище 443/HTTPS 9000/HTTP (MinIO-стиль), 80/HTTP Артефакты
7 Приложение LDAP / Active Directory 389/LDAP 636/LDAPS Аутентификация (если включена)
8 Приложение SSO IdP (SAML/OIDC) 443/HTTPS Аутентификация (если включена); IdP также редиректит браузер на вход №1
9 Приложение SMTP 25 / 465 / 587 Служебные письма: приглашения и подтверждение локальных учетных записей, сброс паролей (при входе через SSO/IdP не используются), уведомление об отключении TMS-синхронизации
10 Приложение Внешние трекеры/TMS (Jira и др.) 443/HTTPS 80/HTTP Интеграции (если включены)
11 Браузер пользователя Jira Вход №1 443/HTTPS 80/HTTP — если Jira и ТестОпс на одном домене; при разных доменах только HTTPS (браузерная политика SameSite для куки в iframe) Iframe-панели Jira-плагина (если установлен)

Примечания

1. Направление соединений. Потоки 3–10 — исходящие от приложения; входящих соединений из систем организации к инсталляции нет, кроме входа №1/№2. Строки 7–10 опциональны: при выключенных интеграциях эти соединения отсутствуют. Инсталляция полностью работоспособна в закрытом контуре без доступа в интернет.

2. Работа по HTTP. Поддерживается (настройка allure.secure=false, значение по умолчанию). Ограничения: SSO-провайдер может требовать HTTPS для redirect URI; iframe-панели Jira-плагина при размещении Jira и ТестОпс на разных доменах требуют HTTPS (ограничение браузерной политики SameSite); часть браузерных функций (например, копирование в буфер обмена) недоступна вне защищенного контекста. При включении allure.secure=true без HTTPS вход в систему работать не будет. Рекомендуется HTTPS с сертификатом корпоративного центра сертификации.

3. Масштабирование. Лучшая практика — горизонтальное масштабирование: например, 4 реплики приложения ТестОпс по 4 CPU / 8 ГБ RAM предпочтительнее 2 реплик по 16 CPU / 64 ГБ RAM.

Помогла ли вам статья?