共用方式為


實作自動化的建議

適用於此架構完善的架構卓越營運檢查清單建議:

OE:09 自動化所有因人為介入的見解和適應性而受益的工作,都是高度程式性的,並且具有保質期,可產生自動化投資報酬率。 可能的話,請選擇自動化與自定義實作的現成軟體。 將所有自動化視為工作負載元件,並將架構良好的架構要素套用至其設計和實作。

本指南說明在工作負載中採用自動化的建議。 您可以將重複且容易發生人為錯誤的工作自動化,以協助小組提高效率並遵守標準。 自動化工作,讓您的工作負載簡化且一致。 自動化可讓您的作業和工程小組更有效率,因為它可讓他們有更多時間處理其他改進。 自動化是工作負載管理所有層面的強大工具。 深思熟慮地實作自動化,以賦予貴組織權力。

關鍵設計策略

當您開發工作負載時,尋找利用自動化的機會,以減少管理負擔並將人為錯誤降到最低。 評估這些機會,並考慮其為貴組織帶來的價值。 若要將自動化投資的價值最大化,請優先處理簡單、程式性且保質期很長的工作。 套用自動化不是全無策略。 有些工作流程可能有需要人為介入的作業,例如決策點。 這些工作流程仍可從自動化中獲益,以執行其他工作。

評估要自動化的工作

請考慮下列建議,以確保您優先處理受益於自動化的工作:

  • 目標為輕鬆獲勝。 著重於高度程式性且容易發生人為錯誤的工作。 這些工作高度自動化。 它們已明確定義,它們不受變數所影響,這些變數會增加複雜度,而且會在一般作業中執行。 相反地,請勿優先處理需要撰寫複雜腳本以考慮變數現象或很少發生之工作的自動化工作。

    高度自動化工作的範例包括重新啟動伺服器、建立帳戶,以及將記錄傳送至數據存放區。 這些工作可能會依排程、回應事件或監視警示,或視需要根據外部因素進行。

  • 尋找賦予操作員權力並釋放中小企業的方法。 您的組織中可能有依賴升級的專家,這些升級可能不必要。 例如,當您將新客戶上線至多租用戶解決方案時,您的資料庫管理員可能會經常收到建立新資料庫的要求。 如果您為技術支援中心小組建置自助入口網站,您可以讓他們安全地自行建立空的資料庫。 或者,作為中繼步驟,您可以建立要執行的腳本,將 SME 的要求和步驟自動化。

  • 專注於您的投資報酬率。 高價值自動化需要最少的管理額外負荷,並增加可示範的效率程度。 例如,如果您每天可以藉由自動化資料庫專案來節省營運小組一小時的時間,您可以給予他們時間來尋找其他區域以進行改善。

實作自動化的區域

在整個工作負載生命週期中採用自動化,從開發到日常管理。 使用下列範例清單可協助您考慮工作負載生命週期中可受益於自動化的廣泛領域。 您可以自動化:

  • 管線定義、執行和管理:使用持續整合和持續傳遞 (CI/CD) 工具,例如 Azure DevOps 和其他 DevOps 工具,自動定義管線及其執行方式。 這些工具可協助您自動化 CI/CD 工作或其他工作,例如建立報告。

  • 部署:使用 Azure Resource Manager 範本、Bicep、Terraform 和 Ansible 等工具,將工作負載開發和發行程式自動化。 使用基礎結構即程式代碼 (IaC) 方法,以相同的自動化平臺部署和更新基礎結構。

  • 測試:許多工具都可用於自動化測試程式。 這些工具可以從您的品質保證小組減輕重大負擔,並確保測試已標準化且可靠。

  • 調整:使用平臺提供的功能和其他工具,例如協調流程工具,在負載增加或減少時自動調整基礎結構。

  • 監視和警示:使用監視解決方案中可用的工具,自動註冊新部署的資源,並設定警示觸發的動作,以協助在問題發生時加速補救。

  • 自我修復:使用監視系統所產生的警示,將動作自動化,並復原故障的元件或作業。 如需詳細資訊,請參閱 自我修復和自我保護的建議。

  • 組態管理:使用協調流程和原則工具,以確保所有資源都執行相同的設定,且合規性需求會在您的工作負載之間強制執行。

  • 其他系統管理工作:使用腳本將重複的工作自動化,例如更新資料庫記錄或 DNS 記錄。

  • 核准:讓系統根據預先定義的規則自動做出核准決策,以改善具有核准網關的工作流程效率。 此方法鼓勵使用標準化表單和範本,以提升程式的效率。 高環境中的自動核准可能會有風險。 緊密專注並測試您的自動化核准,以確保已定義特定準則來授與核准。

  • 新的使用者和新員工上線:您可以將許多與新應用程式使用者或新員工相關聯的工作自動化,例如資料庫更新和認證建立。

  • 監視和警示:利用可檢視性平臺所提供的自動化功能。 自動註冊新裝置,以監視和警示異常狀況。

