自動執行及管理變更

Last reviewed 2024-10-31 UTC

Google Cloud 架構完善架構的卓越營運支柱中,這項原則提供相關建議,協助您自動化及管理雲端工作負載的變更。包括實作基礎架構即程式碼 (IaC)、建立標準作業程序、實作結構化變更管理程序,以及使用自動化和協調程序。

原則總覽

變更管理和自動化在確保雲端環境內順利且受控的轉換過程中,扮演至關重要的角色。如要有效管理變更,您必須採用策略和最佳做法,盡量減少中斷,並確保變更與現有系統順暢整合。

有效的變更管理和自動化作業包含下列基本要素:

  • 變更控管:制定明確的變更管理政策和程序,包括核准程序和溝通計畫。
  • 風險評估:找出與變更相關的潛在風險,並透過風險管理技術降低風險。
  • 測試與驗證:徹底測試變更,確保符合功能和效能需求,並降低潛在的迴歸問題。
  • 控管部署作業:以控管方式實作變更,確保使用者順利轉換至新環境,並提供機制,以便在必要時順利復原。

這些基本要素有助於減少變更的影響,並確保變更對業務營運產生正面影響。這些元素代表程序、工具和管理,是營運準備就緒的重點領域。

建議

如要自動執行及管理變更,請參考下列各節的建議。本文中的每項建議都與一或多個營運準備就緒的重點領域相關。

採用 IaC

基礎架構即程式碼 (IaC) 是管理雲端基礎架構的變革性方法。您可以使用 Terraform 等工具,以宣告方式定義及管理雲端基礎架構。IaC 可協助您實現一致性、可重複性,並簡化變更管理作業。同時還能加快部署速度,並提升穩定性。這項建議與運作準備就緒的重點領域相關:程序和工具。

為雲端部署作業採用 IaC 方法的主要優點如下:

  • 使用者可讀取的資源設定:採用 IaC 方法時,您可以宣告使用者可讀取的雲端基礎架構資源格式,例如 JSON 或 YAML。基礎架構管理員和作業人員可以輕鬆瞭解及修改基礎架構,並與他人協作。
  • 一致性和可重複性:IaC 可確保基礎架構部署作業的一致性和可重複性。無論是誰執行部署作業,您都能確保每次佈建及設定基礎架構的方式都相同。這種做法有助於減少錯誤,並確保基礎架構一律處於已知狀態。
  • 責任歸屬和簡化疑難排解:IaC 方法有助於改善責任歸屬,並簡化問題排解程序。將 IaC 程式碼儲存在版本控管系統中,即可追蹤變更,並找出變更時間和變更者。如有需要,您可以輕鬆復原至先前的版本。

導入版本管控機制

Git 等版本控制系統是 IaC 程序的關鍵元件。這項技術提供強大的變更管理和風險降低功能,因此廣受採用,無論是透過內部開發或 SaaS 解決方案皆可使用。這項建議與營運準備就緒的重點領域相關:控管和工具。

透過追蹤 IaC 程式碼和設定的變更,版本控管可提供程式碼演變的能見度,讓您更容易瞭解變更的影響,並找出潛在問題。這項強化功能可讓處理相同 IaC 專案的團隊成員更清楚瞭解情況,進而促進彼此合作。

大多數版本控制系統都能讓您輕鬆復原變更。這項功能有助於降低非預期後果或錯誤的風險。在 IaC 工作流程中使用 Git 等工具,可大幅改善變更管理程序、促進協作及降低風險,進而提高 IaC 實作效率和可靠性。

建構 CI/CD 管道

持續整合和持續推送軟體更新 (CI/CD) 管道可簡化雲端應用程式的開發和部署程序。CI/CD 管道會自動執行建構、測試和部署階段,因此能以更快的速度和更高的頻率發布軟體,同時提升品質控管。這項建議與營運準備狀態的工具重點領域相關。

CI/CD 管道可確保程式碼變更持續整合至中央存放區,通常是 Git 等版本管控系統。持續整合有助於及早偵測及解決問題,並降低發生錯誤或相容性問題的可能性。

