5.1 KiB
5.1 KiB
Config Center 后续任务
更新时间:2026-08-30
当前基线已经完成 REST/SSE 管理面与运行时分发、PostgreSQL Outbox、etcd、JWT/RBAC、灰度规则、Web Console、Go/Python SDK、监控告警、压测和 Kubernetes 高可用清单。本文件仅记录尚未完成或必须在真实生产环境验收的工作。
P1(功能阻断):实现正式 gRPC 服务
- 固定 Runtime revision / Watch / Outbox 一致性模型:统一使用 etcd MVCC revision;普通断线从未消费 revision 继续;仅 compact 时回退到
FULL_SYNC,见docs/adr/0001-runtime-revision-watch.md。 - 为
api/proto/configcenter/v1/config.proto增加可重复执行的 Go/Python 代码生成流程,并在 CI 中检查生成代码未漂移。 - 实现
ConfigService.GetConfig与ConfigService.WatchConfig,复用现有 Store、WatchHub、灰度匹配和 RBAC 逻辑。 - 在 gRPC 层落实
start_revision契约:0表示首次订阅;>0表示第一个期望接收的 revision;SDK 使用last_seen_revision + 1重连;revision 已 compact 时返回最新完整快照并从snapshot_revision + 1继续监听。 - 实现
AdminService.PublishConfig与AdminService.RollbackConfig,保持与 REST API 相同的 Outbox、审计和权限语义。 - 增加 JWT metadata unary/stream interceptor、gRPC TLS、健康检查、优雅停机、错误码映射和请求指标。
- 增加 bufconn 集成测试,覆盖读取、指定 revision 回放、compact 全量恢复、客户端主动断线后重新建流、发布、回滚、无权限和过期令牌。
- Go/Python SDK 增加 gRPC transport;REST/SSE transport 在迁移期继续兼容。
完成标准:gRPC 与 REST 对同一配置范围返回一致结果;断线恢复测试无丢失;认证、竞态检查、静态检查和端到端测试全部通过。
P1(上线阻断):生产 mTLS 与灾备实地验收
- 签发 etcd server、peer、client 证书,覆盖
etcd、etcd.configcenter.svc.cluster.local和*.etcd-peer.configcenter.svc.cluster.local。 - 在预生产三节点集群验证双向 TLS、证书轮换、NetworkPolicy、节点滚动重启和 quorum 故障恢复。
- 将 etcd snapshot 与 PostgreSQL dump 从集群内 PVC 复制到异地对象存储,配置加密、保留周期和失败告警。
- 定期演练 etcd snapshot restore 与 PostgreSQL restore,记录实际 RPO/RTO 和恢复操作手册。
- 替换 Kubernetes 清单中的镜像、域名、存储类和资源参数占位值,使用不可变镜像 digest。
完成标准:预生产恢复演练成功;备份可校验、可恢复且有告警;证书轮换期间配置读取和 Watch 不发生不可接受的中断。
P2:审计控制台与用户生命周期
- 为审计日志 API 增加 actor、action、target type、时间范围和游标分页过滤。
- Web Console 增加审计页面、筛选条件、详情查看和分页。
- 增加用户启用/禁用、密码重置和删除接口及管理页面。
- 防止删除或禁用最后一个管理员,并限制用户破坏自己的当前管理会话。
- 明确 JWT 即时失效策略:用户禁用、密码重置或权限收回后,已签发令牌必须在定义的时限内失效,并补齐对应测试。
- 用户状态、密码重置和角色变更全部写入审计日志;补齐 PostgreSQL、内存 Store 和 HTTP 权限测试。
完成标准:管理员可完整管理用户生命周期并追溯操作;越权、最后管理员保护和令牌失效场景都有自动化测试。
P2:明确 Redis 去留
- 编写 ADR,确认是否确实需要跨实例缓存、发布状态通知或事件总线。
- 若无明确场景,从 Compose、架构说明和依赖中移除 Redis,避免产生无效运维成本。
- 若保留 Redis,定义一致性边界、失效策略、故障降级、TLS/认证、监控和容量指标,并实现对应测试。
完成标准:生产架构中不存在“已部署但未使用”的 Redis;保留时必须有明确调用链和故障演练。
P3:发布工程化
- CI 执行 Go 单元测试与 race、golangci-lint、前端构建、YAML/Compose 校验和生成代码漂移检查。
- 构建并签名多架构镜像,生成 SBOM,执行依赖和镜像漏洞扫描。
- 建立版本号、变更日志、数据库 migration 发布规则及回滚准入检查。
- 在预生产执行持续压测和故障注入,验证 p95、错误率、Outbox 积压和 Watch 重连告警。
完成标准:主分支 CI 全部通过;发布产物可追溯、可验证、可回滚;预生产持续压测和故障注入达到既定 SLO;发布前无未处理的高危依赖或镜像漏洞。
推荐实施顺序
固定 revision / Watch / Outbox 一致性模型。已完成。gRPC 代码生成、服务端和 SDK transport。已完成。- 审计控制台与用户生命周期,并明确 JWT 即时失效策略。
- Redis ADR 和清理/实现。
- CI/CD、制品签名、SBOM、漏洞扫描和发布规则。
- 预生产 mTLS、备份恢复、故障演练与生产准入验收。