生产检查清单
在生产切流前检查制品、拓扑、存储、安全、观察、恢复、容量和回滚。
这份清单是生产准入门槛,不是“推荐项”。任何关键项没有负责人、证据或回滚方式时,都应暂停切流。
本页用于新环境首次上线。版本升级必须先确认新旧版本能否混合运行,再按升级与迁移选择滚动升级、维护窗口或独立迁移。
制品与配置
- 所有节点固定到同一提交 SHA 和制品摘要。
- 构建工具链、依赖获取方式和制品保留策略可重复。
- 每个节点显式使用
-config,配置版本进入发布记录。 -
wukongim.toml能由当前二进制加载,不含未知字段。 -
WK_*覆盖值已审计;列表按 JSON 整体替换。 - 配置、日志和诊断输出不会泄漏完整密钥。
拓扑与存储
- 每个部署都按集群处理;节点 ID、数据目录和 Transport 地址唯一。
-
hash_slot_count = 256,副本数与节点数和故障域匹配。 - 节点清单、集群 ID 和副本策略在所有节点一致。
- 节点 Transport 双向可达,但不对无关网络开放。
- 每个节点使用独立持久盘,容量、IO 延迟、inode 和磁盘满告警已配置。
- 容器或进程重建不会删除数据、日志或必要状态。
网络与安全
- 客户端 TCP/WS/WSS 广告地址从目标网络真实可达。
- TLS 在负载均衡、代理或服务网格层正确终止并验证。
- 产品 HTTP API 位于受信网络或经过外部鉴权代理。
- Manager 开启认证,固定账号、密码和 JWT Secret 已替换。
- Join Token 和其他能力凭据由秘密系统分发并可轮换。
- Manager、指标、Debug、Benchmark、诊断和 Transport 分别执行最小暴露。
- Benchmark 和 Debug API 默认关闭;临时诊断有审批、时限和审计。
就绪、观察与告警
- 负载均衡使用
/readyz,不会用/healthz接收流量。 -
/readyz的503会自动摘除节点并触发告警。 - 每个节点的进程、CPU、内存、磁盘、FD、Goroutine 和网络均可观察。
- 已采集
/metrics,关键 Gateway、Controller、Slot、Channel、存储和投递指标有告警。 - 日志集中采集、带节点身份、限制保留,不记录敏感 Payload。
- 告警有值班人、升级路径和对应操作手册。
数据保护与恢复
- 已定义恢复点目标(RPO)和恢复时间目标(RTO)。
- 备份覆盖正确节点、数据范围和集群世代,不只复制一个随机目录。
- 恢复在隔离环境实际演练过,并验证消息读取和新写入。
- 恢复维护期间
/readyz不会错误接收业务流量。 - 已保存当前配置、制品摘要、节点清单和密钥恢复流程。
按照备份与恢复验证当前计划版本和完整归档;没有恢复演练时,不应把“已备份”视为完成。
容量与故障
- 使用接近真实的在线用户、消息速率、频道数量和大群规模进行容量测试。
- 测试记录版本、配置、硬件、负载模型、延迟、错误率和资源余量。
- 队列、并发、内存、FD、磁盘和网络都有明确安全余量与背压预期。
- 在预生产验证节点退出、重启、磁盘压力和下游 Webhook 失败。
- 不把单次峰值 QPS 当成长期生产容量。
首次发布与回退
- 冻结制品、配置和变更窗口。
- 在预生产完成就绪、端到端消息和故障验证。
- 按既定首次上线计划启动节点;每个节点通过
/readyz后再继续。 - 小比例切流并观察错误率、延迟、队列和存储。
- 扩大流量前确认业务发送、客户端收发、重连同步和 Webhook 边界。
- 发现异常时停止推进,摘除新节点并执行预先演练的回滚。
Ready 不等于可上线
/readyz 只证明当前节点满足运行时流量门槛。它不能证明容量、备份、灾难恢复、TLS、权限或业务集成正确;这些证据必须分别完成。
全部通过后,保留清单、日志、指标快照、制品摘要和批准记录,作为本次发布证据。