Google Cloud Well-Architected Framework中,優質營運支柱的這項原則提供建議,協助您自動化及管理雲端工作負載的變更。包括實作基礎架構即程式碼 (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 管道會自動執行建構、測試和部署階段,加快發布速度和頻率,並提升品質驗證 (QC)。這項建議與作業準備度的工具重點領域有關。
CI/CD 管道可確保程式碼變更持續整合至中央存放區,通常是 Git 等版本管控系統。持續整合有助於及早偵測及解決問題,並降低錯誤或相容性問題的可能性。
如要建立及管理雲端應用程式的 CI/CD 管道,可以使用 Cloud Build 和 Cloud Deploy 等工具。
- Cloud Build 是全代管建構服務,可讓開發人員以宣告方式定義及執行建構步驟。可與熱門原始碼管理平台完美整合,並能透過程式碼推送和提取要求等事件觸發。
- Cloud Deploy 是一項無伺服器部署服務,可自動將應用程式部署至各種環境,例如測試、測試和正式環境。這項服務提供藍綠部署、流量拆分和復原等功能,可讓您更輕鬆地管理及監控應用程式部署作業。
將 CI/CD 管道與版本管控系統和測試架構整合,有助於確保雲端應用程式的品質和可靠性。在 CI/CD 程序中執行自動化測試,開發團隊就能在程式碼部署至正式環境前,快速找出並修正任何問題。這項整合功能有助於提升雲端應用程式的整體穩定性和效能。
使用設定管理工具
Puppet、Chef、Ansible 和 VM Manager 等工具可協助您自動設定及管理雲端資源。使用這些工具,即可確保雲端環境中的資源一致且符合法規。這項建議與作業準備度的工具重點領域有關。
自動設定及管理雲端資源可帶來下列好處:
- 大幅降低人為錯誤的風險:如果涉及手動程序,人為錯誤的可能性較高。設定管理工具可自動執行程序,確保所有雲端資源的設定一致且準確,進而降低這類風險。這項自動化作業可提升雲端環境的可靠性和穩定性。
- 提升作業效率:自動執行重複性工作,讓 IT 人員專注於更具策略價值的事務。這項自動化功能可提高工作效率、節省成本,並更快速地因應不斷變化的業務需求。
- 簡化複雜雲端基礎架構的管理作業:隨著雲端環境的規模和複雜度增加,管理資源可能會越來越困難。設定管理工具提供集中式平台,可用於管理雲端資源。這些工具可讓您更輕鬆地追蹤設定、找出問題及實施變更。使用這些工具,可以提高雲端環境的能見度、控管能力和安全性。
自動測試
將自動化測試整合至 CI/CD 管道,有助於確保雲端應用程式的品質和可靠性。在部署前驗證變更,可大幅降低錯誤和迴歸的風險,進而打造更穩定、更強大的軟體系統。這項建議與營運準備度的重點領域有關:程序和工具。
將自動化測試納入 CI/CD 管道的主要優點如下:
- 及早偵測錯誤和瑕疵:自動化測試有助於在開發程序初期偵測錯誤和瑕疵,避免在正式環境中造成重大問題。這項功能可避免在開發流程後期進行昂貴的重工和修正錯誤,進而節省時間和資源。
- 高品質且符合標準的程式碼:自動化測試可確保程式碼符合特定標準和最佳做法,有助於提升程式碼的整體品質。這項功能可讓應用程式更易於維護、更可靠,且不易出錯。
您可以在 CI/CD 管道中使用各種測試技術。每種測試類型都有特定用途。
- 單元測試著重於測試個別程式碼單元 (例如函式或方法),確保其運作正常。
- 整合測試:測試應用程式不同元件或模組之間的互動,確認這些元件或模組能正常搭配運作。
- 端對端測試通常會與單元和整合測試搭配使用。端對端測試會模擬實際情境,測試整個應用程式,確保應用程式符合使用者的需求。
如要有效將自動化測試整合至 CI/CD 管道,您必須選擇合適的測試工具和架構。有許多不同的選項,各有優缺點。您也必須制定明確的測試策略,概述要執行的測試類型、測試頻率,以及測試通過或失敗的標準。只要遵循這些建議,就能確保自動化測試程序有效率且成效良好。這項程序可提供寶貴的深入分析,協助您瞭解雲端應用程式的品質和可靠性。