Перейти к основному содержимому

Архитектура ТестОпс

Установка ТестОпс включает в себя сам сервис ТестОпс и несколько сторонних сервисов.

  • Компоненты с сохранением состояния включает:

    • сервер базы данных PostgreSQL,
    • брокер очередей RabbitMQ,
    • S3-совместимый сервер хранения, такой как Ceph или MinIO.

    Для производственной среды эти сервисы должны быть развернуты отдельно от сервиса ТестОпс.

  • Компоненты без сохранения состояния включают:

    • сам сервис ТестОпс,
    • Redis для хранения пользовательских сессий.

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

Конечные пользователи должны взаимодействовать только с сервисом ТестОпс, возможно через обратный прокси (см. Конфигурация сети). Остальные компоненты должны быть доступны ТестОпс по сети, но не должны быть доступны напрямую конечным пользователям.

Установка ТестОпс включает в себя компоненты как с сохранением, так и без сохранения состояния.

Требования к оборудованию

Оптимальная конфигурация оборудования для вашей инстанции ТестОпс зависит от производственной нагрузки. Для небольшого проекта мы рекомендуем начать с 4 vCPU и 8 ГБ ОЗУ и масштабировать по мере необходимости.

Требования к хранилищу

Базы данных

ТестОпс использует PostgreSQL в качестве хранилища данных. Минимально поддерживаемая версия — PostgreSQL 15.

Требуемое дисковое пространство полностью зависит от количества тестовых результатов, которые вы собираетесь обрабатывать с помощью вашей инстанции ТестОпс. Проект с 100 000 тестов, вероятно, займет 300 ГБ в базе данных через 1 год ежедневных запусков.

Для приемлемой производительности всей системы при обработке результатов автоматизированных тестов, особенно если ваша база тестов велика и запуски происходят несколько раз в день, необходимо соблюдать следующие требования:

  • Оборудование для хранения базы данных должно быть только SSD, предпочтительно энтерпрайз класса; HDD замедлят работу сервисов и могут стать узким местом.
  • Необходимо настроить конфигурацию базы данных для правильной работы с SSD, как описано в нашем руководстве.
  • База данных никогда не должна использовать те же диски, что и хранилище артефактов. Это создаст конкуренцию за ресурсы и в конечном итоге парализует как базу данных, так и хранилище.

Хранилище объектов

Хранилище объектов используется для хранения артефактов результатов тестов и тест-кейсов, например, скриншотов и видео, созданных во время запусков тестов. Объем таких артефактов зависит от тестов, которые вы будете запускать. Для небольшого проекта мы рекомендуем начать с как минимум 50 ГБ дискового пространства и затем масштабировать по мере необходимости.

Так же сразу следует подумать о своевременном удалении неактуальных артефактов.

Для приемлемой производительности всей системы при обработке тестовых артефактов от автоматизированных тестов необходимо соблюдать следующие требования:

  • Используйте любой S3-совместимый сервер хранения:
    • AWS S3 предпочтителен, так как он показывает лучшую производительность для большого объема данных;
    • другие варианты включают MinIO, Ceph и т.д.
  • Используйте любой CSI-совместимый сервер хранения (только для развертываний d Kubernetes).
  • Оборудование для хранения артефактов должно быть только SSD, предпочтительно энтерпрайз класса; HDD замедлят работу сервисов и станут узким местом.
  • Хранилище артефактов никогда не должно использовать те же диски, что и база данных, это создаст конкуренцию за ресурсы и в конечном итоге парализует как базу данных, так и хранилище.

Очередь сообщений

Брокер очереди сообщений RabbitMQ используется ТестОпс для обработки загружаемых данных.

Хранилище сессий

Redis используется для хранения сессий аутентификации пользователей ТестОпс. Redis не требует постоянного хранилища. Он использует RAM для работы.