Microsoft AZ-400: 使用 Azure Pipelines 的 CI/CD 管線 — 學習指南
屬於 Microsoft DevOps Engineer Expert AZ-400 — 學習指南. 使用經過驗證的解答練習: Microsoft 考試中心, 或參加限時模擬考試: ExamRoll.io.
部署、環境、策略與閘道
部署作業提供第一級的 CD 語意。部署作業會以一個環境為目標,並在一個策略下執行,該策略控制著推送和生命週期掛鉤 (lifecycle hooks):
- 環境代表部署目標 (例如 dev、test、prod),可以包含 Kubernetes 叢集、虛擬機器等資源,或用於平台無關部署的通用「無 (none)」資源。環境統一了遙測、核准與檢查。
- 核准與檢查會附加到環境和服務連線上。核准要求指定的核准者同意後,部署才能繼續。檢查則作為閘道,評估各種條件,例如營業時間、必要的工作項目、Azure Monitor 信號、呼叫 REST API 或 Azure Functions,以及分支保護。如果效能基準或合規性條件未被滿足,這些機制會阻止部署晉升。
- 策略決定了更新的推送方式:
- runOnce:透過單一波次應用變更,並帶有 preDeploy 和 postDeploy 掛鉤。
- rolling:跨多個執行個體分批部署,並設有 maxParallel 和失敗閾值以確保安全推進。
- canary:透過增量方式逐步轉移流量,並在完全推送前,利用 routeTraffic 和 postRouteTraffic 階段進行驗證。
- 藍綠部署 (blue-green) (也稱為紅黑部署 red/black):透過部署到一個平行的環境或 slot,並在負載平衡器或 App Service slot 交換時切換流量來實現。雖然藍綠部署不是一個具名的 YAML 策略,但它是透過環境、路由和交換任務來達成的,並藉由還原流量提供快速回復的能力。
將部署邏輯編碼為每個環境階段的部署作業。利用環境檢查來建立穩固的閘道,而非使用臨時性的腳本輪詢。當需要祕密時,應透過服務連線從 Azure Key Vault 擷取,而不是將它們嵌入變數中。
成品、快取與服務連線
成品和快取可以改善重用性與效能:
- 管線成品 (Pipeline artifacts) 是發布和取用建置產出的原生方式。使用
PublishPipelineArtifact來發布具名成品,並使用DownloadPipelineArtifact從當前或特定的執行中擷取。它們針對 YAML 中的可靠性和跨階段共享進行了優化。當從另一個管線取用時,需宣告一個管線資源,並使用其成品資源名稱來進行精準擷取。 - 通用套件 (Universal packages) 透過 Azure Artifacts 為非特定語言的資產 (例如 CLI 工具、資料檔案) 提供版本化、不可變的二進位檔分發。使用 Universal Packages 任務來發布和下載,透過摘要檢視 (feed views) (例如 prerelease vs release) 進行組織,並在摘要中管理保留期。
- 管線快取 (Pipeline caching) 可加速依賴項的還原。
Cache任務使用一個金鑰 (key) 和路徑 (path)。金鑰應包含鎖定檔 (lockfiles) (如package-lock.json,Pipfile.lock,packages.lock.json,go.sum) 的雜湊值,再加上作業系統和工具版本,以實現精準的快取失效。還原金鑰 (Restore keys) 為部分快取命中提供後備匹配。避免在快取路徑中嵌入祕密,遵守快取大小限制,並在鎖定檔不穩定時,為暫時性工具停用快取。觀察cacheHitVar變數以分支任務行為。
服務連線定義了 Azure Pipelines 用來連接外部系統的身分識別:
- 類型包括
Azure Resource Manager(用於 Azure 訂閱和資源群組)、GitHub(儲存庫讀寫、狀態報告) 和Docker/Container Registry(Docker Hub, ACR)。其他還有適用於 AWS、GCP、通用服務端點和套件登錄檔的類型。 - OIDC 聯盟 (workload identity federation) 透過在 Azure DevOps 和雲端身分識別提供者之間建立信任關係,來移除長期有效的祕密。對於 ARM,需設定一個 Entra ID 應用程式,並將其聯盟認證 (federated credential) 綁定到 Azure DevOps 的簽發者 (issuer) 以及儲存庫/管線宣告 (claims)。在執行期,Azure DevOps 會用一個短期權杖交換雲端存取權杖,從而消除服務主體祕密並降低憑證洩漏的風險。
- 範圍界定與治理至關重要。將 ARM 連線的範圍限定在最小權限 (理想情況是使用自訂 RBAC 的資源群組層級)。停用「授予所有管線存取權限」的選項,改為明確授權給特定的管線。將核准與檢查附加到服務連線上,以在使用前要求人工審查或政策驗證。
← 原始碼控制與儲存庫管理 · 所有領域 · 基礎設施即程式碼與組態管理 →
練習這些題目 → · 在 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.
通過考試 →