54 lines
2.4 KiB
Markdown
54 lines
2.4 KiB
Markdown
# 企迹系统发布与回滚检查表
|
|
|
|
> 每次生产发布由发布负责人逐项勾选,并将结果随变更单、流水线和制品一并归档。
|
|
|
|
## 1. 发布前
|
|
|
|
- [ ] 变更已合并至受保护分支,MR 审核记录完整。
|
|
- [ ] 已创建发布 Tag,记录提交 SHA、镜像摘要和发布日期。
|
|
- [ ] CI 全部通过:后端测试、前端构建、Ruff、Bandit、依赖漏洞审计、SBOM、Trivy 文件系统扫描。
|
|
- [ ] 已归档 `sbom-backend.cdx.json`、测试报告和扫描报告。
|
|
- [ ] 生产密钥由受控环境或密钥管理系统注入,未写入 Git、镜像层或发布记录。
|
|
- [ ] 数据库已完成备份,并验证备份可读取;回滚负责人和窗口已确认。
|
|
- [ ] 对象存储桶为私有,应用服务账号采用最小读写权限。
|
|
|
|
## 2. 数据库迁移
|
|
|
|
在维护窗口、使用生产应用运行身份执行:
|
|
|
|
```bash
|
|
cd /path/to/qiji/backend
|
|
alembic current
|
|
alembic upgrade head
|
|
alembic current
|
|
```
|
|
|
|
- [ ] `alembic current` 显示预期修订版本。
|
|
- [ ] 核验 `users.wecom_userid` 的唯一索引已创建。
|
|
- [ ] 如迁移失败,停止发布;不得通过手工修改表结构绕过迁移记录。
|
|
|
|
## 3. 发布与验证
|
|
|
|
- [ ] 使用指定 Tag/镜像摘要部署;禁止直接从未审核工作区运行。
|
|
- [ ] 服务以受控 systemd 服务或编排平台运行,未使用开发热重载。
|
|
- [ ] 仅反向代理对公网开放 HTTPS;数据库、缓存、MinIO 管理端口不对公网监听。
|
|
- [ ] 健康检查通过:`GET /health`。
|
|
- [ ] 回归登录、角色授权、企微绑定、受控图片上传和图片下载授权。
|
|
- [ ] 抽查应用日志,确认未输出口令、密钥、令牌或用户输入正文。
|
|
|
|
## 4. 回滚
|
|
|
|
触发条件:迁移失败、健康检查失败、关键业务回归失败、出现高危安全告警。
|
|
|
|
1. 停止本次发布流量切换,恢复上一稳定版本的镜像/制品。
|
|
2. 仅在已验证可逆且有审批的情况下执行 `alembic downgrade`;基线迁移不允许通过盲目降级删除历史表。
|
|
3. 如数据不兼容,按已验证的备份恢复方案处理,并保留操作审计。
|
|
4. 复测健康接口和关键业务,记录故障、影响范围、回滚时间和后续整改项。
|
|
|
|
## 5. 发布归档
|
|
|
|
- [ ] 变更单与审批记录
|
|
- [ ] Git Tag、提交 SHA、镜像摘要和 SBOM
|
|
- [ ] 测试、扫描、迁移和部署日志
|
|
- [ ] 上线验证与回滚演练记录
|