共用方式為


啟用自動化的建議

適用於此 Azure 架構完善的架構作業卓越檢查清單建議:

OE:10 針對生命周期考慮、啟動載入和套用治理和合規性防護欄等作業,預先設計和實作自動化。 請勿稍後嘗試改造自動化。 選擇平臺提供的自動化功能。

本指南說明設計及實作工作負載以啟用自動化的建議。 將工作負載設計成自動化,以確保布建資源、調整和部署等例行工作能快速且可靠地執行。 自動化可簡化維護工作,並可讓您更有效率地更新、修補和升級系統。

關鍵設計策略

設計工作負載元件以支援自動化

您可以將工作負載設計為支援自動化,從構想階段到進行中的改進階段。 首先,請考慮您想要如何在工作負載中套用自動化,以協助確保您已將必要的部分放在原位。 請以架構完善的架構架構支柱來考慮您的工作負載,以協助規劃您將使用的自動化類型。 您可以將許多安全性、可靠性、效能、作業和成本控制的功能自動化。

以自動化為考慮設計,以將工作負載執行之後的重構降到最低。 決定要使用的自動化工具時,請考慮您的工作負載需求。 您的小組可能已經熟悉現成的自動化工具。 採用這些工具可讓工作負載自動化的路徑變得更容易,但請注意其與雲端平臺的限制和相容性。 例如,某些自動化工具可能會與 Azure CLI 工具整合,而有些則可能需要 REST 介面。 請一律調查雲端平臺所提供的工具,以確保它們相容,並提供您需要的功能。 您可以主動規劃自動化方式的範例包括:

  • 部署:將應用程式和基礎結構部署自動化,以確保可預測的標準。 藉由開發部署標準、針對您將使用的工具訓練小組,以及實作必要的基礎結構,以規劃自動化部署。

  • 驗證:使用協調流程或原則工具,自動驗證工作負載的合規性需求。 識別工作負載的適當驗證工具,並計劃實作必要的系統,例如協調流程伺服器。

  • 自動調整:在整個基礎結構中使用自動調整,以協助您達到可靠性和效能需求。 除了規劃備援和自然成長之外,您應該事先在工作負載中配置IP位址空間和子網,以考慮調整作業。

捨:設計工作負載以啟用自動化時,請考慮您想要維持的控制程度,以及透過自動化獲得的效率。 在某些情況下,您的工作負載可能不夠成熟,無法自動化某些函式,或者您可能需要自動化所提供的彈性層級。

在設計工作負載時,也請考慮小組的技能集。 如果高度自動化需要小組無法支援的工具,您可能需要使用較不完整的設計做為中繼步驟。

在生命週期期間重新流覽自動化設計

工作負載在雲端中執行之後,請務必優先進行持續改善。 觀察您的工作負載運作情形、分析使用模式,並檢閱與您的工作負載相關的客戶行為,以找出您可以改善自動化的區域。 尋找增強現有自動化或引進新自動化的方法,以改善客戶體驗。 例如,您可能已啟用自動化調整功能,但工作負載增加是短暫的。 您可以整合相應縮小自動化,以在負載低於閾值時減少 CPU 使用量。

本指南的下列各節提供自動化特定區域的建議,可協助您進行工作負載設計和實作。

自動化啟動載入

啟動程序是指在佈建資源之後,但在資源可供做為工作負載集區一部分使用之前,所必須進行的資源組態更新。 啟動載入通常與虛擬機(VM)相關聯,但許多其他資源必須設定為部署程式的一部分,包括平臺即服務(PaaS)技術和容器裝載技術,例如 Azure Kubernetes Service (AKS)。

您的雲端平臺可能會為您提供啟動載入解決方案,您應該盡可能使用。 例如,您可以使用 Azure 中的 VM 擴充功能,在部署程式期間進行預先定義的組態變更,並插入 PowerShell 腳本來自定義組態變更。

將自動化納入存取管理

設計驗證和授權策略時,將自動化納入考慮。 請務必在生產工作負載中維持最高層級的安全性,但這可能會影響自動化。 例如,使用生物特徵辨識或多重要素驗證會增加自動化設計中必須考慮的複雜度。 使用非人的安全帳戶進行自動化驗證,例如受控識別、工作負載身分識別或憑證。 請確定您已在自動化中包含秘密和金鑰管理,以提高驗證安全性。

