四级渐进学习法 · 管控治理 · 第 7/9 篇

控制面只发令,不碰流量。

十万级终端的系统,最怕的不是坏,是坏的时候停不下来。本页讲治理三件套:灰度(先给谁)、熔断(什么时候停)、回滚(怎么退回来)——加上多机房对等与配置热更新,构成「全局的手」。

白名单 → 逐环放量 失败率超标 → 自动暂停 rollout undo --to-revision=N 多机房对等 · 断网自治
THE FRAMEWORK

先看地图,再出发THE FRAMEWORK — 链路的「手」,不在链路上

七跳链路是数据面,本页讲的是链路之外的控制面:全局管控平台、Nacos、灰度策略、多机房对等。它不碰一条日志流量,却决定每一条日志的采集方式——终端 Agent → envoy → gateway → Kafka → Flink → std topic → StarRocks,每一跳的配置都由它下发。

L1

受控语言

二十九句确定性短句,分四组:控制面定位、灰度三要素、配置与注册、升级与回滚。

例:「失败率超标自动暂停放量。」
L2

结构图

三张图:灰度漏斗(可点击五环节)、熔断回滚状态机、多机房对等拓扑。

例:状态机里「熔断暂停」之后只有两条出路。
L3

交互网页

灰度沙盘:拖放量比例与失败率两个滑杆,看五环放量图实时变化;失败率过 5% 触发熔断,可用回滚/续放按钮处置。加六题自测。

例:把失败率拖到 6%,看什么颜色。
L4

定制视频

六镜头「全局的手」:俯瞰机房、灰度波纹、熔断阀、回卷、断网自治、收尾。成片已交付 · 01:34。

例:一支片子讲完「停得下来」。

本页名片(一分钟版)

主角:全局管控平台 + Nacos(3 节点)
一句话:控制面只发令,不碰日志流量。
三件套:灰度(白名单起)· 熔断(失败率超标自动停)· 回滚(--to-revision)。
兜底:多机房对等,断网时本地策略独立运行。

namespace audit-release配置热更新不中断采集

一句话主线(背下来,全页都在展开它)

管控平台下发策略 → 白名单 → 逐环放量(1%→10%→50%→100%)→ 观测失败率 → 超标自动熔断暂停 → 人工判定 → 修复续放 / rollout undo --to-revision=N 回滚

L1 CONTROLLED LANGUAGE

受控语言:二十九句讲清治理简短、确定、一词一义——不靠形容词,只靠事实

以下每句话都来自交接材料(设计方案 v5、部署手册)。读不懂的句子,去 L2 找对应的结构图。

控制面定位

§ 1 · 7 句

灰度三要素

§ 2 · 7 句

配置与注册

§ 3 · 7 句

升级与回滚

§ 4 · 8 句
L2 DIAGRAMS

结构图:治理的真实骨架图 1 可点击五环节 · 图 2 是本页的状态机

三张图:先看灰度放量的漏斗全貌,再看熔断之后的两条出路,最后看多机房怎么对等自治。

① 白名单 指定终端 · 人工确认 ② 逐环放量 1% → 10% → 50% → 100% · 每环观测失败率 ③ 熔断阀(自动) 失败率超标 → 暂停放量 ④ 人工判定 修复续放 ✚ / 回滚 ↩ ⑤ 回滚通道 set image → rollout status → rollout undo [--to-revision=N] · 永远有退路 回滚后回到上一稳定环
图 1 · 灰度漏斗:白名单 → 逐环放量 → 熔断 → 判定 → 回滚(点击环节)
点击图中的环节(白名单 / 放量 / 熔断阀 / 人工判定 / 回滚通道),这里显示它的职责。
正常放量失败率 ≤ 阈值 熔断暂停失败率 > 阈值 · 自动 修复 · 续放从断点继续 回滚--to-revision=N 失败率超标 人工判定:已修复 人工判定:回滚 自动的部分只有一步:超标即停。停完的每一步都要人拍板——自动刹车,人类方向盘。 回滚后可再入白名单环,从头验证新版本
图 2 · 状态机:正常放量 ⇄ 熔断暂停 → 修复续放 / 回滚
全局管控(控制面) 只发策略 · 不碰日志流量 机房 A 完整链路 · 对等 机房 B 完整链路 · 对等 机房 C 完整链路 · 对等 机房 C′(断网) 本地缓存策略 · 独立运行 策略下发 对等部署:任一机房故障不扩散;断网机房用本地缓存的策略继续采集——故障域被机房边界锁死
图 3 · 多机房对等:控制面俯瞰,机房互为镜像,断网自治
L3 INTERACTIVE

