docs(docs): 更新 issue 仲裁状态 + 生成集成测试阶段规划
Some checks failed
CI / quality-ts (push) Failing after 53s
CI / quality-go (push) Failing after 7s
CI / quality-proto (push) Failing after 3s
CI / deploy (push) Has been skipped

- 14 个 issue.md 状态字段更新为"已裁决"
  - 对应 coord.md ARB-001~022 章节
  - 共 104 处状态字段更新
- 新增 integration-test-phase.md
  - 集成测试与部署验证阶段(P7)规划
  - 6 个批次任务分解
  - 8 条核心 E2E 链路定义
  - 验收标准和退出标准

Coord-AI
This commit is contained in:
SpecialX
2026-07-10 22:05:37 +08:00
parent 8a01d0b8fc
commit c6362f4b04
15 changed files with 285 additions and 125 deletions

View File

@@ -0,0 +1,160 @@
# 集成测试与部署验证阶段P7
> 日期2026-07-10
> 前置条件:所有模块 P2-P6 代码完成lint/typecheck/go vet/ruff 全通过ARB-001~022 全部已裁决
> 目标:从"代码完成"到"系统可用",验证端到端功能链路
---
## 1. 阶段概述
15 AI 全并行开发模式下,各模块独立编码,使用 mock 桩进行本地验证。本阶段目标是**将所有模块集成到真实基础设施中,验证端到端功能链路**。
### 前置状态
| 检查项 | 状态 |
| ------------------------------------ | --------------------------- |
| lintpnpm run lint | ✅ 全通过 |
| typecheckpnpm run typecheck | ✅ 16 包/服务全通过 |
| go vetapi-gateway + push-gateway | ✅ 全通过 |
| ruff checkai + data-ana | ✅ 全通过 |
| proto 契约buf lint | ✅ 通过 |
| 仲裁ARB-001~022 | ✅ 95 条全部已裁决 |
| packages/contracts | ✅ 已建立ADMIN_* 权限点) |
### 当前差距
- 各模块使用 mock 桩,尚未在真实 gRPC/MySQL/Redis/Kafka 环境中验证
- 服务间 gRPC 调用链路未实际跑通
- 前端与 BFF 的 GraphQL 通信未端到端验证
- Docker Compose 全量部署未验证
- 健康检查端点(/healthz + /readyz未在容器环境验证
---
## 2. 阶段任务分解
### 批次 0基础设施就绪
**目标**:确保 Docker Compose 全量基础设施可启动。
| 任务 | 验证标准 |
| -------------------------------------------------------- | ----------------------------------------- |
| MySQL + Redis + Kafka + Neo4j + ClickHouse + ES 容器健康 | `docker compose up -d` 全量容器 `healthy` |
| 数据库 schema 初始化脚本 | 各服务 schema 迁移脚本可执行 |
| Kafka topic 创建脚本 | 全部 topicARB-013 命名)可创建 |
| Debezium CDC connector 配置 | MySQL → Kafka CDC 链路通畅 |
### 批次 1后端服务启动
**目标**:每个后端服务能在 Docker 环境中启动并通过健康检查。
| 服务 | 端口 | 验证标准 |
| ----------------------------- | ---- | ---------------------- |
| api-gatewayGo | 8080 | /healthz 返回 200 |
| push-gatewayGo | 8081 | /healthz 返回 200 |
| iamTS/gRPC 50052 | 3001 | /healthz + gRPC 可连接 |
| classesTS | 3002 | /healthz 返回 200 |
| core-eduTS/gRPC 50053 | 3004 | /healthz + gRPC 可连接 |
| contentTS/gRPC 50054 | 3005 | /healthz + gRPC 可连接 |
| msgTS/gRPC 50056 | 3006 | /healthz + gRPC 可连接 |
| data-anaPython/gRPC 50055 | 3007 | /healthz + gRPC 可连接 |
| aiPython/gRPC 50058 | 3008 | /healthz + gRPC 可连接 |
### 批次 2BFF 层启动
**目标**3 个 BFF 能启动并连接下游 gRPC 服务。
| 服务 | 端口 | 验证标准 |
| ---------------------- | ---- | -------------------------- |
| teacher-bffGraphQL | 3003 | /graphql Playground 可访问 |
| student-bffGraphQL | 3009 | /graphql Playground 可访问 |
| parent-bffGraphQL | 3010 | /graphql Playground 可访问 |
### 批次 3前端启动
**目标**4 个前端能启动并连接对应 BFF。
| 应用 | 端口 | 验证标准 |
| -------------- | ---- | ------------ |
| teacher-portal | 4000 | 登录页可访问 |
| student-portal | 4001 | 登录页可访问 |
| parent-portal | 4002 | 登录页可访问 |
| admin-portal | 4003 | 登录页可访问 |
### 批次 4端到端功能验证
**目标**:核心业务链路端到端跑通。
| 链路 | 涉及服务 | 验证标准 |
| -------- | --------------------------------------- | ------------------------------ |
| 教师登录 | teacher-portal → api-gateway → iam | 获取 JWT → 侧边栏按角色渲染 |
| 创建考试 | teacher-portal → teacher-bff → core-edu | 考试落库 → Outbox 事件 → Kafka |
| 学生作答 | student-portal → student-bff → core-edu | 提交落库 → 事件发布 |
| 教师批改 | teacher-portal → teacher-bff → core-edu | 成绩落库 → GradeReleased 事件 |
| 学情分析 | student-portal → student-bff → data-ana | ClickHouse 宽表查询 < 5s |
| 知识图谱 | teacher-portal → teacher-bff → content | Neo4j 查询秒级返回 |
| 消息推送 | msg → push-gateway → WebSocket | 在线学生实时收到通知 |
| AI 辅助 | teacher-portal → teacher-bff → ai | 流式 SSE 正常返回 |
### 批次 5可观测性验证
**目标**:三支柱(日志 + 指标 + 链路)在集成环境中可用。
| 检查项 | 验证标准 |
| --------------- | --------------------------------------- |
| Prometheus 抓取 | 所有服务 /metrics 端点可抓取 |
| Grafana 面板 | 核心指标面板可查看 |
| 全链路 trace | 一个请求的 trace 可在 Jaeger 追踪全链路 |
| 结构化日志 | 所有服务日志 JSON 格式输出到 stdout |
---
## 3. 执行策略
### 并行度
```
批次 0基础设施 → 批次 1后端 → 批次 2BFF → 批次 3前端 → 批次 4E2E → 批次 5可观测性
| | | | | |
独立 9 服务并行 3 BFF 并行 4 前端并行 8 链路并行 独立
```
### 问题修复策略
- 发现的问题记录到 `docs/troubleshooting/known-issues.md` 对应模块分区
- 跨模块问题通过 `docs/architecture/issues/objections/[模块名]_issue.md` 提请仲裁
- coord 负责仲裁,开发 AI 在各自分支修复
### 风险点
| 风险 | 影响 | 缓解策略 |
| ----------------------------- | ---------------- | ---------------------------- |
| gRPC proto 生成代码版本不一致 | 服务间调用失败 | 批次 1 统一 `buf generate` |
| MySQL schema 冲突 | 数据库初始化失败 | 批次 0 逐服务验证 schema |
| Kafka topic 命名不一致 | 消费者收不到事件 | 对照 ARB-013 统一检查 |
| 端口冲突 | 服务无法启动 | 对照 port-allocation.md 检查 |
| 前端 MF 配置不匹配 | 微前端加载失败 | 批次 3 验证 MF config |
---
## 4. 验收标准
| 验收项 | 标准 |
| ----------------------- | -------------------------------------- |
| Docker Compose 全量启动 | 所有容器 `healthy` |
| 核心链路 E2E | 8 条核心链路全部跑通 |
| 健康检查 | 所有服务 /healthz + /readyz 返回 200 |
| 可观测性 | Prometheus + Grafana + Jaeger 数据可见 |
| 错误处理 | ActionState 信封格式一致 |
| 权限校验 | 未授权请求返回 401/403 |
---
## 5. 退出标准
- 全量 Docker Compose 启动成功
- 8 条核心业务链路端到端跑通
- 三支柱可观测性可用
- 无阻塞性 bug
- 打 tag `v0.6.0-integration`