設計工作負載的變化

藉由在成品中建置彈性,避免在進行小型變更時,不必要地部署新的基礎結構。 例如,您不必在功能旗標變更時重新部署基礎結構,而是使用設定為更新應用程式組態等元件的參數。 請務必清楚定義並記錄如何使用變異性來避免過度使用和設定漂移。

建置控制平面

控制平面是後端系統或工具套件,您用來透過統一介面管理應用程式和其相依性。 建置您的控制平面,例如 REST 介面、CLI 或 Webhook,以支援外部工具的自動化。

透過控制平面公開維護作業,讓您協調工作負載元件,例如有序備份和還原、啟動載入、設定、匯入/匯出和批處理作業。 在決定要透過控制平面公開的作業時,請小心選擇正確的粒度層級。

採用數據驅動方法來開發自動化

開發監視策略,以擷取驅動所需自動化類型的計量。 使用結構化記錄和自定義計量,以易於使用自動化工具辨識的格式來提供自動化所需的資訊。 您擷取的計量應該與監視系統中定義的閾值配對,以在適當時觸發警示和自動化動作,例如通知或自我修復機制。 如需詳細資訊,請參閱 自我修復和自我保護的建議。

自動化使用者生命週期事件

設計您的應用程式和基礎結構,以允許個人或多租用戶客戶的自動化用戶上線和下線。 透過腳本、基礎結構布建和取消布建,以及認證和秘密管理,規劃自動化資料庫更新。

自動化 Desired 狀態設定

在您的持續工作負載管理中,您可以將資源中的 Desired 狀態設定 (DSC) 自動化,以協助確保它們符合合規性和商務需求。 DSC 自動化可協助確保快速攔截並補救設定漂移。 您可以使用協調流程工具或原則管理工具將 DSC 自動化。 請考慮協調流程工具,例如 Azure DevOps 服務或 Jenkins,做為推送式機制。 協調流程工具允許透過工作流程事件推送組態更新,例如手動或自動化部署。 這些更新會在部署腳本中定義的工作順序中執行。 原則管理工具會使用提取式機制,這表示系統會在工作負載的基礎層級執行,以定期輪詢工作負載,以針對您定義的 DSC 檢查其狀態。 如果輪詢識別不對齊或設定漂移,此工具會採取更正動作。 在協調流程與原則管理工具之間決定時,請考慮下列因素:

  • 協調流程工具沒有內建功能,可主動輪詢您的工作負載是否有設定漂移。 協調流程工具應該整合到您的持續整合和持續傳遞 (CI/CD) 管線中,以維護基礎結構即程序代碼 (IaC) 部署和管理的標準。 使用協調流程工具的優點是,部署時一律會完整設定資源。

  • 原則管理工具可讓您定義影響一或多個資源群組的原則。 當資源使用原則管理系統簽入時,會強制執行這些原則。 使用原則管理的優點是這些系統不是程式碼驅動,因此您的小組操作員可能更容易採用這些系統。

在協調流程或原則工具之間決定時,請考慮您在部署時是否必須針對新資源進行設定更新。 也請考慮在程式代碼中定義更新是否符合您的作業做法,以及您計劃部署的資源類型數量。 如果資源類型有許多不同的組態,原則工具可能是管理更新的較簡單方式。

Azure 促進

原則管理

Azure 原則:使用 Azure 原則,您可以強制執行標準並大規模評估合規性。 Azure 原則 提供匯總檢視,以評估合規性儀錶板中工作負載環境的整體狀態。 或者,您可以使用 Azure 原則 來評估細微層級上的每個資源和原則。 您也可以使用 Azure 原則 自動補救新資源,或大量補救現有的資源。

捨:將自動化從 CI/CD 管線卸除至平臺工具或服務,例如 Azure 原則,可以簡化管線,但有缺點,例如使用多個系統的額外管理負擔。 例如,平台服務中的執行失敗不會在您的管線記錄中攔截,而且必須以智慧方式饋送至您的可檢視性平臺,以便通知適當的合作物件。

啟動程式自動化