交互探索:灰度沙盘两个滑杆 · 五环放量 · 熔断就在 5% 那条线

拖动「放量比例」看五环逐个点亮;拖动「失败率」制造事故——超过 5% 立刻熔断(系统设定的自动阈值),此时只有两个按钮可用:修复续放,或回滚到上一版本。

3a · 灰度沙盘

熔断阈值 5%
白名单指定终端
10%第一环
50%第二环
100%全量
正常放量中 · 失败率在阈值内
拖动滑杆开始推演。

3b · 概念自测

6 题 · 单选

已答 0 / 6 · 正确 0 · 正确率 0%

1. 全局管控平台的定位是?

控制面只发令:管租户、配额、灰度与回滚。日志流量走数据面——两张网分离,升级洪峰和日志洪峰永远打不到一起。

2. 灰度发布的三要素是?

白名单定起点、熔断定刹车、回滚定退路——十万终端没有灰度的全量升级是事故。

3. 放量期间失败率超标,系统会?

自动的只有一步:超标即停。停完去哪——修复续放还是回滚——由人拍板。自动刹车,人类方向盘。

4. 某机房与控制面断网,机房内的采集会?

多机房对等部署、故障不扩散;断网机房用本地缓存的策略继续跑——断点续采 + 磁盘缓存保证恢复后补齐。

5. 本系统 Nacos 的角色与 namespace 是?

Nacos 3 节点做注册与配置中心,namespace 是 audit-release——与 Flink Operator 的 watchNamespaces 同一套约定,装错命名空间就互相看不见。

6. 滚动升级后发现异常,要回到指定历史版本,命令是?

set image → rollout status 观察 → rollout undo --to-revision=N 回到任意历史版本。删 Pod 只是重启当前版本,不是回滚。
L4 VIDEO

定制视频:全局的手六镜头 · 成片已交付 · 01:34· 分镜与解说骨架已备

六镜头沿用总览片「管控:全局的手」意象并展开:俯瞰机房、灰度波纹、熔断阀、回卷、断网自治、收尾。画面里的环节名与命令与 L1–L3 同源。

成片 · topic-07-governance.mp4 ✓ 已交付

00:00 开场 · 全局的手 00:15 涟漪 · 灰度放量 00:32 熔断 · 自动刹车 00:48 自治 · 断网不停摆 01:04 退路 · 一条命令 01:19 收尾 · 停得下来

规格:1920×1080 · 30fps · 01:34 · H.264 + AAC · 中文配音(zh-CN-Yunxi 逐句合成,每句实测时长均落在自己的字幕窗口内)+ 画面内嵌字幕。底部常驻进度轨随镜头推进点亮。

分镜脚本

6 镜头 · 旁白即片中字幕

镜头 1 · 俯瞰

画面:镜头拉高,三个机房如三座等大的城市,上方一只只发光线的手。
旁白:链路之上还有一只手。它不发一条日志,只发一句话:谁先升级,升到多少。

镜头 2 · 灰度波纹

画面:白名单小灯亮起,波纹一环环扩散:1%、10%、50%,每环停留观测。
旁白:好的发布像涟漪,从一块石头开始。每一环都是检查点——问题在小范围暴露,不在全量爆发。

镜头 3 · 熔断阀

画面:某环失败率指针越过红线,阀门「咔」地落下,波纹瞬间冻结。
旁白:失败率过线,阀自动落下。不等开会,不等电话——超标即停,是写死的规矩。

镜头 4 · 回卷

画面:波纹倒放回收,终端逐个回到旧版本,命令行打出 rollout undo --to-revision。
旁白:停下来之后,方向盘交还给人。修好了,从断点续放;修不好,一条命令退回昨天。

镜头 5 · 断网自治

画面:机房 C 与控制面的连线断开虚化,机房内齿轮照常转动,日志安静入缓存。
旁白:就算手够不着,城市也不会停。本地缓存的策略继续执行——断网自治,恢复补传。

镜头 6 · 收尾:停得下来

画面:手轻轻收回,三城灯火如常,链路流量平稳。
旁白:好系统的标志不是永不故障,是故障时永远停得下来、退得回去。这,就是治理。

解说骨架:六个设计决定

镜头 2–5 的旁白依据

① 控制面不碰流量

发令与承流分离,升级洪峰打不进日志链路。

② 灰度熔断回滚

十万终端没有灰度的全量升级是事故。

③ 自动刹车人类方向盘

超标即停是机器的事;去哪是人的事。

④ 机房对等自治

故障不扩散,断网本地策略独立运行。

⑤ 配置热更新

Nacos 一处改处处生效,切换不中断采集。

⑥ 永远有退路

--to-revision=N:任意历史版本,一条命令。