Auto DevOps 是什麼#
Auto DevOps 是 GitLab 的零設定自動化 Pipeline。
當你的專案沒有 .gitlab-ci.yml 時,GitLab 可以自動偵測專案語言與框架,套用預設的 Pipeline 模板,涵蓋建構、測試、安全掃描、部署等階段。
Auto DevOps 的理念是「Convention over Configuration」——
你不需要寫任何 CI 設定,GitLab 就能幫你跑出一條完整的 Pipeline。
有無 Kubernetes 的差異#
Auto DevOps 可以在兩種模式下運作:
無 Kubernetes#
- 仍然可以執行 Auto Build、Auto Test、Auto Code Quality、Auto SAST
- 無法執行 Auto Deploy(因為沒有部署目標)
- 適合快速體驗 Auto DevOps 的能力
有 Kubernetes#
- 解鎖完整功能,包括 Auto Deploy、Auto Monitoring、Auto Browser Performance Testing
- 自動將應用部署到 K8s 叢集,包含 Staging 和 Production 環境
- 使用 Helm Chart 管理部署
Auto DevOps 搭配 Kubernetes 是 GitLab 展示其平台威力的最佳場景。
但在正式環境中,多數團隊會選擇自訂 Pipeline 而非完全依賴 Auto DevOps,因為實際需求往往超出預設模板的覆蓋範圍。
Auto Deploy 的環境管理#
Auto DevOps 預設提供兩個部署環境:
- Staging:每次推送到非 main 分支時自動部署
- Production:推送到 main 分支時部署,可設定為手動觸發
Auto Browser Performance Testing#
自動執行瀏覽器效能測試,產出 Lighthouse 風格的報告,涵蓋:
- 頁面載入時間
- 效能評分
- 可存取性分析
客製化 Auto DevOps Pipeline#
Auto DevOps 並非全有或全無,你可以:
- 覆寫特定 Stage:在
.gitlab-ci.yml中定義同名的 Job 來取代預設行為 - 使用環境變數調整:例如設定
AUTO_DEVOPS_DEPLOY_DEBUG開啟除錯模式 - 選擇性停用:透過環境變數停用不需要的 Stage
一個務實做法是:先用 Auto DevOps 快速啟動,觀察它產生的 Pipeline,
然後逐步用自訂的.gitlab-ci.yml取代不符合需求的部分。這比從零開始寫 Pipeline 更有效率。
開發者的行動指南#
- 用 Auto DevOps 做學習工具:觀察它產生的 Pipeline 結構,理解 GitLab CI 的最佳實踐
- 正式專案建議自訂 Pipeline:Auto DevOps 適合快速起步,但長期維護需要可控性更高的自訂設定
- 不要害怕 Kubernetes:即使團隊尚未使用 K8s,了解 Auto DevOps 的部署模型有助於未來規劃容器化策略
Auto DevOps 的預設行為可能不符合你的安全政策(例如自動部署到 production)。
在啟用前務必確認各 Stage 的觸發條件,特別是部署相關的設定。