選擇適當的自動化工具

在內部開發自己的自動化需要大量時間,而且可以為您的開發小組帶來管理負擔。 他們需要維護內部自動化工具,就像他們執行任何其他內部軟體一樣。 建議您在符合需求時使用現成的工具。 在商業、開放原始碼 和雲端平臺提供的工具之間,有許多可用的選項。 您可能會使用各種工具來建置所需的自動化。 依賴內部專業知識來協助在評估工具時引導您的決策。 您的小組可能更熟悉某些開發語言和架構。 您一開始可以專注於沒有高學習曲線的現成工具。 反映您計劃使用自動化解決的工作,並投資可特別處理這些工作的工具。 請勿購買您通常偏好的工具,然後考慮之後的工作。

請注意當您建置自動化時,可能會使作業複雜的因素,例如版本鎖定和外掛程式過度使用。 外掛程式,例如 Jenkins 或 Azure DevOps 外掛程式,是新增功能的絕佳方式。 當您的自動化目標受益時,您應該採用外掛程式。 但是,當您使用多個外掛程式來執行單一工作時,可能會使自動化更新和疑難解答變得困難。 在您使用外掛程式時,請明智。 也請避免具有架構版本相依性的解決方案,因為它們是經過一段時間維護的負擔。 為了協助將這類問題的風險降到最低,請標準化您選取的自動化工具和外掛程式,並針對所有自動化專案使用原始檔控制。

將自動化整合到您的工作負載

針對您用來建置自動化的任何工具,可讓您輕鬆地存取及管理操作員。 為您的工作負載小組提供清楚且易於使用的介面。 您可以提供 CI/CD 管線、API 和連結庫的存取權。 如同自動化支援的工作負載,您需要全面管理自動化。 以與其他工作負載元件相同的程度保護自動化。 監視自動化,並受限於與其他工作負載元件相同的測試通訊協定。

考量

  • 有時候,如果沒有任何現成的解決方案符合您的需求,您從自動化中獲得的效率會超過開發自己解決方案的管理負擔。 在這些情況下,在您的開發努力中要明智。 將焦點縮小到只開發您需要涵蓋無法透過現成解決方案解決的差距,並將相依性等複雜度降到最低。

  • 需要高度維護的複雜自動化,作業小組難以管理和疑難解答。 讓自動化工作緊緊專注於只執行離散工作。 嘗試將其他工具或元件的相依性降至最低。

  • 請深思熟慮使用手動程式。 如果您決定不自動化作業,請建立操作員的逐步檢查清單,徹底記錄手動程式。 這種做法可減少人為錯誤的機會,例如運算元錯誤地執行錯誤的進程。 本檔也可協助您在未來設計該程式的自動化。

  • 當您使用混合式手動和自動化方法時,必須特別小心。 如果腳本執行大部分的程式,但接著會延遲給人員特定部分或決策,請務必提供人員必要的內容和資訊,以做出明智的決策。

Azure 便利化

Azure 提供許多工具來協助您將工作負載的工作自動化。

IaC 工具:您可以使用 Terraform、Bicep 和 Azure Resource Manager 進行 IaC 部署。 根據您的需求和小組熟悉這些工具,您可以使用其中一或多個工具來部署和管理資源。

