7.4 KiB
7.4 KiB
共享预生产入口交接清单
状态:待共享预生产环境提供方回填
最近更新:2026-05-06
适用项目:projects/ai-customer-service
目标:确保“真实共享预生产 Gate B 复跑”和“真实共享预生产/灰度环境 Gate C 回滚演练”具备可执行入口,而不是停留在口头说明
1. 这份清单解决什么问题
当前项目已经具备:
- 代码级门禁通过
- 本地/容器化 Gate B 通过
- 本地/容器化 Gate C 回滚演练通过
当前仍然缺失的是:
- 真实共享预生产环境 Gate B 复跑入口
- 真实共享预生产/灰度环境 Gate C 回滚演练入口
这里的“入口”不是一个 URL,也不是一句“环境已经有了”,而是:
从当前执行机器出发,能真实操作共享预生产环境的运维通道。
必须能够支持:
- 启动/重启服务
- 查看日志
- 访问 health probe
- 访问真实 PostgreSQL
- 获取真实环境变量来源
- 在该环境执行 Gate B 验证
- 在该环境执行 Gate C 回滚演练
- 留下可复核证据
2. 合格入口类型
满足以下任一类型即可:
2.1 SSH 主机入口
提供:
- 主机地址
- 用户名
- 登录方式
- 项目目录
- 启动/重启命令
- 日志路径
- 服务访问地址
适用场景:
- systemd 服务
- 直接运行二进制
- Docker / Podman 单机部署
2.2 Kubernetes 入口
提供:
kubectl可用kubeconfig或 context- namespace
- deployment / service 名称
- 查看日志权限
- rollout / undo 权限
适用场景:
- Kubernetes Deployment
- StatefulSet
- 多副本灰度切换
2.3 CI/CD 或发布平台入口
提供:
- 预生产部署流水线入口
- 环境变量/Secret 查看或确认方式
- 服务日志查看入口
- 重启/回滚入口
- 部署版本与提交号映射
适用场景:
- GitOps
- 平台托管部署
- 云上控制台发布
3. 不算合格入口的情况
以下情况都不够:
- 只有共享预生产 URL
- 只有数据库只读账号
- 只有监控只读面板
- 只有截图、文档或口头说明
- 只能“看状态”,不能“重启/回滚/留痕”
原因很直接:
Gate B / Gate C 都要求可操作性,不只是可观察性。
4. 入口必须满足的规范要求
4.1 部署对象明确
必须明确服务部署对象:
- systemd service 名称
- Docker / Podman 容器名称
- Kubernetes deployment / rollout 对象
不能只说“服务在那台机器上”,必须能回答:
- 由谁启动
- 怎么重启
- 怎么回滚
- 日志在哪
4.2 环境变量来源明确
必须明确共享预生产如何注入这些变量:
AI_CS_RUNTIME_ENVAI_CS_ADDRAI_CS_POSTGRES_ENABLEDAI_CS_POSTGRES_DSNAI_CS_POSTGRES_MIGRATION_DIRAI_CS_WEBHOOK_SECRETAI_CS_WEBHOOK_TIMESTAMP_HEADERAI_CS_WEBHOOK_SIGNATURE_HEADERAI_CS_WEBHOOK_MAX_SKEW_SECONDS
基线文档:
必须至少能回答:
- 变量值从哪里来
- 谁负责维护
- 如何在不泄露明文 secret 的前提下确认其已正确注入
4.3 数据库必须是共享预生产真实库
不能使用:
- 本地测试库
- 临时容器库
- 开发库
必须使用共享预生产 PostgreSQL,才能证明:
- migration 基线真实可用
- ticket 入库真实可用
- audit 入库真实可用
- dedup 入库真实可用
4.4 必须具备最小操作权限
入口必须允许执行以下动作:
- 启动或重启当前版本
- 查看最近日志
- 访问
/actuator/health/live - 访问
/actuator/health/ready - 读取当前部署版本/镜像/tag/commit
- 执行回滚动作
- 验证回滚后主链恢复
4.5 必须可留痕
至少保留以下证据:
summary.txt- 服务日志路径
- 部署版本 / 提交号
- 健康检查结果
- Gate B / Gate C 执行命令
- 回滚前后版本信息
- 必要时数据库验证摘要
5. Gate B 所需最小入口要求
如果当前只想完成“真实共享预生产 Gate B 复跑”,入口最少要具备:
- 共享预生产服务启动权限
- 共享预生产 PostgreSQL 可连
- 真实
AI_CS_*环境变量可确认 - 服务地址可访问
- 日志可读
执行入口:
对应证据模板:
6. Gate C 所需额外入口要求
如果要完成“真实共享预生产/灰度环境 Gate C 回滚演练”,除 Gate B 外还必须额外明确:
- 坏发布怎么制造
- 错误配置
- 错误 DSN
- 错误 Secret
- 错误镜像/tag
- 回滚对象是谁
- systemd service
- container
- deployment
- 标准回滚动作是什么
systemctl restart ...docker/podman restart ...kubectl rollout undo ...
- 恢复完成如何判定
live/ready恢复- signed webhook 重新返回
200 - ticket / audit / dedup 重新恢复写入
执行入口:
对应证据模板:
7. 共享预生产入口交接模板
请环境提供方至少按下面模板回填:
共享预生产入口类型:
- SSH / Kubernetes / CI-CD
如果是 SSH:
- 主机地址:
- 用户名:
- 登录方式:
- 项目目录:
- 服务启动命令:
- 服务重启命令:
- 服务停止命令:
- 日志路径:
- 服务访问地址:
- 环境变量来源文件或注入方式:
如果是 Kubernetes:
- kubeconfig/context:
- namespace:
- deployment 名称:
- service 名称:
- ingress / 访问地址:
- 查看日志命令:
- 重启命令:
- 回滚命令:
- Secret / ConfigMap 名称:
如果是 CI/CD:
- 平台名称:
- 流水线入口:
- 发布目标环境名称:
- 当前部署版本查看方式:
- 日志查看入口:
- 回滚入口:
数据库:
- 是否为共享预生产 PostgreSQL:
- DSN 获取方式:
- migration 目录所在位置:
Gate B 执行责任人:
- 负责人:
- 计划时间:
Gate C 回滚演练责任人:
- 负责人:
- 计划时间:
证据归档位置:
- summary.txt:
- service.log:
- 版本信息:
- 回滚记录:
8. 当前项目的真实阻断
截至 2026-05-06,当前执行机器上已确认:
- 没有
kubectl - 没有
~/.kube/config - 没有共享预生产专用
AI_CS_*环境 - 仓库内没有共享预生产部署清单
因此当前阻断不是:
- Gate B/Gate C 脚本缺失
- 本地演练能力缺失
- 门禁文档缺失
而是:
真实共享预生产环境运维入口未交接。
9. 当前结论
当前可以准确表达为:
- 代码级门禁:通过
- 本地/容器化 Gate B:通过
- 本地/容器化 Gate C 回滚演练:通过
- 真实共享预生产 Gate B:待共享预生产入口交接后执行
- 真实共享预生产/灰度环境 Gate C:待共享预生产入口交接后执行
没有入口,不应宣称“真实共享预生产已验证”;有入口后,才可以继续执行真实 Gate B / Gate C。