Google ACE: 部署、組態與自動化 — 學習指南
屬於 Google Associate Cloud Engineer — 學習指南. 使用經過驗證的解答練習: Google 考試中心, 或參加限時模擬考試: ExamRoll.io.
總覽
在 Google Cloud 上的部署、設定與自動化,其核心在於可重複、可稽核且安全的變更交付。良好的實踐依賴於基礎設施即程式碼 (IaC)、宣告式範本、不可變的構件以及標準化的管道。卓越營運來自於冪等性設計、預覽變更、強制執行政策,以及規劃具有清晰回滾路徑的受控推出。以下各節提供實用的模式、指令範例,以及設計選擇背後的理由,包括常見的陷阱與權衡取捨。
基礎設施即程式碼與設定基礎
原則:
- 宣告式範本描述期望的最終狀態;工具會協調實際狀態以使其匹配。這能改善冪等性、可重複性與可稽核性。
- 不可變基礎設施是部署新的執行個體或修訂版本,而非就地修改,這簡化了回滾並減少了漂移。
- 關注點分離:將特定於環境的值參數化,同時重複使用共享的模組或範本。
在 Google Cloud 上使用 Terraform:
- 設定:HCL 檔案定義資源、變數和輸出。使用模組來封裝 VPC、服務帳戶或 GKE 叢集;在內部發布共享模組以標準化模式。
- 狀態:將狀態保存在遠端並進行版本控制。使用具有物件版本控制和儲存桶保留政策的 Cloud Storage 後端。
- 後端區塊範例:
undefined
- 失敗模式:本地狀態或未版本化的儲存桶有資料遺失和並行寫入的風險。對狀態儲存桶強制執行最小權限存取;優先使用短期憑證和服務帳戶模擬,而非金鑰。
- 計畫與套用:
terraform plan提供預覽;在 CI/CD 中透過人工批准來管制對生產環境的套用。謹慎使用-target;頻繁指定目標會增加漂移風險。 - 模組:對模組進行語意化版本控制;鎖定版本以避免非預期的變更。在套用前使用
terraform validate和政策檢查進行驗證。 - 匯入與漂移:
terraform import將現有資源納入管理;之後需仔細審查狀態。透過定期執行terraform plan來偵測漂移。 - 遠端執行:在 Cloud Build 或 Cloud Run 作業中執行 Terraform,並使用 Workload Identity Federation 來避免使用服務帳戶金鑰。快取 providers 以減少建置時間。
Deployment Manager:
- 雖然許多團隊已將 Terraform 標準化,但您仍可能遇到 Deployment Manager。透過更新設定檔來無停機更新部署:
undefined
設定標準:
- 命名:採用一致、可解析的名稱,包含環境、區域、用途和序號,例如:
vpc-prod-usw1-core。 - 標籤:為所有資源附加
env、cost_center、owner和app等標籤;透過政策或驗證來強制執行。 - 標記:使用網路標記來界定防火牆規則的範圍;避免過度使用標記來表示身份或所有權(標籤是更好的選擇)。
- 中繼資料:利用執行個體中繼資料來處理啟動腳本和設定;優先使用帶有校驗和或版本旗標的中繼資料來控制重新執行。避免將密鑰放置在中繼資料中;請使用 Secret Manager。
API、服務啟用、配額與服務帳戶:
- 在自動化的早期階段就啟用所需服務:
undefined
- 在規劃期間驗證配額餘裕;擴展測試應包含配額檢查以避免被節流。
- 為每個工作負載和環境使用專用的服務帳戶;在最窄的範圍內授予最小權限的 IAM 角色。人員存取優先使用群組成員資格,自動化則優先使用服務帳戶模擬。
交付管道與構件晉升
Cloud Build:
- 定義 Cloud Build 步驟來建置、測試和打包構件。使用替代變數來處理動態值,並使用 Secret Manager 來管理憑證。
- 從原始碼變更觸發建置;按儲存庫或環境隔離建置服務帳戶,並僅授予所需權限。
- 快取 Docker 圖層和語言依賴項以縮短建置時間。注意並行建置限制和臨時工作節點的配額。
構件晉升:
- 將容器映像檔或語言套件儲存在 Artifact Registry 中。晉升方式:
- 為不可變的摘要重新加上環境標籤(例如:
:qa、:prod)或 - 將構件複製到特定於環境的儲存庫。
- 為不可變的摘要重新加上環境標籤(例如:
- 權衡取捨:使用標籤的單一儲存庫簡化了探索,但需要嚴格的治理;每個環境使用獨立的儲存庫則能加強隔離和政策執行。
Cloud Deploy:
- 建立一個具有依序目標(例如,dev → qa → prod)的交付管道模型。版本會參照一個特定的構件摘要和部署資訊清單。
- 對於 GKE 和 Cloud Run,Cloud Deploy 使用 Skaffold 設定來渲染和套用資訊清單。設定批准、驗證和管制關卡。
- 推出與回滾:
- 採用漸進式流量轉移的金絲雀部署可減少爆炸半徑。
- 藍/綠部署能實現快速切換和回滾,但代價是需要額外的容量。
- 透過鎖定到上一個良好版本來進行回滾;避免會造成漂移的就地修復。
- 失敗模式:叢集權限不匹配、API 缺失以及資訊清單結構錯誤。透過在建置期間渲染資訊清單並對照叢集政策進行驗證來及早偵測。
安全的變更規劃:
- 對於生產環境,要求進行預覽(plan 或 render)、自動化測試、政策驗證和人工批准。
- 對於 Compute Engine 的託管執行個體群組,當應用程式就緒速度較慢時,應調整更新政策的
maxSurge/maxUnavailable和健康檢查設定,以避免過度佈建。
← 儲存、資料庫與資料服務 · 所有領域 · 監控、日誌記錄與維運疑難排解 →
練習這些題目 → · 在 ExamRoll.io 上限時練習 →
Pass the whole exam — not just this question
You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.
通過考試 →