什麼是 Google Cloud 上的 DevOps 與 SRE?
DevOps 是一種文化、一套實踐,以及一個工具鏈,將**軟體開發(Dev)與IT 維運(Ops)**整合為一個持續運轉的循環。**Site Reliability Engineering(SRE)**是 Google 用於大規模可靠服務的工程紀律——它是將軟體工程思維應用於維運問題的成果。這兩個概念在 Cloud Digital Leader(CDL)考試中反覆出現,因為 Google Cloud 透過 Cloud Build、Cloud Deploy、Artifact Registry 以及 Google Cloud Operations Suite 等服務,將其轉化為具體的產品。
CDL 考試不會要求您撰寫 Cloud Build 的 pipeline YAML 或組合 Terraform 模組。考試考的是商業決策者視角的題目:「為什麼組織要採用 DevOps?」「什麼是錯誤預算,它如何影響版本發布決策?」「哪個 Google Cloud 服務可以自動化 GKE 與 Cloud Run 的漸進式部署?」本章節建立您在考試中自信回答這些情境題所需的詞彙、心智模型,以及 Google Cloud 產品對應關係。
現代企業採用 DevOps 與 SRE 是有充分理由的:Google 每年發布的 DORA(DevOps Research and Assessment)State of DevOps 報告顯示,頂尖績效團隊的程式碼交付頻率比低績效團隊高出數百倍,而且變更失敗率更低。Google Cloud 將這些研究成果融入其工具,讓任何組織——從台北新創公司到跨國銀行——都能沿著 DORA 績效曲線持續進步,而無需自行重新摸索這些實踐。
讀完本章節,您將能描述 DevOps 與 SRE 的核心支柱、解釋 Google Cloud 的 CI/CD 產品如何相互配合、向非技術主管闡述 SLI/SLO/SLA 與錯誤預算,並從商業決策者角度分析現代化的取捨。
DevOps 基礎:CI、CD、IaC、自動化與文化
DevOps 奠基於四個實務支柱:持續整合(CI)、持續交付/持續部署(CD)、基礎設施即程式碼(IaC),以及無責難、協同合作的文化。這些都不是工具本身——它們是由工具所支撐的實踐方式。
持續整合(CI)
持續整合(Continuous Integration) 意味著開發者每天多次將工作成果合併到共用的主線分支。每次合併都會觸發自動化建置與自動化測試,讓臭蟲在引入後幾分鐘內就被發現,而非幾週後才被察覺。程式碼在獨立分支上存留愈久,合併的痛苦就愈大——CI 透過讓整合持續且小步進行,消除了這種痛苦。
在 Google Cloud 上,受管的 CI 服務是 Cloud Build。它監聽 GitHub、GitLab、Bitbucket 或 Cloud Source Repositories 的提交,在隔離的容器中執行您的建置步驟與測試套件,並產生已簽署的建置產物。Cloud Build 依建置分鐘計費,提供寬裕的免費配額,並與 Artifact Registry 及 Cloud Deploy 原生整合。
持續交付與持續部署(CD)
持續交付(Continuous Delivery) 確保每次成功建置都處於「按下按鈕即可發布到正式環境」的狀態。持續部署(Continuous Deployment) 更進一步:每次通過測試的成功建置都會自動推送到正式環境。兩者的差異在於是否有人工核准閘門。
在 Google Cloud 上,受管的 CD 服務是 Cloud Deploy。它將交付 pipeline 模型化為一組有序目標——通常是 dev → staging → prod——並協調對 GKE、Cloud Run 與 Anthos 叢集的漸進式部署(progressive rollout)。Cloud Deploy 支援金絲雀發布(canary release)、藍綠部署(blue-green deployment)、一鍵復原(rollback),以及針對受管制環境的內建核准閘門(approval gate)。
基礎設施即程式碼(IaC)
基礎設施即程式碼(Infrastructure as Code) 意味著將您的雲端資源——VPC、GKE 叢集、IAM 綁定、Cloud SQL 執行個體——描述為可版本控制的文字檔,由工具以可重複的方式套用。好處是巨大的:環境變得可重現、偏差可被稽核,而災難復原變成「重新執行程式碼」,而不是「點擊 400 個按鈕」。
在 Google Cloud 上,IaC 的事實標準是 Terraform。Google 維護官方的 google 與 google-beta provider,Cloud Build 可以在自動化 pipeline 中執行 terraform plan 與 terraform apply。Google 也提供 Config Connector(Kubernetes 風格的 Google Cloud 資源宣告式配置)與 Infrastructure Manager(受管的 Terraform 執行服務),供希望使用全受管 IaC 後端的團隊使用。
全面自動化
DevOps 的核心主題是自動化。每個手動步驟——佈建伺服器、部署程式碼、執行測試、通知 on-call 工程師——都是自動化的候選項目。自動化能減少雜務(toil)(詳見 SRE 章節)、消除人為錯誤,並將工程時間釋放給更高價值的工作。
無責難、協同合作的文化
工具本身無法創造 DevOps。文化轉型同樣重要:開發者與維運者共享目標、共享指標,並共同承擔責任。當事件(incident)發生時,團隊聚焦於系統性根本原因,而非個人責任。這種文化打造出高度信任的環境,讓工程師願意在早期就坦承錯誤,而非掩蓋問題。
DevOps 是實踐(CI/CD、IaC、監控)、文化(共同擁有權、無責難學習)與工具(Cloud Build、Cloud Deploy、Artifact Registry、Terraform)的結合,壓縮了從撰寫程式碼到為使用者交付價值的時間,同時維持可靠性。SRE 是 Google 對 DevOps 的具體實踐模式,將軟體工程應用於維運問題。官方 Google Cloud DevOps 能力模型請參閱 https://cloud.google.com/architecture/devops。
白話文解釋
DevOps 與 SRE 在直接面對這些概念時,往往顯得抽象。最好的理解方式,是將它們對應到台灣人已經熟悉的日常場景。以下四個類比從不同角度切入同一套概念。挑一個最適合您的,在考試中用它來推理情境題。
類比 1 — 半導體工廠的自動化產線(CI/CD 自動化)
想像一座台灣的半導體工廠,每天生產數百萬片晶片。二十年前,每個步驟都是手動的:一位作業員放置矽晶圓,另一位作業員按下按鈕,第三位作業員目視檢查結果。產能低、缺陷率高,發貨一批產品需要好幾週。
今天,同一座工廠以全自動化產線運作。晶圓在輸送帶上移動,機械手臂以次毫米精度放置每個元件。線上檢測攝影機在晶片生產的當下就逐一測試,在進入下一道工序前就剔除不良品。若缺陷率突然上升,產線自動停止並通知主管。一批產品的交貨時間縮短至數小時。
這正是 Google Cloud 上的 CI/CD 對軟體所做的事。Cloud Build 是將程式碼從提交移動到產物的輸送帶。自動化測試套件是剔除不良建置的檢測攝影機。Artifact Registry 是儲存已完成、已版本化產品的倉庫。Cloud Deploy 是分批將產品交付到客戶手中的調度系統——先送到小規模試驗區(金絲雀),再到測試環境,最後到正式環境。若正式環境發現缺陷,rollback 就相當於一鍵召回不良批次。工廠類比完美解釋了為何 DevOps 團隊能比傳統團隊快出數百倍:每個步驟都是自動化的、可衡量的,以及可復原的。
類比 2 — 24 小時醫院 ICU(SLI/SLO/錯誤預算)
醫院加護病房(ICU)的目標並非「完美的」病患結果。它追求的是可衡量、可達成的目標:血氧飽和度高於 92%、心率維持在特定範圍、對緊急呼叫的回應時間在 30 秒以內。這些就是 ICU 的 Service Level Indicator(SLI)——正在被量測的具體數字。「92% 血氧飽和度」這樣的目標,就是 Service Level Objective(SLO)——團隊所承諾達成的目標。醫院與保險公司簽訂的合約(「緊急案例將在 15 分鐘內收治」),就是 Service Level Agreement(SLA)——具有違約罰則的法律承諾。
關鍵在於,沒有任何 ICU 承諾 100% 完美結果。這不僅難以實現,更會適得其反——追求 100% 意味著拒絕高風險手術,永遠不嘗試新療法。ICU 接受允許一定程度的風險——這就是錯誤預算(error budget)。這個預算被刻意「消費」:用於創新、培訓新醫師、進行臨床試驗。當預算耗盡(近期不良結果過多),ICU 暫停高風險手術,專注於穩定工作。
這正是 Google SRE 運作正式環境服務的方式。您的 SLI 可能是「99.9% 的 HTTP 請求在 200 毫秒內回傳成功」。您的 SLO 是目標(99.9%)。您的錯誤預算是剩餘的 0.1%——大約每月允許 43 分鐘的不可用時間。您的發布團隊在預算充裕時可以積極部署,在預算耗盡時必須放慢腳步。錯誤預算讓開發者(追求速度)與維運者(追求穩定)凝聚在同一個共享數字上。
類比 3 — 航空公司維修手冊(基礎設施即程式碼)
波音 787 客機不能靠直覺維修。每項檢查、每個零件更換、每次添加液體,都在維修手冊中有詳細描述——數千頁的逐步指示,讓任何合格的技術員都能執行出完全相同的結果。若取消手冊,讓每位技師自由發揮,航空公司將變得不安全且無法取得適航認證。手冊是唯一真相來源:不在手冊中的事情就是沒做;在手冊中的事情,每次都以相同方式完成。
基礎設施即程式碼為雲端基礎設施帶來相同的紀律。您不需要在 Google Cloud 控制台上點擊建立 VPC、GKE 叢集與 IAM 綁定,而是在 Terraform 配置檔中描述它們——任何人都可以閱讀、審查、版本控制並重新執行。需要建立測試環境時,terraform apply 在幾分鐘內重現整個設置。審計師詢問「請展示三月十五日的正式環境配置」時,git log 能給出明確答案。當災難發生、整個區域失效時,同一份 Terraform 程式碼可在其他地方重建環境。沒有 IaC,每個環境都變成獨一無二的雪花——獨特、未文件化、難以重現。有了 IaC,環境變得如同飛機:標準化、可認證,且安全可靠。
類比 4 — 棒球隊的教練統計數據(DORA 指標)
棒球教練不靠直覺評估球隊。教練量測打擊率、上壘率、自責分率、守備率——具體的數字,揭示球隊的強項與需要加強的地方。沒有這些統計數據,進步是不可能的,因為沒有東西可以用來作為改進的基準。
DORA 指標是揭示軟體團隊績效的四項統計數據:部署頻率(Deployment Frequency)(您多常交付)、變更前置時間(Lead Time for Changes)(從提交到正式環境需要多長時間)、變更失敗率(Change Failure Rate)(多少比例的部署引發事件)與平均復原時間(Mean Time to Recovery,MTTR)(發生事件時多快能恢復服務)。如同打擊率,DORA 指標讓工程主管能將團隊與業界基準做比較:頂尖績效團隊每天部署多次,變更失敗率低於 5%;低績效團隊每月部署不到一次,失敗率是兩位數。Google 每年發布 State of DevOps Report,讓任何組織都能了解自己所在的位置,以及下一步應該改善什麼。
Google Cloud 的 CI/CD 工具鏈
Google Cloud 提供一套完整、整合的 CI/CD 工具鏈。每個服務都專注於做好一件事,並與其他服務原生連接。
Cloud Build — 受管 CI
Cloud Build 是 Google Cloud 的全受管 CI 服務。它在 Google 管理的基礎設施上以容器執行您的建置步驟,因此不需要維護任何建置伺服器。典型的 pipeline 流程:
- 開發者將提交推送至 GitHub。
- Webhook 觸發 Cloud Build。
- Cloud Build 執行
cloudbuild.yaml中定義的步驟——docker build、go test、npm run lint、安全性掃描。 - 成功後,Cloud Build 將映像檔推送至 Artifact Registry,並建立 Cloud Deploy release。
Cloud Build 內建透過 Artifact Analysis 進行漏洞掃描、支援 VPC 內部建置的私有工作池(private pool),以及與 Binary Authorization 緊密整合以確保供應鏈安全。
Cloud Deploy — 受管 CD
Cloud Deploy 是針對 GKE、Cloud Run 與 Anthos 目標的受管持續交付服務。您宣告一份列出有序目標的交付 pipeline YAML(dev、staging、prod),Cloud Deploy 負責處理:
- 以流量分流進行的漸進式部署(例如:10% → 25% → 50% → 100%)。
- **金絲雀(canary)與藍綠(blue-green)**部署策略。
- 正式環境晉升的核准閘門。
- 回到任意先前版本的一鍵復原。
- 紀錄誰在何時將什麼部署到何處的稽核軌跡。
Artifact Registry — 容器與套件儲存
Artifact Registry 是 Google Cloud 用於儲存 Docker 映像檔、Maven、npm、Python、Go 與 OS 套件的統一儲存庫。它取代了舊版的 Container Registry,並提供:
- 區域與多區域儲存庫以降低延遲。
- 透過 Artifact Analysis 進行漏洞掃描。
- 讀取/寫入/管理的細粒度 IAM。
- 遠端與虛擬儲存庫,可代理 Docker Hub 與 PyPI 等公開儲存庫,提升安全性與可靠性。
Cloud Source Repositories — Git 代管
Cloud Source Repositories 在 Google Cloud 上提供私有 Git 代管。實務上,大多數團隊將程式碼存放於 GitHub 或 GitLab,並透過 Cloud Build GitHub App 或 Webhook 將外部儲存庫連接至 Cloud Build。CDL 考試將 GitHub/GitLab on Google Cloud 視為主流模式,而 Cloud Source Repositories 是希望所有資源都在 Google Cloud 範圍內的團隊所使用的備選方案。
Skaffold — 本地內迴圈
Skaffold 是 Google 開源的工具,用於自動化本地開發的內迴圈:監看原始碼檔案、重新建置容器、重新部署到本地或遠端 Kubernetes 叢集,並串流輸出日誌。它將 docker build、kubectl apply 與即時重載整合成單一的 skaffold dev 指令。Skaffold 也是 Cloud Deploy 渲染 Kubernetes Manifest 的底層引擎。
Terraform on Google Cloud — IaC
Terraform 是 Google Cloud 上的 IaC 標準。官方 google 與 google-beta provider 幾乎涵蓋所有 Google Cloud 資源。最佳實踐模式:
- 將 Terraform 狀態儲存在啟用版本控制與鎖定的 Cloud Storage bucket。
- 為每個環境(dev、staging、prod)使用獨立狀態。
- 以專用服務帳號從 Cloud Build 執行
terraform plan與terraform apply。 - 管理 Workload Identity Federation 讓 Terraform 永遠不需持有長效憑證。
針對 CDL 考試,請記住 Google Cloud CI/CD 產品對應關係:受管 CI = Cloud Build、具漸進式部署的受管 CD = Cloud Deploy、容器與套件儲存 = Artifact Registry、本地開發迴圈 = Skaffold、IaC 標準 = Terraform。提到「自動化建置 pipeline」或「建置分鐘數」的情境指向 Cloud Build;提到「金絲雀部署」或「正式環境前的核准閘門」的情境指向 Cloud Deploy。官方說明請參閱 https://cloud.google.com/build/docs/overview 與 https://cloud.google.com/deploy/docs/overview。
SRE 支柱:SLI、SLO、SLA 與錯誤預算
Site Reliability Engineering 於 2003 年在 Google 誕生,並在 2016 年與 2018 年出版的 SRE 書籍中系統化。其核心理念:將維運視為軟體工程問題。以下支柱在 CDL 考試中直接出現。
CDL 考試最常見的 SRE 題型:「一個電商平台對客戶承諾 99.9% 可用性 的 SLA。由於某次版本發布引發連鎖故障,在第三週時已消耗 80% 的每月錯誤預算。SRE 團隊接下來應該怎麼做?」預期的答案是放慢版本發布速度並優先處理可靠性工作,直到錯誤預算恢復——而非繼續推出更多功能。錯誤預算概念將「100% 正常運行時間」轉化為可衡量的**速度(交付功能)與可靠性(正常運行時間)**之間的取捨。請優先選擇尊重錯誤預算的答案,而非追求零停機時間的答案。
Service Level Indicator(SLI)
SLI 是服務品質某個特定面向的量化衡量——您量測的事物。常見的 SLI:
- 可用性(Availability): 成功請求佔總請求數的比例。
- 延遲(Latency): 第 50、95、99 百分位的回應時間。
- 吞吐量(Throughput): 每秒服務的請求數。
- 正確性(Correctness): 回傳正確資料的回應比例。
- 耐久性(Durability): 在特定時間窗口內被保存的物件比例。
好的 SLI 應以使用者為中心:衡量客戶實際體驗到的事物,而非內部的 CPU 使用率。
Service Level Objective(SLO)
SLO 是在特定時間窗口內 SLI 的目標值——您在內部承諾達成的目標。範例:「在滾動 28 天窗口內,99.9% 的 HTTP 請求在 300 毫秒內回傳 2xx 回應。」SLO 不是最高可達到的品質;它是您的客戶認為可接受的最低標準。
Service Level Agreement(SLA)
SLA 是您對客戶就 SLO 所做的合約承諾,通常在違約時有財務罰則。SLA 必然比內部 SLO更寬鬆,因為您需要緩衝空間:若您的內部 SLO 是 99.95%,而對客戶的 SLA 是 99.9%,您就有足夠的空間在客戶申請退款之前偵測並修復問題。
錯誤預算(Error Budget)
錯誤預算是 100% 與您的 SLO 之間的差距。若您的 SLO 是 99.9%,您的錯誤預算就是 0.1%——大約每月允許 43 分鐘的停機時間。這個預算是一種可消費的資源:
- 預算充裕時,團隊可以積極部署、執行混沌實驗,並交付高風險的新功能。
- 預算耗盡時,團隊必須放慢版本發布、專注於可靠性修復,並可能凍結部署直到 SLO 恢復。
錯誤預算在速度與可靠性之間建立了內建的取捨機制,讓開發者與 SRE 凝聚在同一個共享指標上。
SLI = 您量測的事物(例如:成功率)。SLO = 目標,您承諾達成的(例如:99.9%)。SLA = 合約,對客戶的承諾及其財務罰則。錯誤預算 = 100% − SLO = 您可以用於版本發布速度的允許不可靠性。內部 SLO 應始終比外部 SLA 更嚴格。規範性 SRE 定義請參閱 https://cloud.google.com/sre。
100% 正常運行時間並非現實可行的 SLO。 CDL 題目常見的陷阱是選擇「我們應該追求 100% 可用性」。Google SRE 的教義恰好相反——追求 100% 會阻礙創新,因為每次變更都變成對完美紀錄的威脅,而且每多加一個「九」的邊際成本呈指數增長(從 99.9% 提升到 99.99% 可能需要 10 倍的備援成本)。正確答案是:定義客戶可接受的 SLO(通常是 99.9% 或 99.95%),然後將錯誤預算用於速度。參閱 https://cloud.google.com/sre/sre-fundamentals。
雜務消除與自動化
雜務(Toil) 是 Google SRE 對手動、重複性、可自動化、戰術性、缺乏持久價值的維運工作的術語。手動重設密碼、透過 SSH 重啟伺服器、每晚執行相同的資料庫匯出腳本——這些都是雜務。SRE 團隊的目標是工程師花費在雜務上的時間少於 50%,其餘時間用於降低未來雜務的工程工作。
雜務消除策略:
- 以腳本、Cloud Workflows 或由 Pub/Sub 觸發的 Cloud Functions 自動化重複性的 runbook。
- 透過內部平台自助化常見請求,取代票務佇列。
- 透過修復根本原因,徹底消除特定類別的工作。
- 量測團隊在雜務上花費的時間,讓趨勢得以可見。
直接減少雜務的 Google Cloud 服務包括:Cloud Operations Suite(自動收集指標、日誌與追蹤資料——無需代理程式的雜務)、Cloud Run(無伺服器可修補)以及 GKE Autopilot(無需管理節點)。通則:服務愈受管,雜務愈少。
無責難事後檢討與事件回應
當事件(incident)發生時,SRE 的回應方式是無責難(blameless)的:事後檢討(postmortem)聚焦於系統性因素——缺失的警示、不清晰的 runbook、單點故障——而非個人失誤。前提是:人類在壓力下會犯錯;系統必須被設計為能安全地吸收這些錯誤。
無責難事後檢討通常包含:
- 使用 Cloud Logging 時間戳記的事件時間線。
- 根本原因分析(使用五問法等技術)。
- 做得好的事情(提早偵測、快速復原)。
- 做得不好的事情(警示的缺口、通知鏈過慢)。
- 具有負責人與到期日的行動項目。
輸出結果廣泛公開,讓整個工程組織從中學習。這是 DORA 研究中區分頂尖績效團隊的文化實踐之一。
針對 CDL 情境題中提到「事件發生後,團隊召開會議討論發生了什麼,但不責怪任何個人」,答案是無責難事後檢討(blameless postmortem)——核心的 SRE 實踐。將此與錯誤預算概念搭配:無責難事後檢討通常產出能保護未來錯誤預算的改變(更好的測試、更好的警示、更好的自動化復原)。Google Cloud 的事後檢討指引請參閱 https://cloud.google.com/architecture/framework/reliability/postmortems。
DORA 指標:衡量 DevOps 績效
DORA(DevOps Research and Assessment) 團隊——現已成為 Google Cloud 的一部分——進行了迄今最長期的 DevOps 實踐學術研究,每年以 State of DevOps Report 的形式發布。他們提煉出四項關鍵指標,用於預測卓越的工程績效:
部署頻率(Deployment Frequency)
團隊多常將程式碼推送到正式環境?頂尖團隊每天部署多次;低績效團隊每月不到一次。高部署頻率需要自動化、小批次提交,以及以主線為基礎的開發方式。
變更前置時間(Lead Time for Changes)
從 main 分支的一次提交,到那段程式碼在正式環境中執行,需要多長時間?頂尖團隊以小時衡量;低績效團隊以週衡量。短前置時間需要自動化測試、自動化部署,以及緊密的反饋迴圈。
變更失敗率(Change Failure Rate)
有多少比例的部署引發了事件、復原(rollback)或緊急熱修復?頂尖團隊將此控制在 5% 以下;低績效團隊看到的是兩位數的失敗率。低變更失敗率需要完整的自動化測試與漸進式部署策略。
平均復原時間(Mean Time to Recovery,MTTR)
當事件發生時,團隊多快恢復服務?頂尖團隊在一小時以內恢復;低績效團隊可能需要數天。快速恢復需要自動化復原、無責難文化,以及透過 Cloud Operations Suite 實現的良好可觀測性。
四項 DORA 指標共同提供全面性的視角:速度(部署頻率 + 前置時間)與穩定性(變更失敗率 + MTTR)。改善其中一項而忽略另一項,是一個警告訊號。
現代化旅程:從手動維運到完整 SRE
大多數組織不會從「票務與 bash 腳本」直接跳到「頂尖 DORA 績效」。實際的現代化旅程:
- 採用版本控制與 CI — 所有變更透過 Git 進行,並由 Cloud Build 自動建置與測試。
- 容器化並標準化產物 — 將應用程式打包成儲存在 Artifact Registry 的 Docker 映像檔。
- 自動化部署 — 以包含核准閘門的 Cloud Deploy pipeline 取代手動
kubectl apply。 - 採用 IaC — 在 Terraform 中描述基礎設施,將狀態儲存在 Cloud Storage,並透過 Cloud Build 套用。
- 定義 SLO 與儀表板 — 在 Cloud Monitoring 中設置 SLI,發布 SLO 消耗率警示。
- 執行無責難事後檢討 — 每次事件都產出可分享的學習。
- 消除雜務 — 量測維運時間,每季自動化最耗時的工作。
每個步驟都會強化下一步。有關驅動第 5 至 7 步的可觀測性層,請參閱 /en/certs/gcp/cdl/topics/google-cloud-operations-suite。有關運算選擇如何影響維運負擔,請參閱 /en/certs/gcp/cdl/topics/google-cloud-compute-options 與 /en/certs/gcp/cdl/topics/containers-vs-vms。
DevOps Pipeline 中的安全性(DevSecOps)
現代 DevOps 將安全性嵌入 pipeline,而非在最後才附加。Google Cloud 以下列方式支援 DevSecOps:
- Artifact Analysis 對每個容器映像檔進行漏洞掃描。
- Binary Authorization 強制執行「只有來自可信來源的已簽署映像檔才能部署」。
- Cloud Build 私有工作池(private pool) 讓建置工作者可以存取 VPC 內部的相依項目,而不需要公開暴露它們。
- Workload Identity Federation 讓 pipeline 在不需要長效服務帳號憑證的情況下向 Google Cloud 驗證身分。
- Software Delivery Shield 作為供應鏈安全性態勢的總體管理傘。
典型的 CDL 情境:「組織如何確保只有經過核准的容器映像檔能在正式環境中執行?」答案是以 Artifact Registry 作為可信來源的 Binary Authorization。
DevOps 與 SRE 的成本與商業價值
對於 Cloud Digital Leader,DevOps 與 SRE 的商業價值是最重要的部分:
- 更快的上市時間 — 功能在數天而非數季內完成交付。
- 更低的變更失敗率 — 更少的停機事件意味著更低的客戶流失率與更低的事件回應成本。
- 更高的工程師滿意度 — DORA 研究顯示,頂尖團隊由於自動化消除了雜務,因此倦怠率更低。
- 稽核與法規遵從準備度 — 每次部署都記錄在 Cloud Audit Logs,每次基礎設施變更都在 Git 中。
- 可預測的基礎設施成本 — IaC 加上 Recommender 的調整建議可防止意外帳單。
投資成本——Cloud Build 的建置分鐘數、Cloud Deploy 的目標數量、Artifact Registry 的儲存空間、工程師培訓——與一次重大停機或一個錯過的發布窗口的成本相比,微乎其微。這個投資報酬率(ROI)論證,正是 Cloud Digital Leader 向高階主管提議採用 DevOps 時所使用的說辭。
常見問題
Q:哪個 Google Cloud 服務是受管的 CI 服務?
A: Cloud Build。 它在 Google 管理的基礎設施上的隔離容器工作者中執行您的建置與測試步驟,與 GitHub/GitLab/Bitbucket/Cloud Source Repositories 整合,並將建置產物推送至 Artifact Registry。計費方式為按建置分鐘計費,且有免費配額。當 CDL 情境題提到「自動化建置」、「建置 pipeline」或「Google Cloud 上的 CI」時,答案就是 Cloud Build。
Q:Cloud Deploy 與 Cloud Build 有何不同?
A: Cloud Build 是 CI — 它將原始碼轉化為經過測試的產物。Cloud Deploy 是 CD — 它取得這些產物,並透過包含核准閘門、金絲雀策略與一鍵復原的交付 pipeline,將它們漸進式地部署到 GKE、Cloud Run 或 Anthos。完整的 pipeline 幾乎總是同時使用兩者:Cloud Build 將映像檔發布至 Artifact Registry,然後觸發 Cloud Deploy release。
Q:什麼是錯誤預算,Google SRE 為何推薦它?
A: 錯誤預算是 100% 與您的 SLO 之間的差距。若您的 SLO 是 99.9% 可用性,您的錯誤預算是 0.1%——大約每月允許 43 分鐘不可用時間。錯誤預算的目的是用於版本發布速度:預算充裕時,團隊快速交付;耗盡時,團隊放慢腳步並優先處理可靠性。它透過讓取捨變得明確且可衡量,防止「交付功能」與「維持網站正常運行」之間的假性對立。
Q:SLO 與 SLA 有什麼差別?
A: SLO(Service Level Objective) 是團隊承諾的內部目標(例如:99.95% 可用性)。SLA(Service Level Agreement) 是與客戶的外部合約,通常在違約時有財務罰則(例如:99.9% 可用性,若未達成則退款 10%)。最佳實踐是讓內部 SLO 比外部 SLA 更嚴格,這樣團隊才有緩衝空間在客戶有權申請退款之前偵測並修復問題。
Q:DORA 的四項指標是什麼?
A: 部署頻率(Deployment Frequency)、變更前置時間(Lead Time for Changes)、變更失敗率(Change Failure Rate) 與 平均復原時間(Mean Time to Recovery,MTTR)。它們共同衡量速度(部署頻率、前置時間)與穩定性(變更失敗率、MTTR)。Google 年度 State of DevOps Report 中的頂尖績效團隊,每天部署多次,變更失敗率低於 5%,並在一小時內從事件中恢復。DORA 指標是衡量 DevOps 績效的標準方式。
Q:CDL 考試需要了解基礎設施即程式碼嗎?
A: 您不需要撰寫 Terraform HCL 語法,但您必須認識 IaC 是什麼、為何組織採用它(可重現的環境、可稽核的變更歷史、更快的災難復原),以及哪些工具在 Google Cloud 上實現它(搭配官方 google provider 的 Terraform,加上 Config Connector 與 Infrastructure Manager)。情境題中提到「版本控制的基礎設施」或「可重現的環境」時,就指向 IaC。
總結
DevOps 結合實踐、文化與工具,壓縮從撰寫程式碼到交付價值的時間;SRE 則是 Google 大規模可靠服務運作的具體工程紀律。Google Cloud 透過整合的工具鏈將兩者產品化:
- Cloud Build — 將提交轉化為經過測試產物的受管 CI。
- Cloud Deploy — 具漸進式部署、金絲雀發布與一鍵復原的受管 CD。
- Artifact Registry — 容器映像檔與語言套件的統一儲存庫。
- Skaffold — 本地開發內迴圈。
- Terraform on Google Cloud — 透過 Infrastructure Manager 提供受管執行的 IaC 標準。
- Cloud Operations Suite — SLI、SLO 與警示的可觀測性骨幹。
SRE 支柱——SLI、SLO、SLA、錯誤預算、雜務消除、無責難事後檢討——讓組織以可衡量、可持續的方式平衡速度與可靠性。DORA 指標——部署頻率、前置時間、變更失敗率、MTTR——讓領導者能將團隊與業界做基準比較。身為 Cloud Digital Leader,您的職責是將這些概念轉化為商業成果(更快的版本發布、更低的流失率、可預測的成本),並將每個情境對應到正確的 Google Cloud 服務。掌握這套框架,CDL 考試上所有的 DevOps 或 SRE 題目都將迎刃而解。