WuKongIM Docs

生产检查清单

在生产切流前检查制品、拓扑、存储、安全、观察、恢复、容量和回滚。

编辑此页报告文档问题

这份清单是生产准入门槛,不是“推荐项”。任何关键项没有负责人、证据或回滚方式时,都应暂停切流。

本页用于新环境首次上线。版本升级必须先确认新旧版本能否混合运行,再按升级与迁移选择滚动升级、维护窗口或独立迁移。

制品与配置

  • 所有节点固定到同一提交 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 接收流量。
  • /readyz503 会自动摘除节点并触发告警。
  • 每个节点的进程、CPU、内存、磁盘、FD、Goroutine 和网络均可观察。
  • 已采集 /metrics,关键 Gateway、Controller、Slot、Channel、存储和投递指标有告警。
  • 日志集中采集、带节点身份、限制保留,不记录敏感 Payload。
  • 告警有值班人、升级路径和对应操作手册。

数据保护与恢复

  • 已定义恢复点目标(RPO)和恢复时间目标(RTO)。
  • 备份覆盖正确节点、数据范围和集群世代,不只复制一个随机目录。
  • 恢复在隔离环境实际演练过,并验证消息读取和新写入。
  • 恢复维护期间 /readyz 不会错误接收业务流量。
  • 已保存当前配置、制品摘要、节点清单和密钥恢复流程。

按照备份与恢复验证当前计划版本和完整归档;没有恢复演练时,不应把“已备份”视为完成。

容量与故障

  • 使用接近真实的在线用户、消息速率、频道数量和大群规模进行容量测试。
  • 测试记录版本、配置、硬件、负载模型、延迟、错误率和资源余量。
  • 队列、并发、内存、FD、磁盘和网络都有明确安全余量与背压预期。
  • 在预生产验证节点退出、重启、磁盘压力和下游 Webhook 失败。
  • 不把单次峰值 QPS 当成长期生产容量。

首次发布与回退

  1. 冻结制品、配置和变更窗口。
  2. 在预生产完成就绪、端到端消息和故障验证。
  3. 按既定首次上线计划启动节点;每个节点通过 /readyz 后再继续。
  4. 小比例切流并观察错误率、延迟、队列和存储。
  5. 扩大流量前确认业务发送、客户端收发、重连同步和 Webhook 边界。
  6. 发现异常时停止推进,摘除新节点并执行预先演练的回滚。

Ready 不等于可上线

/readyz 只证明当前节点满足运行时流量门槛。它不能证明容量、备份、灾难恢复、TLS、权限或业务集成正确;这些证据必须分别完成。

全部通过后,保留清单、日志、指标快照、制品摘要和批准记录,作为本次发布证据。

本页内容