Разработали Control — софт, который не допускает падения сервера, мониторит показатели оперативной памяти и диска, высвобождает память и закрывает тестовые площадки, которые в данный момент не нужны.
Для чего используем
Тестовые площадки у нас поднимаются для каждой ветки автоматически через CI/CD GitLab. Поэтому на проекте, где идёт активная разработка, площадок может скопиться очень много. Настроено правило, что площадка закрывается, если 3 недели в неё не было коммитов, но иногда нужно закрыть ее быстрее, чтобы высвободить ресурсы.
Раньше технический директор мониторил всё это вручную: заходил в консоль на сервере и командами выяснял, какие тестовые площадки можно закрыть. Затем он решил это автоматизировать и за 2 дня создал Control. Через него удобно мониторить, когда были последние изменения в площадке. Если площадку нужно закрыть для освобождения места, в первую очередь архивируют старые тестовые площадки.
Готового софта для решения этой задачи нет. Мы написали его специально под нашу тестовую инфраструктуру, чтобы тестовые площадки автоматически подхватывались в режиме реального времени. В основном инструмент используем для архивации тестовых площадок, которые уже не нужны и для возобновления работы ранее архивированных площадок, чтобы сделать ретест. Также с его помощью удобно очищать неиспользуемые докеры и контейнеры, чтобы высвободить место на диске. Control позволяет отследить проект и контейнер, который аномально нагружает процессор или занимает слишком много оперативной памяти.
Бэкенд написали на Python (Fast API), фронтенд — на Vue.js.
С помощью Contol можно:
- включить, выключить, пересобрать тестовую площадку и отслеживать её статус;
- поднять уже развёрнутую тестовую;
- открыть отдельную тестовую площадку только для мобильных или веб-приложений;
- удалять логи (файлы с информацией о событиях, действиях и ошибках на сервере) и неиспользуемые Docker-образы.
Софтом пользуются тестировщики и разработчики. В программе авторизуются через таск-трекер.
Как выглядит интерфейс: