本文提供自動化訂閱自動販賣實作指引。 訂用帳戶銷售會將要求、部署及控管訂用帳戶的程式標準化,讓應用程式小組可以更快速地部署其工作負載。
我們建立了訂閱自動販賣 Bicep 和 Terraform 模組,您應該用來作為起點。 您應該修改範本以符合您的實作需求。 如需訂閱自動販賣程式的詳細資訊,請參閱 訂閱自動售貨概觀 。
架構
您應該建構訂閱自動販賣自動化,以完成三個主要工作。 訂用帳戶自動銷售應該 (1) 收集訂用帳戶要求資料、(2) 起始平臺自動化,以及 (3) 使用基礎結構即程式碼建立訂用帳戶。 有數種方法可實作訂閱自動販賣自動化,以完成這三項工作。 範例實作 ( 圖 2 ) 顯示一個使用 Gitflow 的方法。 Gitflow 設計符合許多平臺小組用來管理平臺的宣告式方法。
在範例實作中( 圖 2 ), 資料收集工具 會收集訂用帳戶要求資料。 當訂閱要求收到核准時,它會起始平臺自動化。 平臺 自動化 包含要求管線、原始檔控制和部署管線。 要求 管線 會使用資料收集工具中的資料,建立 JSON 或 YAML 訂用帳戶參數檔案。 要求管線也會建立新的分支、認可訂用帳戶參數檔案,並在原始檔控制 中 開啟提取要求。 新的分支會與原始檔控制中的 main 分支合併。 合併會 觸發部署管線 ,以使用基礎結構即程式碼模組建立訂用帳戶。
部署應該根據治理需求將訂用帳戶放在 正確的管理群組中( 請參閱圖 1 )。 部署會建立初步訂用帳戶預算作為成本管理的基礎。 根據工作負載的需求,部署可能會建立空的虛擬網路,並設定對等互連至區域中樞。 平臺小組應該在建立和設定之後,將訂用帳戶交給應用程式小組。 應用程式小組應更新訂用帳戶預算,並建立工作負載資源。
收集資料
收集資料的目標是要接收商務核准,並定義 JSON/YAML 訂用帳戶參數檔案的值。 當應用程式小組提交訂閱要求時,您應該使用資料收集工具來收集必要的資料。 資料收集工具應該與訂閱自動販賣工作流程中的其他系統介面,以起始平臺自動化。
使用資料收集工具。 您可以使用 IT 服務管理 (ITSM) 工具來收集資料,或使用 Microsoft PowerApps 之類的 低程式碼或無程式碼工具來建置客戶入口網站。 資料收集工具應該供應商業規則來核准或拒絕訂用帳戶要求。
收集必要的資料。 您需要收集足夠的資料,以定義 JSON/YAML 訂用帳戶參數的值,以便您將部署自動化。 您收集的特定值取決於您的需求。 您應該擷取要求授權者、成本中心和網路需求(網際網路或內部部署連線能力)。 詢問應用程式小組是否有預期的工作負載元件(應用程式平臺、資料需求)、資料敏感度,以及環境數目(開發、測試、生產前、生產環境)可能很有説明。
驗證資料。 您應該在資料收集程式期間驗證資料。 稍後在平臺自動化階段中更難解決問題。
建立可追蹤的要求。 資料收集工具應該為新的訂用帳戶建立記錄且可追蹤的要求(例如 ITSM 工具中的票證)。 要求應包含所有必要的資料,以符合該訂用帳戶的需求。 您應該將商務邏輯和授權追蹤系結至要求。
與其他內部系統的介面。 必要時,資料收集工具應該會與組織中的其他工具或系統互動。 目標是使用來自其他系統的資料來擴充要求。 您可能需要身分識別、財務、安全性和網路資料來執行自動化。 例如,自動化可以與 IP 位址管理 (IPAM) 工具進行介面,以保留正確的 IP 位址空間。
建立觸發程式。 當訂閱要求收到核准時,資料傳輸應該會觸發平臺自動化。 最好使用資料收集工具的必要資料來建立推播通知。 您可能需要中介軟體層,例如 Azure Functions 或 Azure Logic Apps 來起始程式。
起始平臺自動化
資料收集工具的通知和資料應該觸發平臺自動化。 平臺自動化的目標是建立 JSON/YAML 訂用帳戶參數檔案、將檔案合併至主要分支,並使用基礎結構即程式碼模組加以部署,以建立訂用帳戶。 平臺小組應該擁有和維護平臺自動化。 範例實作中的平臺自動化包含要求管線、原始檔控制和部署管線( 請參閱圖 2 )。
使用 JSON 或 YAML 檔案。 您應該使用結構化資料檔案 (JSON 或 YAML) 來儲存資料以建立訂用帳戶。 您應該記錄檔案的結構,並使它可擴充以支援未來的需求。 例如,下列 JSON 程式碼片段會定義 GitHub 中其中一個 Bicep 模組的訂用帳戶參數值。
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"subscriptionDisplayName": {
"value": "sub-bicep-lz-vending-example-001"
},
"subscriptionAliasName": {
"value": "sub-bicep-lz-vending-example-001"
},
"subscriptionBillingScope": {
"value": "providers/Microsoft.Billing/billingAccounts/1234567/enrollmentAccounts/123456"
},
// Insert more parameters here
}
}
請參閱整個檔案 。 如需更多範例,請參閱 Bicep 範例 和 Terraform 範例
每個訂用帳戶要求使用一個檔案。 訂用帳戶是訂閱自動販賣程式中的部署單位,因此每個訂用帳戶要求都應該有一個專用的訂用帳戶參數檔案。
使用提取要求系統。 建立訂用帳戶參數檔案的 Gitflow 程式應該自動化下列步驟:
- 為每個訂用帳戶要求建立新的分支。
- 使用收集的資料,為分支中的新訂用帳戶建立單一 YAML/JSON 訂用帳戶參數檔案。
- 從您的分支建立提取要求到
main
。 - 使用狀態變更和此提取要求的參考來更新資料收集工具。
範例 實作中的要求管線 會執行這些步驟( 請參閱圖 2 )。 如果工作流程很複雜,您也可以使用裝載在 Azure 中的程式碼型解決方案。
驗證訂用帳戶參數檔案。 提取要求應該觸發 linting 程式來驗證要求資料。 目標是確保部署成功。 它應該驗證 YAML/JSON 訂用帳戶參數檔案。 它也可以確認 IP 位址範圍仍然可用。 您也可以使用人為介入來新增手動檢閱閘道。 他們可以執行最終檢閱,並變更訂用帳戶參數檔案。 輸出應該是 JSON/YAML 訂用帳戶參數檔案,其中包含要建立訂用帳戶的所有資料。
觸發部署管線。 當提取要求合併至 main
分支時,合併應該會觸發部署管線。
建立訂用帳戶
訂閱自動販賣自動化的最後一項工作是建立和設定新的訂用帳戶。 此範例實作會 使用部署管線 ,使用 JSON/YAML 訂用帳戶參數檔案來部署基礎結構即程式碼模組( 請參閱圖 2 )。
使用基礎結構即程式碼。 您的部署應該使用基礎結構即程式碼來建立訂用帳戶。 平臺小組應建立和維護這些範本,以確保適當的控管。 您應該使用 訂閱自動販賣 Bicep 和 Terraform 模組,並加以修改以符合您的實作需求。
使用部署管線。 部署管線會協調新訂用帳戶的建立和設定。 管線應該執行下列工作:
工作類別 | 管線工作 |
---|---|
身分識別 | • 建立或更新 Microsoft Entra 資源,以代表訂用帳戶擁有權。 • 設定工作負載小組部署的特殊許可權工作負載身分識別。 |
控管 | • 放在管理群組階層中。 • 指派訂用帳戶擁有者。 • 設定訂用帳戶層級的角色型存取控制 (RBAC) 以設定安全性群組。 • 指派訂用帳戶層級Azure 原則。 • 設定適用於雲端的 Microsoft Defender註冊。 |
網路 | • 部署虛擬網路。 • 設定虛擬網路對等互連至平臺資源(區域中樞)。 |
預算 | • 使用收集的資料,為訂用帳戶擁有者建立預算。 |
報告 | • 更新 IPAM 等外部系統,以認可 IP 保留專案。 • 使用最終訂用帳戶名稱和全域唯一識別碼 (GUID) 更新資料收集工具要求。 • 通知應用程式小組訂用帳戶已就緒。 |
您需要商業合約,才能以程式設計方式建立訂用帳戶。 如果您沒有商業合約,則需要引進手動程式來建立訂用帳戶,但仍可將訂用帳戶設定的所有其他層面自動化。
建立工作負載身分識別。 部署管線需要許可權,才能使用它介面的所有系統來執行這些作業。 您應該使用受控識別或 OpenID 連線 (OIDC) 向 Azure 進行驗證。
部署後
訂閱自動販賣自動化會以訂用帳戶建立和設定結束。 平臺小組應該在建立之後,將新的訂用帳戶交給應用程式小組。 應用程式小組應更新訂用帳戶預算、建立工作負載資源,以及部署工作負載。 平臺小組會控制訂用帳戶的控管,並隨著時間管理訂用帳戶治理的變更。
強制執行成本管理。 訂用帳戶預算會提供對成本管理至關重要的通知。 部署應該根據訂用帳戶要求資料建立初步訂用帳戶預算。 應用程式小組會收到訂用帳戶。 他們應該更新預算,以符合工作負載的需求。 如需詳細資訊,請參閱
管理訂用帳戶治理。 您應該在工作負載的治理需求變更時更新訂用帳戶。 例如,您可能需要將訂用帳戶移至不同的管理群組。 您應該為其中一些例行作業建置自動化。 如需詳細資訊,請參閱
下一步
訂用帳戶自動販賣可簡化和標準化訂閱建立程式,並將其置於組織的治理之下。 您應該實作訂閱自動販賣自動化,以協助應用程式小組更快存取應用程式登陸區域,並更快速地將工作負載上線。 如需詳細資訊,請參閱