Day 20 / 共 20 天 · 第 4 周 前端/部署
收官串讲:全栈全貌 + 五站串联
恭喜坚持到最后一天!今天把 Console 的四周内容收成一条主线,再把整个 higress-group 系列(Envoy→Istio→Higress→Console)串起来——你将看清"一个 AI 网关产品"从数据面到管理界面的完整全貌。
📍 你在整门课的位置 · 第 4 周 前端/部署(Day 16-20)· 🎓 最后一天
D16 前端技术栈→
D17 前端结构→
D18 动态表单→
D19 部署→
D20 收官串讲
L01
一句话回顾
💡 一句话本质:Console = 网关的"驾驶舱 + 翻译官"
你在网页上点点点(驾驶舱),Console 把每个操作翻译成 K8s 原生对象(翻译官),写进 K8s;剩下的交给上一站的 Higress 控制器去执行。它是"人机接口",从不直接碰 Envoy。
📝 举个例子(一次操作的归宿)
你在界面建一条路由
/order → order-service,点保存 → Console 生成一个带 higress.io/* 注解的 Ingress 写进 K8s。就这么简单——所有配置(路由/域名/证书/插件/AI/消费者/MCP)都是这套"点击 → K8s 对象"。Higress Console = Spring Boot(console 模块:Web/REST/鉴权/仪表盘)+ 纯 Java SDK(sdk 模块:封装 K8s client)+ React 前端。
所有网关配置(路由/域名/证书/插件/AI/消费者/MCP)都被翻译成 K8s 原生对象(Ingress+注解、ConfigMap、Secret、WasmPlugin/McpBridge/EnvoyFilter CRD)写入 K8s,由 Higress 控制器 watch 后下发;仅少量只读运维数据(服务发现列表、endpoint)通过 HTTP 直连控制器
所有网关配置(路由/域名/证书/插件/AI/消费者/MCP)都被翻译成 K8s 原生对象(Ingress+注解、ConfigMap、Secret、WasmPlugin/McpBridge/EnvoyFilter CRD)写入 K8s,由 Higress 控制器 watch 后下发;仅少量只读运维数据(服务发现列表、endpoint)通过 HTTP 直连控制器
/debug/*。Console 是"人机接口",不碰 Envoy。L02
四周主线
🧠 一句口诀记住四周
「搭骨架 → 落 K8s → 编插件 → 画界面」:第 1 周搭后端骨架、第 2 周把一切落成 K8s 资源、第 3 周把 AI/插件/鉴权/MCP 这些高层能力编排成底层插件、第 4 周画前端界面并打包部署。四周合起来就是"把网页点击变成集群里生效的网关配置"这一件事。
第 1 周 后端架构:全栈打包 → Spring Boot 启动 → 三层分层 → REST API → 切面(鉴权/异常)。核心:
SdkConfig 桥接 console↔sdk。第 2 周 SDK 与存储:门面 + 手写 DI → 存储=薄封装 → K8s 客户端 → 领域模型 → "创建路由"端到端。核心:一切落 K8s。
第 3 周 AI/插件/消费者:AI 一对多编排 → 插件定义/实例 → 消费者=key-auth 实例 → 服务源=McpBridge → MCP 双策略工厂。核心:高层抽象→底层资源。
第 4 周 前端/部署:ice.js/React → 结构与页面 → schema 动态表单 → Docker/Helm。核心:schema 驱动 UI + 配置注入闭环。
L03
全栈请求链(把四周串成一条)
全栈请求链:①②在前端、③④⑤在后端、⑥交给上一站——从用户点击到流量生效,每一段你都学过了。
① 浏览器:路由页抽屉填表 + 权重校验(第4周)
→ ② 前端 service + request 拦截器带 token POST /v1/routes(第4周)
→ ③ RoutesController 校验 + 切面鉴权(第1周)
→ ④ RouteServiceImpl.add 编排 + writeAuthConfigResources(第2/3周)
→ ⑤ route2Ingress 转注解 + createIngress 写 K8s(第2周)
→ ⑥(离开 Console)Higress 控制器 watch → Istio 配置 → xDS → Envoy 生效
读法:①②在前端,③④⑤在后端,⑥交给上一站。这条链就是全课的"任督二脉"——从用户点击到流量生效,每一段你都学过了。
L04
五大设计智慧
- 无数据库,一切存 K8s:复用 K8s 的持久化/watch/一致性,Console 天然无状态可扩。
- SDK 不依赖 Spring:业务能力与 Web 框架解耦,SDK 可独立复用。
- 高层抽象 → 底层资源编排:一条 AI 路由展开成 Ingress + 多插件 + EnvoyFilter,用户无感。
- 策略模式 + 注册表:LLM Provider Handler、MCP 双策略工厂——加新类型不改老代码(开闭原则)。
- schema 驱动 UI:后端给 JSON Schema,前端动态渲染表单,加新插件前端零改动。
这些智慧能迁移到你的项目吗?
能!"用现成基础设施当存储"(无数据库)、"核心逻辑不绑框架"(可复用 SDK)、"用注册表 + 策略应对多类型"、"用 schema 驱动动态 UI"——这四条几乎适用于任何管理后台。看懂 Console 怎么用,你就能在自己的项目里照搬。
L05
higress-group 五站串讲
👶 小白 vs 👨🏫 老师
👶:学了这么多站——Envoy、Istio、Higress、Console,它们到底谁听谁的?
👨🏫:想象一家餐厅:Console 是点菜的平板(顾客下单),Higress 是把订单翻译成后厨流程的经理,Istio 是把流程贴到各灶台的传菜系统,Envoy 是真正颠勺出菜的厨师,wasm-go 插件是厨师手里的定制工具。
👶:那配置是怎么一路传下去的?
👨🏫:Console 写成 K8s 对象 → Higress Core watch 到、翻成 Istio 配置 → 经 xDS 下发给 Envoy → Envoy 执行流量。Console 是入口、Envoy 是出口,中间三层层层翻译。
👨🏫:想象一家餐厅:Console 是点菜的平板(顾客下单),Higress 是把订单翻译成后厨流程的经理,Istio 是把流程贴到各灶台的传菜系统,Envoy 是真正颠勺出菜的厨师,wasm-go 插件是厨师手里的定制工具。
👶:那配置是怎么一路传下去的?
👨🏫:Console 写成 K8s 对象 → Higress Core watch 到、翻成 Istio 配置 → 经 xDS 下发给 Envoy → Envoy 执行流量。Console 是入口、Envoy 是出口,中间三层层层翻译。
Envoy数据面
C++ 代理,执行流量
C++ 代理,执行流量
Istio控制面
istiod 生成 xDS
istiod 生成 xDS
HigressAI 网关
Core 喂配置给 istiod
Core 喂配置给 istiod
Console管理界面
生成 K8s 配置(本课)
生成 K8s 配置(本课)
wasm-go插件 SDK
写扩展插件(下一站)
写扩展插件(下一站)
五站怎么协作(一条完整链):
你在 Console 点点点(本课) → 写成 K8s Ingress+CRD → Higress Core watch 到、翻译成 Istio 配置 → 经 MCP-over-xDS 喂给 istiod(Istio) → istiod 生成 xDS 下发给 Envoy → Envoy 执行流量 + 运行 wasm-go 写的插件。
Console 是"入口",Envoy 是"出口",中间三层把配置层层翻译落地。
你在 Console 点点点(本课) → 写成 K8s Ingress+CRD → Higress Core watch 到、翻译成 Istio 配置 → 经 MCP-over-xDS 喂给 istiod(Istio) → istiod 生成 xDS 下发给 Envoy → Envoy 执行流量 + 运行 wasm-go 写的插件。
Console 是"入口",Envoy 是"出口",中间三层把配置层层翻译落地。
L06
待改进的 TODO(练手好素材)
- 后端 JSONSchema 校验是空 TODO(
WasmPluginConfig.validateAndCleanUp,Day 12)——可引入 json-schema-validator 做真正的服务端校验。 - 自定义插件的
queryConfig/queryReadme也是 TODO(返回空)——可实现从 CRD/OCI 读取自定义插件的 schema。 - 鉴权只支持 key-auth(Day 13)——可新增
CredentialHandler实现 jwt-auth 并注册。
读法:这些不是缺陷,而是清晰的扩展点——想给开源社区贡献代码,或练手真实工程,这三个是绝佳入口。
L07
学习路径建议
如果你要基于 Higress 做二次开发,建议顺序:
- 先跑起来:
helm install部署一套,界面点一圈,感性认识。 - 抓一个功能通读:以"路由"为例,前端 route 页 → service → 后端 Controller → RouteServiceImpl → Converter → K8s,端到端走一遍。
- 动手改一个 TODO:从上面三个里挑一个实现,跑通测试。
- 对照上一站 Higress:看你在 Console 建的资源,怎么被 Higress 控制器消费。
L08
毕业 + 动手
🎓 20 天后,你已经能
- 说清 Console 的全栈架构和"一切存 K8s"的核心设计。
- 追踪任意一个功能从界面到 K8s 的完整链路。
- 看懂 AI 路由的一对多编排、插件的 schema 动态表单、鉴权的 allow list 机制。
- 把 Envoy→Istio→Higress→Console 五站串成一个 AI 网关产品的全貌。
✋ 毕业动手
# 通读一个功能的完整链路(以路由为例)
cd /Users/bitmart/work/codes/github/higress-group/higress-console
echo "前端:" && ls frontend/src/pages/route/ frontend/src/services/route.ts
echo "后端:" && ls backend/console/src/main/java/com/alibaba/higress/console/controller/RoutesController.java
echo "SDK:" && ls backend/sdk/src/main/java/com/alibaba/higress/sdk/service/RouteServiceImpl.java
# 挑一个 TODO 动手实现,向社区提 PR
下一站预告:higress-group 系列最后一站 wasm-go——Higress 插件开发 SDK,学会自己写 Wasm 插件(
SetCtx/三级 Context/RuleMatcher)。学完你就能给这个 AI 网关加自定义能力了。