Share via


使用基礎結構即程式代碼來更新 Azure 登陸區域

本文說明使用基礎結構即程序代碼 (IaC) 來更新 Azure 登陸區域的優點。 組織在運作時需要更新其登陸區域,以確保組態正確無誤,並回應變更的需求。

IaC 可以管理整個生命週期,而且擅長管理其部署的資源。 組織應該計劃使用 IaC 部署其 Azure 登陸區域。 它需要規劃將現有的非 IaC 資源與以狀態管理支援的 IaC 資源一致。 您必須將現有的資源對應至所需的狀態。

如需詳細資訊,請參閱 讓您的 Azure 登陸區域保持最新狀態。

基礎結構即程式代碼的運作方式

IaC 是指使用計算機可讀取定義檔案來管理基礎結構資源生命週期的做法和工具。 基礎結構的定義會透過管線撰寫、建立版本、部署,然後成為工作負載部署的一部分。

IaC 技術是 宣告式的,這表示當 IaC 執行時,它會將組態設定為程式代碼中所述的內容,而不論其目前狀態為何。 當您透過腳本來設定基礎結構,例如 Azure CLI 或 Azure PowerShell 時,它們勢 在必行。 命令式腳本會執行一組動作,而結果取決於目前狀態加上動作之後的狀態。

因此,如果您有基礎結構做為 Azure 資源的程式代碼定義,您可以視需要執行該定義,而且只會在下列情況下建立變更:

  • 定義會變更以新增資源、移除先前部署的資源,或修改先前部署的資源。
  • 已部署的資源會從組態漂移,以將組態重設為已定義的設定。

您可以使用 IaC 來還原狀態,方法是移除不再需要的資源,並透過許多變更來管理資源的生命週期。

注意

使用 IaC 移除資源的特定機制會有所不同。 例如,Azure Bicep 需要使用 complete 部署類型來補救範圍資源。 此命令僅適用於特定範圍。 針對 Terraform,資源具有 lifecycle 中繼自變數,提供 Terraform 如何處理資源的指示。

針對 Azure 登陸區域,基礎結構即程式代碼有兩個主要選項:

使用基礎結構即程式代碼更新 ALZ 的優點

下列優點說明為何您應該使用基礎結構即程式代碼來更新登陸區域。

減少工作量

相較於進行手動變更,使用基礎結構即程式代碼來執行更新所需的時間較少。 IaC 部署可協助回答下列問題:

  • 目前如何設定資源?
  • 此更新會如何設定?
  • 將進行哪些變更,使其符合此更新?

當基礎結構即程式代碼工具組執行時,它可以產生變更的比較或「差異」讀取。 在認可環境變更之前,請先檢閱此閱讀。

工具組可以編譯變更的資訊,而不是操作員或工程師。

減少錯誤

由於部署的程式設計本質,基礎結構即程式代碼會在進行變更時減少人為錯誤。 它只會變更已定義的內容,而且具有預覽選項,因此可減少因失敗或不完整變更所造成的中斷。 它也改善了測試選項。

版本控制和歷程記錄

基礎結構即程式代碼部署是由定義檔所支援,因此您可以使用原始檔控制來管理定義的版本。 根據您使用的 IaC 方法,您可以參考 Azure 中的 Bicep 部署或 Terraform 的狀態檔案,以檢閱先前部署的歷程記錄。

當您使用原始檔控制做法時,它會建立 IaC 的新分支來新增變更和修訂。 原始檔控制系統中的分支歷程記錄會擷取反覆項目和變更。 您可以使用它將變更部署到測試環境,直到您準備好合併並部署變更至生產環境為止。 如需詳細資訊,請參閱 Azure 登陸區域的測試方法。 在整個週期中,部署記錄會擷取所使用的版本,以及所部署的資源,以提供高度可見的歷程記錄。

針對一般測試目的,請搭配 Bicep 使用這些測試方法。 透過這些方法,您可以在部署程式碼之前執行測試,而且您可以從分支在非生產環境中進行測試。

測試環境

IaC 部署可重複,因此您可以使用相同的定義,根據部署來部署第二個或更多環境。 此方法對於測試變更十分有用。

例如,如果您想要使用 進階版 SKU 來取代您的 Azure 防火牆,您可以部署測試環境並驗證變更而不變更生產環境。

捕捉設定漂移

IaC 提供在更新期間攔截設定漂移的唯一選項。 部署會擷取定義檔的變更,並呈現資源組態與定義不同的實例。

使用 IaC 的登陸區域更新可協助您攔截此設定漂移,並允許您適當地更新程式代碼、透過更新處理這些設定錯誤,或以另一種方式解決這些設定錯誤。

當您透過入口網站、CLI 或非 IaC 方法變更資源時,會實作變更。 下次透過 IaC 執行部署時,它會使用假設或計劃函式,將程式代碼定義狀態與入口網站中實際狀態之間的比較加上旗標。 使用此方法來識別環境是否在程式碼檔案之外修改。

識別錯誤之後,您可以執行 IaC 來嘗試將部署與定義對齊。 使用此方法,根據問題的性質、執行的性質,以及變更的進行方式,找出問題並補救案例。 例如,Terraform 會嘗試將基準還原至已部署的資源,而 Complete Bicep 中的模式部署會移除不屬於定義之資源群組中的資源。 這些工具會偵測並修復設定漂移,但可能無法解決所有問題。

如需詳細資訊,請參閱 頻外變更 和使用 Terraform 偵測和管理漂移。

在入口網站中定義的變更,在 IaC 中實作會很麻煩。 您必須更新程式代碼以符合目前狀態,這通常牽涉到檢閱每個資源變更,並更新其參數以符合「現狀」組態。

如果您使用 IaC 來管理登陸區域或其他資源,您應該只在緊急狀態時在 IaC 外部進行變更。 使用有權直接進行變更的帳戶採取預防措施,例如 Privileged Identity Management。

請檢閱下列文章中的一般自動化和安全性做法:

下一步

探索下列文章中的 IaC 工具簡介: