2.4 KiB
2.4 KiB
企迹系统发布与回滚检查表
每次生产发布由发布负责人逐项勾选,并将结果随变更单、流水线和制品一并归档。
1. 发布前
- 变更已合并至受保护分支,MR 审核记录完整。
- 已创建发布 Tag,记录提交 SHA、镜像摘要和发布日期。
- CI 全部通过:后端测试、前端构建、Ruff、Bandit、依赖漏洞审计、SBOM、Trivy 文件系统扫描。
- 已归档
sbom-backend.cdx.json、测试报告和扫描报告。 - 生产密钥由受控环境或密钥管理系统注入,未写入 Git、镜像层或发布记录。
- 数据库已完成备份,并验证备份可读取;回滚负责人和窗口已确认。
- 对象存储桶为私有,应用服务账号采用最小读写权限。
2. 数据库迁移
在维护窗口、使用生产应用运行身份执行:
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. 回滚
触发条件:迁移失败、健康检查失败、关键业务回归失败、出现高危安全告警。
- 停止本次发布流量切换,恢复上一稳定版本的镜像/制品。
- 仅在已验证可逆且有审批的情况下执行
alembic downgrade;基线迁移不允许通过盲目降级删除历史表。 - 如数据不兼容,按已验证的备份恢复方案处理,并保留操作审计。
- 复测健康接口和关键业务,记录故障、影响范围、回滚时间和后续整改项。
5. 发布归档
- 变更单与审批记录
- Git Tag、提交 SHA、镜像摘要和 SBOM
- 测试、扫描、迁移和部署日志
- 上线验证与回滚演练记录