Files
configcenter/REMAINING_TASKS.md

5.1 KiB
Raw Blame History

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.GetConfigConfigService.WatchConfig,复用现有 Store、WatchHub、灰度匹配和 RBAC 逻辑。
  • 在 gRPC 层落实 start_revision 契约:0 表示首次订阅;>0 表示第一个期望接收的 revisionSDK 使用 last_seen_revision + 1 重连revision 已 compact 时返回最新完整快照并从 snapshot_revision + 1 继续监听。
  • 实现 AdminService.PublishConfigAdminService.RollbackConfig,保持与 REST API 相同的 Outbox、审计和权限语义。
  • 增加 JWT metadata unary/stream interceptor、gRPC TLS、健康检查、优雅停机、错误码映射和请求指标。
  • 增加 bufconn 集成测试,覆盖读取、指定 revision 回放、compact 全量恢复、客户端主动断线后重新建流、发布、回滚、无权限和过期令牌。
  • Go/Python SDK 增加 gRPC transportREST/SSE transport 在迁移期继续兼容。

完成标准gRPC 与 REST 对同一配置范围返回一致结果;断线恢复测试无丢失;认证、竞态检查、静态检查和端到端测试全部通过。

P1上线阻断生产 mTLS 与灾备实地验收

  • 签发 etcd server、peer、client 证书,覆盖 etcdetcd.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发布前无未处理的高危依赖或镜像漏洞。

推荐实施顺序

  1. 固定 revision / Watch / Outbox 一致性模型。 已完成。
  2. gRPC 代码生成、服务端和 SDK transport。 已完成。
  3. 审计控制台与用户生命周期,并明确 JWT 即时失效策略。
  4. Redis ADR 和清理/实现。
  5. CI/CD、制品签名、SBOM、漏洞扫描和发布规则。
  6. 预生产 mTLS、备份恢复、故障演练与生产准入验收。