# 生产就绪检查表 ## 架构与一致性 - [ ] Gateway 热路径依赖审计确认无 PostgreSQL、Redis、Provider 或模板执行。 - [ ] 每个 Proxy 同一时刻最多归属一个 Worker,ownership epoch 单调。 - [ ] Reserved -> Active 使用单个原子转换,无超卖与负计数。 - [ ] Sequential 并发 Empty 只切换一次,旧 Upstream Proxy 自然耗尽。 - [x] `pool.maxSize` 与 `fetch.maxTotal` 分别按当前库存和累计获取计数。 - [ ] Extract 只有 `AVAILABLE -> EXTRACTED`,OpenAPI 不存在 release/renew。 - [ ] Extract 状态更新和短期幂等结果位于同一个 Redis 原子操作。 - [ ] PostgreSQL 中不存在 Proxy 明细或逐次提取记录。 - [ ] `partial` 和 `allOrNothing` 均通过 Redis 原子并发测试。 - [ ] `reserveForGateway` 在所有提取路径上统一执行。 ## 安全 - [ ] 非回环监听均配置 Auth 或 allowCIDRs,严格模式已开启。 - [ ] Gateway、Distribution、Admin 凭据和权限相互独立。 - [ ] trusted proxy 只包含受控 LoadBalancer/Ingress 网段。 - [ ] 解析前后均拦截私网、回环、链路本地、元数据地址与 DNS Rebinding。 - [ ] Secret 由外部密钥系统注入,镜像、ConfigMap、日志没有明文。 - [ ] 所有 Controller 使用同一枚至少 32 字节的独立配置 HMAC 密钥,并完成轮换演练。 - [ ] Pod 以非 root、只读根文件系统、无 Linux capabilities 运行。 - [ ] NetworkPolicy 默认拒绝,外部数据库/Redis/Provider 网段已收紧。 - [ ] Provider 模板有响应大小、执行时间、函数与外部访问限制。 ## 可用性 - [ ] PostgreSQL 跨可用区,有监控、备份和恢复演练证据。 - [ ] Redis 跨可用区并受监控,完成丢失后由 Provider 重建活动池的演练。 - [ ] Gateway、Controller、Checker 均跨主机/可用区分散。 - [ ] PDB、优雅终止与最大连接时长的组合经过驱逐测试。 - [ ] Controller 断线时 Gateway 在 `maxStaleAge` 内继续,超限拒绝新请求。 - [ ] Worker 崩溃后 ownership 只在租约过期后再分配。 - [ ] Snapshot 版本缺口触发全量同步,旧 Delta 被拒绝。 ## 性能 - [ ] 单 Worker 基准使用生产同规格硬件、网络、TLS 和 Snapshot 规模。 - [ ] 完成 10k 稳态、100k 峰值、CONNECT 活跃连接和建连速率独立测试。 - [ ] 在最大可用区失效时仍满足容量和延迟 SLO。 - [ ] 目标利用率不高于 60%,HPA 缩容稳定窗口不低于 10 分钟。 - [ ] 队列、buffer、日志和结果上报全部有界。 - [ ] p99 Dispatch 预算、端到端延迟、错误率、CPU、RSS、FD 和网络有原始证据。 ## 观测与值班 - [ ] 仪表盘覆盖 Gateway、Routing、Upstream、Provider、Extract、Snapshot、Checker。 - [ ] 告警有负责人、严重级别、Runbook 链接和演练记录。 - [ ] 指标无 Proxy IP、Client ID、Session、完整 URL 或 request ID 高基数标签。 - [ ] 日志脱敏已用真实 Secret fixture 验证。 - [ ] 值班人员完成 PostgreSQL、Redis、Snapshot、容量与 Extract 故障演练。 ## 发布门禁 - [ ] `go test ./...`、race、vet、build 全部通过。 - [ ] OpenAPI/Proto 兼容检查通过。 - [ ] Compose、Kustomize、Prometheus、HAProxy 配置静态校验通过。 - [ ] 数据库迁移已在生产数据量副本上演练,并有回退或前向修复方案。 - [ ] 100k QPS 验证报告包含环境、命令、版本、场景、原始指标和结论。 任一关键一致性、安全或恢复项未完成时,不标记生产就绪。