雲端產品的 GitOps 交付流程
產品服務以容器部署在 RKE2 叢集,作為 RD 送測環境。RD 合併程式碼後,GitLab CI 建置映像檔並更新部署 repo,ArgoCD 自動同步到叢集,全程不需登入主機。
兩段式流水線
服務 repo 負責建置,部署 repo 負責更新與同步,以下游流水線串接。
- 服務 repo · build
- Maven
- Go
- 前端靜態檔
- nginx 設定驗證
- 服務 repo · image
- docker build
- push → Harbor
- trigger
- 觸發部署 repo
- 部署 repo · update
- validate
- 更新 image tag
- commit [skip ci]
- 部署 repo · sync
- wait-sync
Git 是唯一依據
叢集狀態向 Git 對齊,Git 歷史即完整部署紀錄
selfHeal 開啟
手動改動會被自動還原
prune 關閉
Git 誤刪不會連帶刪除叢集資源
本人範圍
平台與部署流程主責:RKE2 叢集、Longhorn、Envoy Gateway、部署 repo、ArgoCD 與同步通知、GitLab Runner、Harbor、nginx 代理設定與驗證閘、團隊專屬監控看板。應用程式功能開發與正式環境上線決策不在本人範圍。
做法
- 兩段式流水線:服務 repo 建置映像檔並推送 Harbor,再以下游流水線觸發部署 repo 更新 image tag(commit 標記 [skip ci] 避免循環)。
- ArgoCD 以 Git 為唯一依據;selfHeal 開啟自動還原手動改動,prune 關閉讓刪除需人工確認。
- 以 Envoy Gateway(Gateway API)管理入口流量與 TLS。
驗證方式
ArgoCD 回報所有應用 Synced/Healthy;每次部署在部署 repo 留下可追溯的提交。
結果
| 指標 | 數值 | 出處 | 資料來源 |
|---|---|---|---|
| 自動部署次數 | 每月中位數約 33 次 | 部署 repo 自動提交,2026-03~10 | 系統紀錄 |
| 相關投入工時 | 362 h | 工時表,2024-10~2026-08 | 系統紀錄 |
| 工時拆分:本人/AI 執行 | 本人約 175 h、AI 執行約 187 h(2025-02-22 前皆計為本人) | 本人估計;2025-02-22 起依當期人機比例拆分,僅計公司登記工時 | 本人估計 |
限制與後續
此流程用於 RD 送測環境;正式環境部署、Secrets 與網路層設定不在本人範圍。
使用技術
- GitLab CI
- Harbor
- ArgoCD
- RKE2
- Envoy Gateway
- Longhorn
- nginx