观看:生产前的 QA 关卡
视频: youtu.be/Vs2Em0HPvoY · 产品: ringpromoter.com
Ring Promoter 是Workstation针对订购戒指的促销控制平面 int → test → acc → prod。本文重点讨论 该管道中的质量保证和质量关卡:它们坐在哪里,自动升级如何与人类大门交互(尤其是在生产之前),作为一流大门的运行状况和版本验证,回滚行为以及对人工智能平台团队的影响。产品: ringpromoter.com · 来源: github.com/bwalia/ring-promoter。同伴博客: 业务简介 · 概述: 现代 CI/CD 文章 · 产品页面: /环启动子.
- 问题: 自动将所有内容升级为产品就是 YOLO;手动控制每一跳太慢。
- 模型: 共享戒指;一次一跳;绝不跳过;每跳的健康状况(+可选版本)。
- 政策: 选修的
auto_promote每个环用于早期跳跃;保持人类之门开启acc → prod. - 失败: 不健康的目标或版本不匹配→自动回滚+历史记录。
- 标语: 不要自动升级为产品——通过 QA 门来获得生产。
1. 推广流程(回顾)
应用程序声明每个环的部署目标(命名空间、部署、映像存储库、运行状况 URL、部署者)。戒指本身是共享和订购的。运营商、CI 或代理商致电:
- 种子 — 登陆一个版本
int(或配置的入口环)。 - 推动 — 将版本从
from_ring到 下一个 仅响铃。 - 回滚 — 在环上恢复以前的版本(在部署后运行状况失败时也会自动恢复)。
并发性:同一应用程序的操作是序列化的(跨副本的 Postgres 会话咨询锁)。操作上下文与 HTTP 请求分离,并受以下限制: operation_timeout,因此客户端断开连接无法中止正在进行的升级或其回滚。
Operators / CI / Agents
→ Ring Promoter (UI + REST API)
→ seed / promote / rollback
→ Deployer (kubectl | GitHub Actions | k8sjob)
→ Health (HTTP + optional version verify) ← quality gate
→ optional auto_promote to next ring ← policy gate
→ Store (Postgres history + locks)
Rings: int → test → acc → prod
2. QA 关口在哪里
| 跳 | 典型的门组合 | 笔记 |
|---|---|---|
int → test |
健康+版;经常 自动升级 | 种子后快速反馈 |
test → acc |
健康+版;评估/烟雾后可选自动 | 在启用自动驾驶之前加强健康端点 |
acc → prod |
健康+版本+ 人类/QA 批准 | 不要 默认情况下自动升级到产品 |
城门是分层的。自动升级永远不会绕过运行状况或版本验证——它只会在前一次登陆运行状况良好时消除跳跃之间的人工点击等待。
3.自动提升每个环的标志
自动推广是 可选和每环。当某个版本在启用了自动升级的环上正常运行时,Ring Promoter 会继续执行同一锁定操作中的下一个环。政策草图示例:
# Conceptual ring policy (illustrative)
rings:
- name: int
auto_promote: true # healthy int → continue to test
- name: test
auto_promote: true # healthy test → continue to acc
- name: acc
auto_promote: false # HUMAN GATE — stop before prod
- name: prod
auto_promote: false # terminal ring
应用程序级环映射仍然包含部署和运行状况详细信息:
# Per-app ring mapping (illustrative)
apps:
web-frontend:
rings:
acc:
namespace: acc-apps
deployment: web-frontend
health_url: https://acc.example/healthz
health_version_field: version
prod:
namespace: prod-apps
deployment: web-frontend
health_url: https://www.example/healthz
health_version_field: version
操作提示: 仅在您信任该应用程序的运行状况合同后才启用自动升级。总是弱小的——200 端点加上自动升级将很高兴地将糟糕的二进制文件推向接受。
4. 作为质量关口的健康状况和版本验证
每次促销都会检查 来源 环在部署之前是健康的,然后检查 目标 部署后可配置重试。如果目标仍然不健康,Ring Promoter 回滚 目标为先前版本并在历史记录中记录失败。
版本验证的健康状况 将简单的活性 URL 转变为质量门:
health_version_field— 健康体中的 JSON 字段(例如version或者build.version).health_version_header— 标题,例如X-App-Version.
检查要求端点报告 刚刚部署的确切版本。这对于人工智能堆栈很重要:旧的推理 sidecar 或代理二进制文件仍然可以回答 200 OK 而新图像从未准备好。版本不匹配会使门失败并触发回滚。
在 参考固定 环(ref: release),预期的版本可能无法预先知道——在健康部署之后,控制平面可以 记录 端点报告的版本,而不是与预先已知的标签进行比较。
5. acc → prod 人门
保持 auto_promote: false 在 acc 意味着成功 test → acc (或早期环中的连锁汽车) 止于接受。生产需要显式升级 - UI 单击、批准的 API 调用或仍有意调用升级的更改票证支持的自动化。
- 将此用于变更窗口、合规性签核、利益相关者演示或多应用程序“发布列车”。
- 与版本验证的健康状况配对,以便人类批准 正确的 构建,而不是陈旧的健康 Pod。
- 记录谁拥有该门(SRE 值班人员、产品负责人、发布经理),以便该跃点不会意外成为队列。
6. 回滚作为门故事的一部分
- 部署后运行状况/版本故障 → 自动回滚 目标 戒指。
- 手动回滚 API/UI,用于操作员驱动的恢复。
- 历史记录种子/升级/回滚成功和失败以供审核。
- 部署落地后,存储的状态会立即更新,因此如果以后的运行状况检查失败,集群真相也不会丢失。
没有回滚的大门就是剧院。 Ring Promoter 将失败的门视为可操作的:逆转错误的跳跃,保留审计跟踪,保持早期环完好无损。
7. API 草图(CI/代理)
# Seed int, then promote (auto-promote may chain further)
curl -s -H "Authorization: Bearer $TOKEN" -X POST \
-d '{"ring":"int","version":"1.4.2"}' \
$BASE/api/apps/web-frontend/seed
curl -s -H "Authorization: Bearer $TOKEN" -X POST \
-d '{"from_ring":"int"}' \
$BASE/api/apps/web-frontend/promote
# non-2xx = failed promotion (target auto-rolled back)
# Explicit human-gated hop into prod (after QA on acc)
curl -s -H "Authorization: Bearer $TOKEN" -X POST \
-d '{"from_ring":"acc"}' \
$BASE/api/apps/web-frontend/promote
CI 构建和测试; Ring Promoter 运行 CI 生成的内容。非 2xx 促销意味着大门失败 - curl --fail 足以进行管道集成。代理和发布机器人应该处理 acc → prod 作为特权操作,在自己的工作流程中具有明确的批准步骤。
8. 对人工智能平台团队的影响
AI 产业促进推理服务、代理运行时、MCP 网关、RAG API 以及不同时钟和部署器上的经典服务(kubectl、GitHub Actions 和 k8sjob)。共享环给出一种促销语言;门保持语言诚实:
- 版本验证的健康状况 捕捉到“老特工仍在接听”。
- 自动推广 保持评估环移动,无需照顾每一跳。
- 产品前的人门 保护面向客户的模型和工具免受静默级联的影响。
- 多应用推广 仍然尊重每个应用程序的健康状况——一项不健康的服务不会为其他服务发明一个跳过的环。
Workstation 的立场:将 AI 运输视为生产服务——首先是可观察性和推广纪律(另请参阅 LLM 瓶颈 / OTEL),然后是速度。
9. 优点、缺点和推荐政策
| 选择 | 优点 | 缺点 |
|---|---|---|
| 自动早响 | 吞吐量大,工作量少 | 传播薄弱的健康契约 |
| 人先于产品 | 合规性、变更控制 | 需要明确的所有者/SLA |
| 版本门 | 停止假绿色部署 | 需要仪表化的健康端点 |
推荐默认值: 自动升级开启 int 和 test;人类之门开启 acc;每个面向客户的应用程序都经过版本验证的运行状况;切勿跳过环;当门失败时依赖自动回滚。
10. 开始使用
- 手表 youtu.be/Vs2Em0HPvoY.
- 访问 ringpromoter.com 和克隆 github.com/bwalia/ring-promoter.
- 阅读 商业博客 和Workstation 产品页面.
- 配置每环
auto_promote和健康版本字段;保持产品人为控制。 - 通过与 Workstation 交谈 接触 关于 AI 平台的 CI/CD。
发布者: Workstation。上游文档:Ring Promoter 存储库中的自述文件和设计说明。