Обновление системы¶
Общие принципы¶
Обновление AppSec.GenAI выполняется путём пересборки Docker-образов с новым кодом и перезапуска контейнеров. Миграции базы данных выполняются автоматически при запуске.
Обязательно сделайте бэкап
Перед любым обновлением обязательно создайте резервную копию базы данных и конфигурации. Процедура бэкапа описана в разделе Управление сервисами.
Процедура обновления¶
Шаг 1: Создание резервной копии¶
# Бэкап базы данных
docker exec postgres pg_dumpall -U postgres > backup_before_update_$(date +%Y%m%d_%H%M%S).sql
# Бэкап конфигурации
cp compose/.env compose/.env.backup
Шаг 2: Получение обновлений¶
Шаг 3: Проверка изменений .env¶
Если в обновлении появились новые переменные окружения, добавьте их в файл .env:
Шаг 4: Пересборка образов¶
Или пересборка отдельных сервисов (если обновлён только один):
Шаг 5: Перезапуск платформы¶
# Остановка текущих контейнеров
docker compose down
# Запуск с обновлёнными образами
./scripts/start.sh
Либо без полной остановки:
Автоматические миграции
При запуске контейнеры миграций автоматически выполнят alembic upgrade head. Если в обновлении есть новые миграции базы данных, они будут применены автоматически.
Шаг 6: Проверка¶
# Проверка статуса контейнеров
docker ps --format "table {{.Names}}\t{{.Status}}"
# Проверка миграций (все должны быть Exited (0))
docker ps -a --filter "name=migrations" --format "table {{.Names}}\t{{.Status}}"
# Комплексная проверка здоровья
./scripts/health-check.sh
# Проверка версий сервисов
curl -s http://localhost:8001/healthz | jq .
curl -s http://localhost:8004/healthz | jq .
Обновление отдельного сервиса¶
Для обновления только одного сервиса без остановки остальных:
cd compose
# 1. Пересборка образа
docker compose build <service>-migrations
# 2. Перезапуск миграций (если есть новые)
docker compose run --rm <service>-migrations
# 3. Перезапуск сервиса
docker compose up -d <service>
Пример для Scan Orchestrator:
docker compose build scan-orchestrator-migrations
docker compose run --rm scan-orchestrator-migrations
docker compose up -d scan-orchestrator
Откат обновления¶
В случае проблем после обновления:
Откат кода¶
Откат базы данных¶
# 1. Остановка сервисов
cd compose && docker compose down
# 2. Восстановление БД из бэкапа
docker compose up -d postgres
sleep 10
docker exec -i postgres psql -U postgres < backup_before_update_YYYYMMDD_HHMMSS.sql
# 3. Пересборка и запуск предыдущей версии
docker compose build
./scripts/start.sh
Откат миграций¶
Если необходимо откатить только миграцию конкретного сервиса:
# Откат последней миграции Model Management
docker exec model-management alembic downgrade -1
# Откат на конкретную ревизию
docker exec model-management alembic downgrade <revision_id>
# Проверка текущей ревизии
docker exec model-management alembic current
Версионирование¶
Проверка текущих версий¶
# Версии Docker-образов
docker images --format "table {{.Repository}}\t{{.Tag}}\t{{.CreatedAt}}" | grep genai
# Версия API каждого сервиса
for port in 8001 8002 8003 8004 8005 8025 8008; do
echo -n "Port $port: "
curl -s "http://localhost:$port/healthz" 2>/dev/null | jq -r '.version // "N/A"' 2>/dev/null || echo "unavailable"
done
Журнал обновлений¶
Рекомендуется вести журнал обновлений: