觀看:生產前的 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 儲存庫中的自述檔案和設計說明。