proxy-pool/docs/operations/production-readiness.md

65 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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