# 部署方案正反例

正例是可执行深度下限；环境名、镜像、阈值、密钥来源和回滚命令必须来自当前平台。

## 正例

- 部署单元：`order-api`，镜像 `registry.example/order-api:${GIT_SHA}`，两个副本
- 密钥：`DB_PASSWORD` 由 Vault 路径 `kv/prod/order-api` 注入，不进入镜像或仓库
- 就绪检查：`GET /ready`，连续 3 次成功后接流量；存活检查 `GET /live`
- 告警：本例按已批准 SLO，5xx 在 5 分钟窗口大于 1%，或 P99 大于 800ms 持续 10 分钟
- 回滚：把 Deployment 镜像切回上一已验证 digest；数据库变更仅在兼容窗口内执行可逆脚本
- 复验：健康检查、下单冒烟、错误率和消费积压均恢复到基线

## 反例

- 使用 Docker 部署
- 密码放环境变量
- 出错时恢复旧版本
- 关注 CPU 和接口性能

问题：没有部署单元、密钥来源、健康判定、告警阈值、回滚对象和复验步骤。

### 升级前置反例

- 升级脚本直接跑迁移——不做 schema 漂移与迁移直改双巡检，存量库的直改与链上版本冲突到中途才炸，回滚面不可控。
- CI push 自动部署带自动 DDL 却未声明触发范围与回滚预案——一次误 push 直接触发生产 schema 变更。

问题：自动通道的能量与治理声明必须配套；未声明的自动化是定时炸弹。

## 迁移到当前项目

替换环境、服务、镜像、变量键、密钥来源、阈值、责任人和恢复步骤。只保留真实存在或本次明确新增的对象，时限与阈值必须来自 SLO、容量评估或演练结果。
