feat: add production deployment rehearsal checklist
This commit is contained in:
@@ -0,0 +1,143 @@
|
||||
# AI合同起草与审查助手-正式生产部署演练与上线检查清单-2026-05-16
|
||||
|
||||
## 一句话结论
|
||||
|
||||
当前主线已经具备进入正式生产部署演练的条件。正式部署前不再只看“功能能不能跑”,而是要把代码基线、自动化门禁、PostgreSQL 真相源、MinIO 证据导入、生产健康检查、回滚能力统一收成一套可重复执行的流程。
|
||||
|
||||
## 演练目标
|
||||
|
||||
这套演练不直接替代真实部署动作,目标是回答四个问题:
|
||||
|
||||
1. 当前 `main` 是否就是准备上线的代码。
|
||||
2. 已通过的自动化门禁是否有可追溯产物。
|
||||
3. 正式上线批准是否来自远程 PostgreSQL 真相源,而不是本地 CSV 兜底。
|
||||
4. 如果部署后发现问题,是否有健康检查、回归检查、备份和回滚路径。
|
||||
|
||||
## 当前生产目标
|
||||
|
||||
| 项目 | 地址或说明 |
|
||||
|---|---|
|
||||
| 服务器 | `192.168.3.90` |
|
||||
| 前端 | `http://192.168.3.90:3003` |
|
||||
| 后端 | `http://192.168.3.90:8001` |
|
||||
| API | `http://192.168.3.90:8001/api/v1` |
|
||||
| 健康检查 | `http://192.168.3.90:8001/health` |
|
||||
| 就绪检查 | `http://192.168.3.90:8001/api/v1/system/readiness` |
|
||||
| 远程项目目录 | `/opt/ai-contract-platform` |
|
||||
| Compose 文件 | `docker-compose.server.yml` |
|
||||
| 对象存储 | MinIO,`192.168.3.90:9000` |
|
||||
|
||||
## 默认演练命令
|
||||
|
||||
默认演练只做无破坏性检查,不部署、不重启、不回滚:
|
||||
|
||||
```powershell
|
||||
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\run-production-deployment-rehearsal.ps1
|
||||
```
|
||||
|
||||
默认演练会检查:
|
||||
|
||||
| 检查项 | 通过含义 |
|
||||
|---|---|
|
||||
| gstack | 当前机器满足仓库约束 |
|
||||
| Git 远端 | `origin` 指向正式 Git 服务 |
|
||||
| Git 同步 | 本地 `main` 与 `origin/main` 一致 |
|
||||
| 工作区 | 没有未提交改动 |
|
||||
| 脚本库存 | 部署、回滚、健康、回归、备份、正式上线门禁脚本都存在 |
|
||||
| 全量自动化产物 | 最近一次 `run until blocked` 已全阶段通过 |
|
||||
| formal-launch DB 导入产物 | 最近一次 PostgreSQL + MinIO 导入通过 |
|
||||
| formal-launch 批准产物 | 最近一次正式批准门禁来自 database truth source 且通过 |
|
||||
| 部署包文档 | 生产部署包仍存在 |
|
||||
|
||||
## 数据库真相源复跑命令
|
||||
|
||||
如果要重新生成“远程 PostgreSQL 真相源确认版”证据,先建立临时 SSH 隧道:
|
||||
|
||||
```powershell
|
||||
ssh -i $HOME\.ssh\water_audit_ed25519 -L 15432:172.18.0.3:5432 -L 19000:127.0.0.1:9000 root@192.168.3.90 -N
|
||||
```
|
||||
|
||||
再运行正式批准门禁:
|
||||
|
||||
```powershell
|
||||
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\run-production-deployment-rehearsal.ps1 `
|
||||
-RunFormalLaunchApprovalGate `
|
||||
-RequireDatabaseTruth `
|
||||
-FormalLaunchDatabaseUrl "postgresql+psycopg://postgres:postgres@127.0.0.1:15432/ai_contract_platform"
|
||||
```
|
||||
|
||||
如果要重新导入 MinIO 证据,再单独执行:
|
||||
|
||||
```powershell
|
||||
$env:MINIO_ENDPOINT = "127.0.0.1:19000"
|
||||
$env:MINIO_ACCESS_KEY = "minioadmin"
|
||||
$env:MINIO_SECRET_KEY = "minioadmin"
|
||||
$env:MINIO_SECURE = "false"
|
||||
|
||||
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\import-formal-launch-governance-db.ps1 `
|
||||
-DatabaseUrl "postgresql+psycopg://postgres:postgres@127.0.0.1:15432/ai_contract_platform" `
|
||||
-BatchName "formal-launch-production-rehearsal"
|
||||
```
|
||||
|
||||
说明:隧道只用于本机演练。演练结束后关闭 SSH 窗口即可。
|
||||
|
||||
## 生产发布门禁演练
|
||||
|
||||
如果要把远程生产健康、依赖治理、安全基线、生产回归也纳入同一轮演练,执行:
|
||||
|
||||
```powershell
|
||||
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\run-production-deployment-rehearsal.ps1 `
|
||||
-RunProductionReleaseGate `
|
||||
-RequireCleanWorktree
|
||||
```
|
||||
|
||||
如果本轮只想快速检查,不跑完整前端回归,可以加:
|
||||
|
||||
```powershell
|
||||
-SkipProductionRegression
|
||||
```
|
||||
|
||||
如果要做更完整的上线前演练,可以加:
|
||||
|
||||
```powershell
|
||||
-IncludeBackupDrill
|
||||
```
|
||||
|
||||
## 正式上线前检查清单
|
||||
|
||||
| 顺序 | 检查项 | 放行标准 |
|
||||
|---:|---|---|
|
||||
| 1 | `main` 与远端同步 | `git rev-list --left-right --count origin/main...main` 为 `0 0` |
|
||||
| 2 | 工作区干净 | `git status --short` 无输出 |
|
||||
| 3 | 全量自动化 | `run-until-blocked` 最近产物全阶段 `PASS` |
|
||||
| 4 | Codex 无人审批 | Phase 5 默认包含 `codex-autonomous-formal-launch` 且通过 |
|
||||
| 5 | PostgreSQL 真相源 | formal-launch approval `source_mode=database` |
|
||||
| 6 | MinIO 证据导入 | formal-launch DB import `status=PASS` |
|
||||
| 7 | 正式上线批准 | `blocked_required=0`、`warnings=0` |
|
||||
| 8 | 生产健康 | 后端 health、readiness、前端访问通过 |
|
||||
| 9 | 生产回归 | Phase 1/2/3 关键业务回归通过 |
|
||||
| 10 | 回滚路径 | `rollback-frontend-docker.ps1` 可用,最近有回滚证据或演练计划 |
|
||||
|
||||
## 当前已确认的证据
|
||||
|
||||
| 证据 | 路径 |
|
||||
|---|---|
|
||||
| 全量自动化通过 | `project-docs/automation-artifacts/run-until-blocked/2026-05-16T08-55-56/summary.md` |
|
||||
| PostgreSQL + MinIO 导入通过 | `project-docs/qa-artifacts/formal-launch-governance-db-import/2026-05-16T10-10-51-993/formal-launch-governance-db-import-summary.md` |
|
||||
| 数据库真相源正式批准通过 | `project-docs/qa-artifacts/formal-launch-approval-gate/2026-05-16T10-12-16-829/formal-launch-approval-summary.md` |
|
||||
|
||||
## 放行判断
|
||||
|
||||
正式生产部署演练可以判定为 `PASS` 的条件:
|
||||
|
||||
1. `run-production-deployment-rehearsal.ps1` 没有 required failure。
|
||||
2. PostgreSQL 真相源门禁为 `PASS`。
|
||||
3. MinIO 证据导入为 `PASS`。
|
||||
4. Git 本地与远端一致。
|
||||
5. 如本轮包含生产发布门禁,则生产发布门禁没有 required failure。
|
||||
|
||||
如果只是默认演练通过,但没有打开 `-RunProductionReleaseGate`,结论应写作“部署前证据链通过”,不能写作“已完成真实生产发布”。
|
||||
|
||||
## 下一步建议
|
||||
|
||||
下一步可以把这套演练脚本接入正式上线流程:每次部署前先跑默认演练,部署后再跑生产发布门禁。这样后续上线不再靠口头确认,而是靠同一条命令产出的证据目录来判断是否放行。
|
||||
@@ -18,6 +18,7 @@
|
||||
- `AI合同起草与审查助手-对外产品介绍文案-官网演示版-2026-05-11.md`
|
||||
- `AI合同起草与审查助手-真人参与最小化与必要人工环节说明-2026-05-14.md`
|
||||
- `AI合同起草与审查助手-真人参与流程-会议汇报版-2026-05-14.md`
|
||||
- `AI合同起草与审查助手-正式生产部署演练与上线检查清单-2026-05-16.md`
|
||||
|
||||
## 当前仍保留的专项资料
|
||||
|
||||
|
||||
Reference in New Issue
Block a user