Архитектура ТестОпс
Каждое развертывание ТестОпс включает в себя сам сервис ТестОпс и несколько сторонних сервисов:
компоненты с сохранением состояния:
- сервер базы данных PostgreSQL;
- брокер сообщений RabbitMQ;
- S3-совместимое хранилище данных, такое как Ceph или MinIO.
Для производственной среды эти сервисы должны быть развернуты отдельно от сервиса ТестОпс.
компоненты без сохранения состояния:
- сам сервис ТестОпс;
- сервер Redis для хранения пользовательских сессий.
Эти сервисы могут быть развернуты на одной машине. В зависимости от метода установки и настроек Redis может быть развернут и настроен автоматически.
Конечные пользователи должны взаимодействовать только с сервисом ТестОпс, возможно через обратный прокси (см. настройки сети). Остальные компоненты должны быть доступны ТестОпс по сети, но не должны быть доступны напрямую конечным пользователям.
Требования к оборудованию
Оптимальная конфигурация оборудования для вашего инстанса ТестОпс зависит от нагрузки. Для небольшого проекта мы рекомендуем начать с 4 виртуальных ЦПУ и 8 ГБ ОЗУ и масштабировать по мере необходимости.
Требования к хранилищу
Базы данных
ТестОпс использует PostgreSQL в качестве основного хранилища данных. Минимальная поддерживаемая версия — PostgreSQL 15.
Требуемое дисковое пространство полностью зависит от количества тестовых результатов, которые вы собираетесь обрабатывать с помощью вашего инстанса ТестОпс. Проект с 100 000 тестов займет около 300 ГБ в базе данных через 1 год ежедневных запусков.
Для приемлемой производительности системы при обработке результатов автоматизированных тестов, особенно если у вас большая база тестов и запуски происходят несколько раз в день, необходимо соблюдать следующие требования:
- Используйте только SSD в качестве носителя данных для базы данных, желательно корпоративного класса. HDD замедлят работу сервисов.
- Используйте корректную конфигурацию базы данных для правильной работы с SSD, как описано в нашем руководстве.
- База данных не должна находиться на том же диске, что и хранилище артефактов. Это создаст конкуренцию за ресурсы и в конечном итоге замедлит как базу данных, так и хранилище.
Хранилище объектов
Хранилище объектов используется для хранения артефактов результатов тестов и тест-кейсов (например, скриншотов и видео, созданных во время запусков тестов). Объем таких артефактов зависит от тестов, которые вы будете запускать. Для небольшого проекта мы рекомендуем начать с 50 ГБ дискового пространства и затем масштабировать по мере необходимости.
Для приемлемой производительности системы при обработке артефактов автоматизированных тестов необходимо соблюдать следующие требования:
Используйте любое S3-совместимое хранилище данных:
Если вы используете Kubernetes, используйте CSI-совместимое хранилище.
Используйте только SSD в качестве носителя данных для хранилища артефактов, желательно корпоративного класса. HDD замедлят работу сервисов.
Хранилище артефактов не должно находиться на том же диске, что и база данных. Это создаст конкуренцию за ресурсы и в конечном итоге замедлит как базу данных, так и хранилище.
Брокер сообщений
Брокер сообщений RabbitMQ используется ТестОпс для обработки загружаемых данных.
Хранилище сессий
Сервер Redis используется для хранения сессий пользователей ТестОпс.
Redis не требует постоянного хранилища, для работы используется ОЗУ.