Azure 虛擬機器 擴充功能:虛擬機器 擴充功能是小型套件,可在 VM 上執行部署後設定和自動化。 有數個擴充功能可用於不同的設定工作,例如執行腳本、設定反惡意代碼解決方案,以及設定記錄解決方案。 使用 Azure Resource Manager 範本、Azure CLI、Azure PowerShell 模組或 Azure 入口網站,在 VM 上安裝並執行這些擴充功能。 每個 VM 都有一個已安裝的 VM 代理程式,可管理擴充功能的生命週期。

一般而言,VM 擴充功能會使用自定義腳本擴充功能來安裝軟體、執行命令,以及在 VM 或 Azure 虛擬機器擴展集 上執行組態。 您可以將這些擴充功能設定為 IaC 部署的一部分執行,以便它們使用 Azure VM 代理程式在新 VM 上執行。 擴充功能也可以使用 Azure CLI、PowerShell 模組或 Azure 入口網站,在 Azure 部署外部執行。

Cloud-init: Cloud-init 是第一次開機時設定 Linux VM 的產業工具。 與 Azure 自定義腳本擴充功能類似,cloud-init 可讓您在 Linux VM 上安裝套件並執行命令。 您可以使用 cloud-init 進行軟體安裝、系統設定和內容預備。 Azure 包含許多已啟用 cloud-init 的 VM 映射,可跨已知的 Linux 散發套件。 如需完整清單,請參閱 Azure 中 VM 的 cloud-init 支援。

Azure 部署文本資源: 當您使用 Azure 部署時,您可能需要執行任意程式代碼,以啟動載入使用者帳戶、Kubernetes Pod 或從非 Azure 系統查詢數據。 由於這些作業都無法透過 Azure 控制平面存取,因此需要個別的機制。 如需詳細資訊,請參閱 Microsoft.Resources deploymentScripts。 如同任何其他 Azure 資源,部署腳本資源:

  • 可用於 Azure Resource Manager 範本。

  • 包含其他資源中的 Azure Resource Manager 範本相依性。

  • 取用輸入並產生輸出。

  • 使用使用者指派的受控識別進行驗證。

部署時,部署腳本會執行 PowerShell 或 Azure CLI 命令和腳本。 您可以在 Azure 入口網站 或使用 Azure CLI 和 PowerShell 模組來觀察腳本執行和記錄。 您可以在文稿失敗後自定義執行環境的變數、逾時選項和資源管理。

使用 GitOps 啟動 AKS 叢集:您可以使用 GitOps 和 Flux v2 叢集擴充功能來啟動新佈建的 AKS 叢集,方法是在 GitHub 存放庫中宣告您的組態設定。 因為 AKS 叢集檔案會儲存在 GitHub 存放庫中,所以會建立版本版本,而且版本之間的變更很容易追蹤。 Kubernetes 控制器會在叢集中執行,並藉由從存放庫提取檔案,以持續協調叢集狀態與 Git 存放庫中宣告的所需狀態。 如需詳細資訊,請參閱 AKS 基準參考架構

設定管理

Azure 自動化 狀態設定 是由 Azure 原則 客體設定功能所管理的 DSC 管理工具,可用來撰寫、管理及編譯任何雲端或內部部署數據中心節點的 PowerShell DSC 組態。 您也可以使用此工具匯入 DSC 資源,並將設定指派給目標節點。

Azure 應用程式組態 是一項服務,可用來集中管理應用程式設定和功能旗標。 其可與 Azure 金鑰保存庫 搭配運作,因此您可以在環境中安全地管理各種不同的應用程式設定。

變更追蹤和清查

使用 Azure 監視代理程式 變更追蹤和清查會追蹤 Azure VM 和已啟用 Arc 的 VM 中的 OS 設定漂移。 這會自動偵測漂移、清查執行中的服務,以及在工作負載中的虛擬機上安裝套件。 由變更追蹤和清查追蹤的專案包括:

  • 已安裝的 Windows 和 Linux 軟體
  • 密鑰 Windows 和 Linux 檔案
  • Windows 登錄機碼
  • Windows 服務和 Linux 精靈

卓越營運檢查清單

請參閱一組完整的建議。