3.5 KiB
3.5 KiB
生产就绪检查表
架构与一致性
- Gateway 热路径依赖审计确认无 PostgreSQL、Redis、Provider 或模板执行。
- 每个 Proxy 同一时刻最多归属一个 Worker,ownership epoch 单调。
- Reserved -> Active 使用单个原子转换,无超卖与负计数。
- Sequential 并发 Empty 只切换一次,旧 Upstream Proxy 自然耗尽。
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 验证报告包含环境、命令、版本、场景、原始指标和结论。
任一关键一致性、安全或恢复项未完成时,不标记生产就绪。