Общая задача
Необходимо реализовать систему автоматического деплоя и тестирования для серверной части (бэкенд) и нескольких клиентских приложений (фронтенды). Проект включает:
- Один небольшой бэкенд-сервис
- Несколько простых фронтендов
Требования к автоматизации
1. Этап до деплоя
- Автоматический запуск тестов перед выкаткой (юнит-тесты, интеграционные, возможно smoke-тесты)
- Блокировка деплоя при падении критических тестов
2. Этап деплоя
- Автоматическое развертывание на выбранной среде (staging/production)
- Плавная выкатка (без простоев или с минимальным окном)
- Автоматический откат (rollback) при неудаче
3. После деплоя
- Запуск post-deploy тестов (проверка доступности, функциональности основных сценариев)
- Мониторинг рабочей системы (нагрузка, ответы, ошибки)
4. Бэкапы и управление
- Автоматическое создание бэкапов базы данных и ключевых конфигов перед деплоем
- Восстановление из бэкапа при необходимости
Ожидаемый результат
Готовая система CI/CD с документацией по использованию и развертыванию. Исполнитель должен предоставить примеры конфигурационных файлов (YAML, скрипты) для GitLab с описанием пайплайнов.