灰度发布流程管理(行级)
引言
本文介绍基于 行级版本管理 的灰度发布流程。
数据从修改到发布的过程需 遵循事先设定的灰度流程 进行发布。即,管理者规定数据的灰度规则,约定数据必须 先灰度,再全量,且灰度的范围都是事先配置好的;这样一来,数据都按照统一的发布流程进行发布。
准备工作
添加 & 编辑 流程
定义一个名为入园的 发布流程模版
, 每一个发布流程模版
都包含了若干个 发布节点
。
每一个 发布节点
对应行版本管理
中的一张制品表。
我们添加两个节点 打疫苗
和 进笼子
. 灰度规则分别为 id等于vac
和 id等于cage
新建数据并发布
- 新建一条 老虎 数据并保存。
- 点击此行中的
发布
按钮在这里可以看到我们之前配置的 入园 流程。 在此示例中,我们先不走流程,直接全量发布。(当然也可以走 入园 流程)
获取数据
发送GET请求:
http://YOUR_HOST/api/private/switch/object/{YOUR_OBJECTID}?appid={YOUR_APPID}&schemaid={YOUR_SCHEMAID}&schemakey={YOUR_SCHEMAKEY}
(可选)在后面query中添加 id=vac 或 id=cage, 我们都将获得全量发布的数据结果
{
"data": {
"_id": "6389678049d2942dd202d7dd",
"name": "老虎",
"_ctime": "2022-12-02T02:48:33.000Z",
"_mtime": "2022-12-02T02:48:33.000Z"
},
"code": 200
}
修改(新建)数据并发布
- 修改数据的值:从 ‘老虎’ -> '大老虎' 并保存
- 点击
发布
按钮 - 这次我们选择 入园 流程
入园 流程中
打疫苗
和全量发布
节点为可选发布目标。 我们先选择打疫苗
节点,(可选)输入版本描述并点击灰度发布
。
第一次开启流程时,只能选择 全量 或者 流程中的第一个节点 进行发布。继续流程时可以批量发布多个节点。
获取数据
发送GET请求:
http://YOUR_HOST/api/private/switch/object/{YOUR_OBJECTID}?appid={YOUR_APPID}&schemaid={YOUR_SCHEMAID}&schemakey={YOUR_SCHEMAKEY}&id=vac
注意后面的
id=vac
query,会命中我们的打疫苗灰度。{
"data": {
"_id": "6389678049d2942dd202d7dd",
"name": "大老虎",
"_ctime": "2022-12-02T02:48:33.000Z",
"_mtime": "2022-12-02T03:00:32.000Z"
},
"code": 200
}可以看到name字段已经变成修改后的值,并且修改时间字段已经被更新了。 尝试将
id
query 删除,接口将返回旧数据 (未灰度数据){
"data": {
"_id": "6389678049d2942dd202d7dd",
"name": "老虎",
"_ctime": "2022-12-02T02:48:33.000Z",
"_mtime": "2022-12-02T02:48:33.000Z"
},
"code": 200
}
批量流程
多条数据的修改和新增删除可以多选并一起加入 发布流程组。
新增 小狗 和 小猫 数据, 一同勾选并发布到
打疫苗
节点。此时会将这两条数据打包成一个 发布组。后续对任意行的发布都将一同发布其所在组中的所有数据
如果多选的数据不属于同一个发布组,则不允许发布(勾选 小狗 和 大老虎 一并发布)
终止流程
在发布流程中,可以点击 终止流程
并选择
- 只终止 (不推荐)
- 回滚数据
如果点击只终止,则流程结束。但是制品表中的数据依然存在。下次发布前,需要再修改一次数据才可以发布到之前停止的灰度节点。