Files
orchestrator/docs/work-items/ORCH-036/10-tech-risks.md

4.3 KiB
Raw Permalink Blame History

Технические риски — ORCH-036

Work Item: ORCH-036 Stage: architecture Автор: architect

ID Риск Влияние Вероятность Митигация
R-1 Detached host-процесс не пережил рестарт 8500 (ssh-канал убит вместе с контейнером) Деплой не завершён, result не записан, finalizer вечно defer'ит Средняя setsid/nohup + redirect отвязывает remote-процесс от ssh; интеграционная проверка на staging-цели (TC-08); finalize-defer bounded → по исчерпании set_issue_blocked + Telegram
R-2 Преждевременное чтение check_deploy_status (вердикта ещё нет) Ложный FAILED → ложный откат на development Средняя Фаза B возвращается БЕЗ advance; гейт запускает только finalizer (Фаза C) после появления result; defer пока result отсутствует
R-3 Дрейф образ↔main: merge-gate сделал rebase, но staging-образ собран до rebase → build-once тегирует «не тот» код В прод уезжает не точно то, что в main Низкая merge-gate (ORCH-43) делает re-test после rebase; build-once = «что валидировано на staging», что и есть контракт; задокументировано как осознанное ограничение; усиление (rebuild+revalidate staging после rebase) — отдельная задача
R-4 Двойной Approved (человек кликнул дважды / дубль webhook) запускает деплой дважды Двойной рестарт прода, гонка Средняя Маркер initiated (idempotency-guard); event-dedup webhook'ов Plane уже есть
R-5 exit 2 хука (rollback тоже упал) → 8500 лежит → finalizer/новый контейнер не поднялся Конвейер всех проектов встал Низкая health-loop + авто-rollback хука минимизируют; restart: unless-stopped поднимет контейнер на ПРЕДЫДУЩЕМ образе если retag не случился; exit 2 → deploy_status: FAILED + откат + Telegram-алерт; ручной --rollback хука как backstop
R-6 Reserved-agent deploy-finalizer ошибочно уйдёт в LLM-путь лаунчера (_spawn → ValueError) Finalizer не отработает Низкая Перехват ДО _spawn в launch_job; unit-тест маршрутизации
R-7 sentinel-файлы не видны контейнеру/хосту (mount/uid) Фазы B/C не синхронизируются Низкая Тот же mount и uid-модель, что у merge-lease (ORCH-40/43); HP-2 в 07-infra
R-8 Approve через смену статуса Plane конфликтует с auto-advance других стадий Случайный Approved на deploy ничего не ломает, но семантика неочевидна Низкая Перехват по current_stage=="deploy" + finished_agent is None + маркеры; задокументировать в deployer.md/INFRA, что Approved на deploy = «деплой в прод»
R-9 Самодеплой ORCH ломает прод во время разработки самой ORCH-36 Групповой простой (enduro-trails) Низкая Вся отладка — на staging-цели хука (8501); прод 8500 не трогать (AC: DoD); флаг approve=true

Сводный приоритет

  • Блокеры дизайна: R-1, R-2 — закрыты архитектурой (setsid-detached + finalizer-defer).
  • Безопасность self-hosting: R-5, R-9 — закрыты обязательным approve + staging-отладкой
    • авто-rollback + restart: unless-stopped.
  • Корректность: R-3, R-4 — осознанные ограничения / idempotency-guard.