Azure Functions:Azure Functions 是一種無伺服器工具,您可以使用慣用的開發語言將工作自動化。 函式提供一組完整的事件驅動觸發程式和系結,將函式連線至其他服務。 您不需要撰寫額外的程式代碼。

適用於 Azure 的 GitHub Actions:您可以使用適用於 Azure 的 GitHub Actions 將 CI/CD 程式自動化。 GitHub Actions 與 Azure 整合以簡化部署。 您可以建立工作流程,以建置和測試存放庫中的每個提取要求,或將合併的提取要求部署至生產環境。

GitHub Actions 不只是 DevOps,可讓您在存放庫中發生其他事件時執行工作流程。 例如,當有人在存放庫中建立新問題時,您可以執行工作流程來自動新增適當的標籤。

Azure 自動化:P owerShell 和 Python 是自動化操作工作的熱門程式設計語言。 使用這些語言來執行作業,例如重新啟動服務、在數據存放區之間傳輸記錄,以及調整基礎結構以符合需求。 您可以在程式代碼中表達這些作業,並視需要執行這些作業。 僅此一項,這些語言就不會提供集中式管理、版本控制或執行歷程記錄的平臺。 這些語言也缺乏回應監視驅動警示等事件的原生機制。 若要提供這些功能,您需要自動化平臺。

自動化 提供 Azure 裝載的平臺,可跨雲端和內部部署環境裝載和執行 PowerShell 和 Python 程式代碼,包括 Azure 和非 Azure。 PowerShell 和 Python 程式代碼會儲存在自動化 Runbook 中。 使用自動化可以:

  • 視需要觸發 Runbook、依排程或透過 Webhook。

  • 執行歷程記錄和記錄。

  • 整合秘密存放區。

  • 整合原始檔控制。

Azure 更新管理員:更新管理員是統一的服務,可協助管理和控管虛擬機的更新。 您可以監視整個工作負載的 Windows 和 Linux 更新合規性。 您還可以使用更新管理員,以即時進行更新,或將更新排程在定義的維護視窗內執行。 使用更新管理員來:

  • 監督整個機器群的合規性。
  • 排程週期性更新
  • 部署重大更新

Azure 部署環境:部署環境可讓開發小組使用以專案為基礎的範本,快速建立一致的應用程式基礎結構。 這些範本會將設定時間降至最低,並將安全性、合規性和成本效益最大化。 部署環境是預先定義訂用帳戶中部署的 Azure 資源集合。 開發基礎結構管理員可以強制執行企業安全策略,並提供一組精心策劃的預先定義 IaC 範本。

開發基礎結構系統管理員會將部署環境定義為目錄專案。 目錄項目裝載在 GitHub 或 Azure DevOps 存放庫中,稱為 目錄。 目錄專案是由 IaC 範本和 manifest.yaml 檔案所組成。

您可以編寫建立部署環境的腳本,並以程序設計方式管理環境。

Azure Logic Apps 和 Microsoft Power Automate:當您建置自定義數位程式自動化 (DPA) 來處理工作負載工作,例如核准流程或建置 ChatOps 整合時,請考慮使用 Logic AppsPower Automate。 您可以從內建連接器和範本建構工作流程。 Logic Apps 和 Power Automate 是以相同的基礎技術為基礎所建置,而且非常適合以觸發程式為基礎的工作或以時間為基礎的工作。

自動調整:許多 Azure 技術都有內建的自動調整功能。 您也可以使用 API 將其他服務程式設計為自動調整。 如需詳細資訊,請參閱 設計可靠調整策略的建議。

Azure 監視器動作群組:若要在觸發警示時自動執行自我修復作業,請使用 Azure 監視器動作群組。 您可以使用 Runbook、Azure 函式或 Webhook 來定義這些作業。

範例

如需搭配其他 Azure 服務使用自動化的範例,請參閱使用 Azure 事件方格 進行作業自動化。 此範例使用Logic Apps和 Event Grid 將作業工作自動化。

卓越營運檢查清單

請參閱一組完整的建議。