在金融服務業 (FSI),有效率且安全地執行運算密集型工作負載至關重要。 Azure Batch 提供了一種可擴展且經濟高效的解決方案,用於在雲端管理這些工作負載。 本文提供了使用 Azure Batch 在 Azure 上執行 FSI 工作負載的綜合指南。 它涵蓋架構、工作流程、元件和最佳做法,以確保最佳效能、安全性和成本管理。
架構
下圖顯示了使用 Azure Batch 在 Azure 上執行 FSI 工作負載的架構。
下載包含此體系結構圖的 Visio 檔案。
Workflow
此範例情境示範如何使用 Azure Batch 在 Azure 上執行 FSI 工作負載。 以下是您可以遵循的典型工作流程:
- 使用 VPN 閘道連接到專用網路。 或者,使用遠端桌面協定 (RDP) 或安全性外殼 (SSH) 連接到使用 Azure Bastion 的 jumpbox 虛擬機器 (VM)。 任何一種方法都可以用來連接專用網路。
- 使用 Azure CLI、Azure 儲存總管或
azcopy
將任何要處理的資料集上傳到儲存帳戶。 - 使用 Azure CLI、Batch Explorer 或其他工具向 Batch 服務提交處理資料的作業。 對於此範例部署,我們開發了一個自訂命令列工具,您也可以使用它來提交作業。
- 調整集區大小以將計算節點新增至集區中。 預設情況下,部署會建立一個沒有計算節點的集區。
- 從儲存帳戶下載結果。 作業完成後,結果將儲存在儲存帳戶中。 然後可以使用 Azure CLI、Azure 儲存總管或
azcopy
下載這些結果。
元件
此架構包含多項Azure服務,並分為兩類資源:中心資源和輻射資源。 本文後面將提供有關中心輻射網路拓撲的更多詳細資訊。 以下各節介紹了每種服務及其作用。
樞紐資源
中心網路上部署的資源是共用資源,用於實現、篩選和監控輻射網路與外界之間的通訊。
中心網路上部署了以下資源:
Azure 防火牆為網路提供網路層級保護。 防火牆設定為僅允許特定流量進出網路。 此設定有助於保護網路免受惡意攻擊並監控進出網路的流量。 規則應根據您特定業務的規則和規定進行更新。
Azure VPN 閘道支援透過兩種方式之一從公共網際網路連接到中心網路。 另一種方法是使用 Azure Bastion 服務。 VPN 閘道被指派了一個公用 IP 位址,以便 VPN 用戶端可以從公共網路連接到它。
Azure Bastion 支援透過兩種方式之一從公共網際網路連接到跳轉箱。 另一種方法是使用 VPN 閘道。 Azure Bastion 部署在中心網路上,並指派一個公用 IP 位址,以便使用者可以從公用網際網路連接到它。
Linux Jumpbox 是一個預先安裝了工具的 Linux VM,用於存取已部署的資源、提交作業和監控其進度。 Jumpbox 部署在中心網路上,可以使用 VPN 閘道或 Azure Bastion 從內部部署網路存取。
Windows Jumpbox 是一個預先安裝了工具的 Windows VM,用於存取已部署的資源、提交作業和監控其進度。 Jumpbox 部署在中心網路上,可以使用 VPN 閘道或 Azure Bastion 從內部部署網路存取。
Log Analytics Workspace 支援收集記錄。 只要有可能,部署的資源就會設定為將記錄儲存到工作區。 記錄用於監控資源和解決問題。 與 Azure Application Insights 結合使用時,它為部署的資源提供效能監視和疑難排解功能。
如果在佈建的虛擬網路外部進行查詢 (例如從內部部署資源進行查詢),Azure DNS 專用解析器會提供入站終點來解析專用端點的 IP。 部署 Azure VPN 閘道時會部署 DNS Private Resolver。
輻條資源
部署在輻射網路上的資源有助於執行運算工作負載和所有支援資源。
在輻射網路上部署了以下資源:
Azure Batch 是我們架構所依賴的雲端原生作業排程和執行的核心服務。 Azure Batch 管理所需的運算資源、排程運算資源上的任務並監控任務的完成情況。 Batch 服務部署了兩個集區:一個名為
linux
的集區,具有 Linux 計算節點;一個名為windows
的集區,具有 Windows 計算節點。 這些集區設定為執行下列任務:- 採用使用者訂閱集區分配模式。 Batch 服務內部使用的所有資源均在與 Batch 帳戶相同的訂閱下分配,並使用特定於訂閱的配額和策略。
- 使用輻射網路上的對應子網路。 因此,它們從子網路的位址範圍中獲得分配的位址空間。 這也代表在這些子網路上設定的所有網路安全性群組 (NSG) 規則和流量轉送規則也套用於運算節點。
- 避免為運算節點指派公用 IP 位址,以確保運算節點無法直接從公共網際網路存取。
- 透過在初始化期間在運算節點上安裝支援的儲存資源,促進在運算節點上執行的工作負載存取共用儲存資源。
- 使用使用者指派的受控識別在計算節點加入批次集區時透過儲存帳戶、容器註冊表和任何其他資源對其進行驗證。 這樣做可確保使用憑證而不是密碼或金鑰對計算節點進行驗證。
Azure Key Vault 儲存部署機密,例如 Batch 帳戶憑證。 這些憑證用於在計算節點資源加入批次集區時對其進行驗證。 金鑰保存庫部署在輻射網路上,並設定為僅允許從批次服務存取。 此設定可確保憑證無法從公共網際網路存取。
Azure 儲存體儲存輸入和輸出資料。 部署將建立兩個儲存帳戶:一個用於 Blob 儲存,一個用於檔案儲存。 使用網路檔案系統 (NFS) 將 Blob 儲存帳戶安裝在 Linux 集區上。 檔案儲存帳戶使用伺服器訊息區塊 (SMB) 安裝在 Linux 和 Windows 集區上。
Azure 容器登錄檔儲存批次運算節點所使用的容器映像。 使用容器註冊表的私人部署有助於控制對容器鏡像的存取,同時還提供了一種更安全的容器鏡像儲存方式。 容器註冊表部署在輻射網路上,並設定為僅允許從批次服務存取。 此設定可確保容器映像無法從公用網際網路存取。
Azure 受控識別用於透過容器註冊表、儲存帳戶和其他資源自動對新增至集區的運算節點進行驗證。
替代項目
可以使用 Azure Kubernetes 服務 (AKS) 取代 Azure Batch 服務來為容器化應用程式提供類似的設定。
Azure CycleCloud 可用於管理 Azure 上的高效能運算 (HPC) 叢集。 可以設定此類 HPC 叢集來執行與本文所針對的工作負載類似的工作負載。
案例詳細資料
金融服務業中常見的計算模式是在表徵金融工具或金融工具組合的輸入資料集上執行大量計算密集型模擬。 模擬通常並行執行,並將結果匯總以產生投資組合風險狀況的摘要。
這種架構並不專注於特定的工作負載。 相反,它專注於想要使用 Azure Batch 執行運算密集型模擬的應用程式。 任何生產部署架構都必須進行客製化,以滿足工作負載和業務環境的特定要求。 該架構旨在作為預生產和生產部署客製化的起點。
潛在使用案例
此架構可用於執行各種 FSI 工作負載。 這些範例包含:
- 金融工具組合的風險分析
- 蒙特卡羅模擬估算金融工具的價值
- 交易策略的回溯測試
- 金融工具組合的壓力測試
網路拓撲
該架構採用中心輻射型網路拓撲。 中心輻射資源部署在透過虛擬網路對等連接的單獨虛擬網路中。 中心網路包含防火牆、VPN 閘道和跳轉盒等共用資源。 輻射網路包含 Batch 服務和 Batch 計算節點。 它還包括工作負載所需的其他服務端點,例如儲存帳戶、容器註冊表等。 輻射網路與公共網路隔離,只能從中心網路存取。
以下是網路拓撲的一些亮點:
- 輻射上的資源與公共網際網路隔離,只能從中心網路存取,從而最大限度地減少資源直接暴露給公共網際網路。
- 所有傳出流量 (包括來自集區計算節點的流量) 都透過防火牆路由,以確保所有傳出流量都經過篩選、記錄和追蹤。
- 防火牆設定為僅允許允許清單中的流量,這可確保只有允許清單中的流量可以離開虛擬網路。
- 透過可選部署的 VPN 閘道或 Azure Bastion 可以存取輻射網路上的資源。 兩者都提供了從公共網際網路連接到中樞網路的安全方式。
- Windows 和 Linux 跳轉箱配備了預先安裝的工具,用於存取已部署的資源、提交作業和監控其進度。 這些跳轉盒部署在中心網路上,可以使用 VPN 閘道或 Azure Bastion 從內部部署網路存取。
- 所有 Azure 服務都使用私人端點來確保透過私人網路存取它們,而不是透過公共端點存取它們。 此設定還有助於確保服務無法從公共網際網路存取。
- NSG 規則設定為僅允許必要的流量進出虛擬網路。 此設定有助於保護網路免受惡意攻擊並監控進出網路的流量。 這些規則甚至限制虛擬網路中資源之間的流量。
中心虛擬網路
中心虛擬網路包含允許或監控進出輻射網路的流量的資源。 虛擬網路在部署範本中定義下列子網路:
-
GatewaySubnet
:VPN 閘道的子網路 (如果已部署) -
AzureBastionSubnet
:Azure Bastion 服務的子網路 (如果已部署) -
AzureFirewallSubnet
:Azure 防火牆服務的子網路 -
sn-jumpbox
:跳轉箱的子網 -
sn-dnspr
:委託給 Azure DNS 解析器的子網
輻射虛擬網路
輻射虛擬網路包含 Batch 服務、Batch 運算節點以及工作負載所需的其他服務終點。 虛擬網路在部署範本中定義下列子網路:
-
pool-linux
:Linux 集區的子網 -
pool-windows
:Windows 集區的子網 -
private-endpoints
:用於在輻射網路上部署的 Azure 服務的私有端點的子網路
輻射網路與中心網路對等,使得輻射網路上的資源可以存取中心網路上的資源。 設定路由表以確保輻條之間的流量透過防火牆進行路由。
存取資源
若要將計算作業提交給批次服務,請連接批次服務端點以提交作業並監視其進度。 由於批次服務設定為使用私有端點,因此只能從網路內部存取它。
此體系結構提供了兩種連接到網路的選項,以便您可以將作業提交到批次服務:
使用 VPN 閘道。 使用 VPN 閘道連接到中心網路。 連接到 VPN 後,您可以直接從本機電腦向 Batch 服務提交作業,這也使得使用安裝在本機上的 Batch Explorer 監視作業變得更加容易。 此設定要求在本機上安裝 Azure CLI、Batch Explorer 和其他工具。 或者,連接到 VPN 後,您可以使用 Linux 或 Windows Jumpboxes 將作業提交到 Batch 服務。 這樣做需要您在本機上安裝 SSH 用戶端或 RDP 用戶端。
使用 Azure Bastion。 您可以使用 Azure Bastion 登入 Linux 或 Windows Jumpbox,而無需使用 VPN。 登入 Azure 入口網站,然後使用 Azure Bastion 直接從 Web 瀏覽器登入 jumpbox VM。 登入 jumpbox 後,您可以使用 Azure CLI、Batch Explorer 和 jumpbox 上安裝的其他工具將作業提交至 Batch 服務。
考量因素
這些考量實踐了 Azure 良好架構準則的核心支柱,該準則是一套可用來提升工作負載品質的指導原則。 如需更多資訊,請參閱 Microsoft Azure 良好架構準則。
在此範例工作流程中,我們依靠手動資料傳輸和作業提交作為尚未準備好實現自動化的工作負載的良好起點。 但是,對於生產工作負載,我們建議自動化資料傳輸和作業提交,這可以使用 Azure Data Factory 或其他工作流程協調流程工具來完成。
可以設定批次集區,以根據提交到集區中的作業數量自動擴大或縮小。 當沒有作業需要執行時,此設定有助於降低執行集區的成本。 如需詳細資訊 ,請參閱自動縮放 Azure Batch 集區中的計算節點。
安全性
安全性可確保防範惡意攻擊及防止濫用您寶貴的資料與系統。 如需更多資訊,請參閱安全性支柱概述。
為了最大限度地減少密碼和金鑰等機密資訊的共用,此體系結構使用受控識別在運算節點加入批次集區時透過儲存帳戶、容器註冊表和其他資源對其進行驗證。 此驗證是透過將受控識別指派給批次集區,然後授予受控識別對資源的存取權限來完成的。 可以透過使用基於角色的存取控制授予受控識別存取資源所需的最小特殊權限。
該架構還使用私有端點來幫助確保服務不能從公共網際網路存取。 此設定有助於最大限度地減少攻擊面,也有助於確保透過專用網路存取服務,而不是透過公共端點存取。
該架構還使用 Azure 防火牆來篩選和監控進出網路的流量。 防火牆設定為僅允許允許清單中的流量,這可確保只有允許清單中的流量可以離開虛擬網路。 此設定有助於保護網路免受惡意攻擊並監控進出網路的流量。
計算節點本身無法從公共網際網路存取,因為沒有為計算節點分配公共 IP 位址。
成本最佳化
成本最佳化就是尋找減少不必要的開支和提高營運效率的方法。 如需詳細資訊 ,請參閱成本最佳化支柱概述。
Azure Batch 本身就是一項免費服務,客戶只需支付底層虛擬機器、儲存和網路費用。 在此工作負載中,除了運算節點之外,儲存帳戶、跳轉箱、VPN 閘道和 Azure Bastion 是其他會產生成本的資源。 由於工作負載旨在支援存取資源的替代方案,因此可以透過選擇其中一條路徑來最佳化執行成本。 例如,如果偏好使用 VPN 閘道存取資源,則可以在部署期間停用 Azure Bastion 和 jumpbox VM 以降低成本。
為了協助降低與運算資源相關的成本,請使用對工作負載更具成本效益的 VM 庫存單位 (SKU)。 此外,使用現貨執行個體或集區自動擴展可以幫助降低與計算節點相關的成本。
若要確定執行此工作負載的成本,請參閱 Azure 定價計算器。
效能效率
效能效率是工作負載以高效方式擴展以滿足對其依使用者的需求的能力。 如需更多資訊,請參閱效能效率支柱概觀。
使用 Batch,可以透過為工作負載使用正確的 VM SKU 來實現效能效率。 有關如何為工作負載選擇正確的 VM SKU 的詳細資訊,請參閱 Azure 計算單元。 選擇計算節點的 VM 大小可以為根據部署區域選擇正確的 VM SKU 提供更多指導。
部署此案例
此參考架構的基礎結構即程式碼 (IaC) 原始程式碼可在 Azure Batch 加速器存放庫中找到。 所包含的教學課程示範如何部署此參考架構以及如何使用它來執行名為 azfinsim
的範例 FSI 工作負載。 您也可以使用下列按鈕透過 Azure 入口網站部署訂閱下的資源:
後續步驟
學習模組