如要為雲端應用程式建立及管理 CI/CD 管道,可以使用 Cloud Build Cloud Deploy 等工具。

  • Cloud Build 是一項全代管的建構服務,可讓開發人員以宣告式方式定義及執行建構步驟。可與熱門原始碼管理平台無縫整合,並由程式碼推送和提取要求等事件觸發。
  • Cloud Deploy 是一項無伺服器部署服務,可自動將應用程式部署到各種環境,例如測試、試行和實際工作環境。這項服務提供藍綠部署、流量拆分和復原功能,方便您管理及監控應用程式部署作業。

整合 CI/CD pipeline 與版本控管系統和測試架構,有助於確保雲端應用程式的品質和可靠性。在 CI/CD 程序中執行自動化測試,開發團隊就能在程式碼部署至正式版環境前,快速找出並修正任何問題。這項整合有助於提升雲端應用程式的整體穩定性和效能。

使用設定管理工具

Puppet、Chef、Ansible 和 VM Manager 等工具可協助您自動設定及管理雲端資源。使用這些工具,即可確保雲端環境中的資源一致性與法規遵循。這項建議與營運準備程度的工具相關。

自動設定及管理雲端資源可帶來下列好處:

  • 大幅降低人為錯誤的風險:如果涉及手動程序,人為錯誤導致失誤的機率較高。設定管理工具可自動執行程序,確保所有雲端資源都套用一致且正確的設定,進而降低這類風險。這項自動化作業可提升雲端環境的可靠性和穩定性。
  • 提升作業效率:將重複性工作自動化,讓 IT 人員能專心處理更具策略價值的計畫。這項自動化功能可提高工作效率、節省成本,並改善因應不斷變化的業務需求時的反應速度。
  • 簡化複雜雲端基礎架構的管理作業:隨著雲端環境的規模和複雜度日益增加,資源管理作業也越來越困難。設定管理工具提供集中式平台,可管理雲端資源。這些工具可協助您輕鬆追蹤設定、找出問題及實作變更。使用這些工具可提升雲端環境的能見度、控制力和安全性。

自動測試

將自動化測試整合至 CI/CD 管道,有助於確保雲端應用程式的品質和可靠性。在部署前驗證變更,可大幅降低錯誤和回歸的風險,進而打造更穩定且強大的軟體系統。這項建議與運作準備程度的這些重點領域相關:程序和工具。

在 CI/CD 管道中加入自動化測試的主要優點如下:

  • 提早偵測錯誤和瑕疵:自動化測試有助於在開發流程早期偵測錯誤和瑕疵,避免這些問題在生產過程中造成重大影響。這項功能可避免在開發過程的後續階段進行成本高昂的重工和修正錯誤,進而節省時間和資源。
  • 符合標準的高品質程式碼:自動測試可確保程式碼符合特定標準和最佳做法,有助於提升程式碼整體品質。這項功能可讓您建構更易於維護且可靠的應用程式,減少發生錯誤的機率。

您可以在 CI/CD 管道中使用各種測試技術。每種測試類型都有特定用途。

  • 單元測試的重點在於測試個別程式碼單元 (例如函式或方法),確保這些單元能正常運作。
  • 整合測試會測試應用程式不同元件或模組之間的互動,確認這些元件或模組能否正常協同運作。
  • 端對端測試通常會與單元和整合測試搭配使用。端對端測試會模擬實際情況,測試整個應用程式,確保應用程式符合使用者的需求。

如要將自動化測試有效整合至 CI/CD 管道,請務必選擇合適的測試工具和架構。市面上有許多不同選項,各有優缺點。您也必須制定明確的測試策略,說明要執行的測試類型、測試頻率,以及測試通過或失敗的標準。按照這些建議操作,可確保自動測試程序有效率且成效良好。這類程序可提供寶貴的洞察資料,協助您瞭解雲端應用程式的品質和可靠性。