Tobatsu · Release Model Redesign
同一个模板能挂好几个版本,发任务时带个可选字段选哪个 —— Docker 镜像 tag 那个路子。加法,不是重写;上游一行代码都不用改。
一眼看全
14 个真功能,现在被拆成了 28 个名字。新模型把"同一件事的几个名字"收成一个模板 + 几个 tag。
今天一个任务带一个名字,系统拿名字找到当前在用的那一版(snapshot)。问题是"测试还是正式"是藏在名字后缀里的:
结果同一个功能,为了区分测试 / 正式 / Mai 专用,被复制成了好几个互相独立的模板:
把"同一件事的几个名字"收成一个模板。模板底下挂多个版本(snapshot),每个版本贴个 tag(标签)。发任务时带一个可选字段选 tag —— 不带就走默认那版(就是现在的行为)。
_test 分身。runtime_env_overrides 是同一类:发任务时多带个字段,只改这一单。把这一版冻结下来 —— 工作流、技能、引擎、镜像、队列、交付,全锁住。
给这个版本贴个标签,比如 v2 / canary。一个标签指一个版本。
配一下哪个环境走哪个 tag。没有"发布到 prod"这种特殊仪式了。
| 新模型 | 就是现在的什么 |
|---|---|
| snapshot | 版本包(已有,不变)。冻结工作流 / 技能 / 引擎 / 镜像 / 队列 / 交付 / 环境变量名。 |
| tag | 新加的标签,指向某个 snapshot,跟 Docker 镜像 tag 一个意思。 |
| 默认 tag | 每个模板现在正在用的那版 snapshot。不带字段就走它,所以旧上游不用改。 |
| 可选字段 | 选变体。跟 runtime_env_overrides 同类:发任务时额外带的字段,不带不改默认。 |
| environment | "哪个环境用哪个 tag"的配置 —— 不再是"发布到 prod"这种概念。 |
| 老 _test / _mai 名字 | 存量,各自独立,现在不动、不迁,自然退场。 |
_test / _mai 名字继续跑,用完它自己消失,不强迁。之前讨论里冒出来一堆复杂设计,全部砍掉,不进这版方向:权限分级、可见性策略、token 档位、命名规则、灰度策略。这些等真要动手实现时再单独定 —— 现在的目标就是看得见 + 能加变体,别的不掺。