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 更有效率。

開發者的行動指南#

  1. 用 Auto DevOps 做學習工具:觀察它產生的 Pipeline 結構,理解 GitLab CI 的最佳實踐
  2. 正式專案建議自訂 Pipeline:Auto DevOps 適合快速起步,但長期維護需要可控性更高的自訂設定
  3. 不要害怕 Kubernetes:即使團隊尚未使用 K8s,了解 Auto DevOps 的部署模型有助於未來規劃容器化策略

Auto DevOps 的預設行為可能不符合你的安全政策(例如自動部署到 production)。
在啟用前務必確認各 Stage 的觸發條件,特別是部署相關的設定。