風險網格運算解決方案

Azure Batch
Microsoft Entra ID
Azure ExpressRoute
Azure VPN 閘道

本文提供使用 Microsoft Azure 來支援和增強銀行風險網格運算的技術概觀。 本文會探索建議的系統與高階架構。

本檔適用於解決方案架構設計人員,在某些情況下,技術決策者想要深入瞭解建議的風險運算解決方案。

簡介

財務風險分析模型通常會以批次作業的形式處理。 其計算負載繁重,會產生計算能力、數據存取和分析的高需求。 風險方格運算計算的需求通常會隨著時間而增加,而且計算資源的需求也會隨之增加。

Azure 中各種可用的產品和服務表示,大部分問題都有一個以上的解決方案。 本文提供使用 Microsoft Azure Batch 之銀行中風險網格運算解決方案最有效之技術、模式和做法的概觀。

Azure Batch 是一項免費服務,可提供符合成本效益且安全的解決方案。 解決方案適用於基礎結構和批處理的各個階段,這些階段通常與風險方格運算模型搭配使用。 Azure Batch 可以使用混合式網路或將整個 Batch 程式移至 Azure,來增強、擴充或甚至取代目前的內部部署計算資源投資。 數據可以從雲端上下周游,或保持內部部署。 當內部部署資源執行不足時,其他數據可由高載到雲端模型中的計算節點處理。

Azure Batch 執行的結構

在 Batch 執行中,通常至少有兩個應用程式涉及。 一個應用程式通常會在「前端節點」上執行,將作業提交至集區,有時會協調計算節點。 您也可以透過 Azure 入口網站 設定協調流程。 另一個應用程式是由計算節點作為工作來執行(請參閱圖 1)。

計算節點應用程式會執行平行處理風險模型化檔案的工作。 計算節點上可以安裝並執行多個應用程式。

這些應用程式可以透過 Batch API、直接透過 Azure 入口網站 或透過 BatchAzure CLI 命令上傳。

示範 Azure Batch Grid 運算的圖表。

圖 1: Azure Batch 方格運算

Azure Batch 執行包含數個邏輯元素。 圖 2 顯示批次作業的邏輯模型。 集區是 Batch 執行所涉及的 VM 容器,並布建計算節點 VM。 集區也是安裝在計算節點上之應用程式的容器。 作業會在集區內建立並執行。 工作是由作業執行。 工作是背景工作應用程式的執行,並由命令行指令叫用。

背景工作應用程式會在建立時安裝到計算節點。

集區、作業和工作

圖 2: 邏輯批次概念模型

當作業執行時,集區會布建所需的任何背景工作 VM,並安裝背景工作應用程式。 作業會將工作指派給這些計算節點,接著會執行命令行指令 (CLI)。 CLI 文稿通常會呼叫已安裝的應用程式或腳本。

使用 Batch 通常會遵循原型模式,如下所示:

  1. 建立資源群組以包含 Batch 資產。
  2. 在資源群組內,建立 Batch 帳戶。
  3. 建立連結的記憶體帳戶。
  4. 建立集區,您可以在其中布建背景工作 VM。
  5. 將計算節點應用程式或文稿上傳至集區。
  6. 建立作業,將工作指派給集區中的 VM。
  7. 將作業新增至集區。
  8. 開始執行 Batch。
  9. 作業會將工作排入計算節點上執行的工作。
  10. 計算節點會在 VM 可供使用時執行工作。

此程式的圖例顯示在圖 3 中。

批次執行程式

圖 3: 邏輯批次概念模型

一旦工作完成,移除計算節點並不會產生費用,而不在使用中會很有用。 若要刪除它們,您可以透過程式代碼或入口網站刪除包含的集區,以移除背景工作 VM。

如需如何開始使用 Batch 的詳細逐步解說,5 分鐘的快速入門會帶您完成數種語言的程式,並示範如何使用 Azure 入口網站。

批處理排程

Azure Batch 內建了排程器,因此可以在入口網站或 API 中定義每個執行的排程。 Batch 作業排程器可以定義多個排程來引發多個作業。 每個作業都有自己的屬性,例如作業開始和結束時要執行的動作。 作業排程可以在週期性間隔或單次執行時設定。

許多銀行網格運算系統已經有自己的排程服務。 可能不需要立即將排程器移至 Azure。 這可以順暢運作,因為 Azure Batch 可以手動或透過 SDK 叫用。 這項功能可讓排程仍會在內部部署進行,並允許在 Azure 中處理工作負載。

批處理可能會依預先決定的排程或視需要進行。 不論是哪一種情況,都不需要在未使用計算節點 VM 時保持運作。 使用數百個 VM 計算節點時,可以藉由在完成執行佇列工作時取消布建伺服器,來節省大量成本。

計算節點應用程式

計算節點需要在叫用工作時執行應用程式。 這些應用程式是由企業撰寫,以在背景工作角色上安裝時執行處理工作。 在銀行案例的風險方格運算中,此應用程式通常會承擔將數據轉換成適合下游分析或其他處理格式的工作。

將應用程式提供給集區以散發至計算節點時,它會在應用程式套件中上傳。 應用程式套件可能是先前上傳應用程式套件的另一個版本。 一個以上的應用程式套件可以安裝到一個計算節點。 此作業包含要載入背景工作機器的應用程式套件。

應用程式套件部署也可能由版本管理。 如果應用程式套件的多個版本已載入集區中,可能會指定特定版本以用於 Batch 執行,如圖 4 所示。 在稽核環境中或企業想要重現先前執行時,可能需要這樣做。 如果錯誤引入背景工作應用程式,它也可以用於回復用途。

批次執行程式

圖 4: 版本設定計算節點工作應用程式

應用程式套件會以.zip檔案的形式上傳至集區。 此檔案包含應用程式二進位檔,以及執行應用程式之工作所需的支持檔案。 應用程式套件有兩個範圍。 您可以在集區範圍或工作範圍中指定應用程式套件。

集區應用程式套件

這些套件會部署到集區中的每個計算節點。 布建、重新啟動或重新映像計算節點 VM 時,如果更新的應用程式存在,則會安裝任何集區應用程式套件的新複本。 您可以將一或多個應用程式套件指派給集區,這表示計算節點會取得指定的所有套件。

工作應用程式套件

以工作層級為目標的應用程式套件只會安裝到排程執行工作的計算節點。 工作應用程式套件適用於在一個集區中執行多個作業時使用。

彙總集區層級作業所產生的數據時,工作應用程式很有用。 這些應用程式可以在風險方格運算案例中相關。 例如,工作應用程式可以執行一組風險計算,以產生稍後在風險計算工作流程中使用的數據。

調整批次作業

當計算資源使用量過低時,銀行通常會在週末或夜間執行風險分析批次。 雖然此模型適用於某些模型,但它可以快速成長,需要更多資本將更多的背景工作機器新增至網格線。

如果 Azure Batch 作業需要太長的時間才能執行,或您想要在 Batch 執行中提供更多運算能力,Azure 會提供數個選項。

  1. 配置更多計算節點機器以相應放大。
  2. 配置更強大的計算節點機器以相應增加。 Azure 機器可以布建以符合核心和記憶體的高效能需求,甚至是 GPU 運算能力。

注意:搭配 Batch 使用 Microsoft HPC Pack 是更複雜的模型,本文並未討論。

在 Batch 處理叢集中,您可能有兩個處理 VM。 或者,您可能會有數千個同時在數千個 VM 計算節點上執行的工作,且有數萬個核心。 每個 VM 都會負責一次執行單一工作。 集區中的 VM 數目可以手動或自動調整,如負載增加或減少時設定。

高載至雲端

當內部部署方格中的計算資源因為執行大型分析作業而執行不足時,「高載到雲端」提供一種方式,透過在 Azure 中新增更多計算節點來增強這些資源。 高載至雲端是一種模型,當內部部署資源的需求很高時,私人雲端或基礎結構會將工作負載分散到雲端伺服器。

這些計算節點可以預先設定為 Linux 或 Windows 虛擬機,以在 Azure 的 IaaS 平臺中佈建。 此外,您可以佈建伺服器並自動設定為使用 Tibco Gridserver 和 IBM Symphony 等現有投資。

自動調整公式

您可以在 Azure 入口網站 或使用自動調整公式來設定此彈性。 自動調整公式是上傳至 Batch 處理排程器的腳本,以精細控制 Batch 行為。 計算節點集區上的自動調整是藉由將節點與自動調整公式產生關聯來完成。

下列範例是自動調整公式,指示自動調整以從一部 VM 開始,並視需要相應增加至 50 個 VM。 當工作完成時,VM 會一個接一個地變成免費,而自動調整公式會縮小集區。

startingNumberOfVMs = 1;
maxNumberofVMs = 50;
pendingTaskSamplePercent = $PendingTasks.GetSamplePercent(180 * TimeInterval_Second);
pendingTaskSamples = pendingTaskSamplePercent < 70 ? startingNumberOfVMs : avg($PendingTasks.GetSample(180 * TimeInterval_Second));
$TargetDedicatedNodes=min(maxNumberofVMs, pendingTaskSamples);

其他縮放技術

Enable-AzureBatchAutoScale PowerShell Cmdlet 也可以啟用自動調整。 Enable-AzureBatchAutoScale Cmdlet 可自動調整指定的集區。 範例如下。

  1. 第一個命令會定義公式,然後將它儲存至 $Formula 變數。
  2. 第二個命令會使用 中的$Formula公式,在名為 RiskGridPool 的集區上啟用自動調整。
C:\> $Formula = ‘startingNumberOfVMs = 1;
maxNumberofVMs = 50;
pendingTaskSamplePercent = $PendingTasks.GetSamplePercent(180 * TimeInterval_Second?WT.mc_id=gridbanksg-docs-dastarr);
pendingTaskSamples = pendingTaskSamplePercent < 70 ? startingNumberOfVMs : avg($PendingTasks.GetSample(180 * TimeInterval_Second));
$TargetDedicatedNodes=min(maxNumberofVMs, pendingTaskSamples);’;

C:\> Enable-AzureBatchAutoScale -Id "RiskGridPool" -AutoScaleFormula $Formula -BatchContext $Context

您也可以使用 Azure CLI 搭配 az batch pool resize 命令,以及透過 Azure 入口網站 來完成調整。

數據儲存和保留

一旦計算節點擷取和處理數據之後,產生的輸出數據就可以儲存在資料庫中。 在記憶體之前,輸出數據可以在擷取時進一步處理和分析或轉換,以確保下游處理的適當格式。 Microsoft Azure 提供數個記憶體選項。 要使用哪些數據存放區技術的選擇主要取決於下游程式中的分析或報告需求。

使用混合式網路時,數據記憶體目標可能是內部部署。 透過混合式網路使用 Batch 時,計算節點可以將數據寫回內部部署資料存放區,而不需使用 Azure 型記憶體位置。 背景工作角色也可以寫入 Azure 檔案記憶體,其可掛接為內部部署電腦上的磁碟。 此設定可讓您透過任何與內部部署檔案搭配運作的程式輕鬆存取。

監視和記錄

若要優化 Batch 作業的未來執行,應該記錄數據,以協助識別優化的區域。 例如,如果背景工作角色執行接近CPU容量,將核心新增至計算節點可能有助於避免CPU系結,而作業可以更快完成。 在 Batch 作業中執行的每個應用程式都有自己的特性,而且對 Batch 執行中的 VM 所做的優化可能會有所不同。 針對需要大量記憶體的工作,可以在下一次執行中以不同的方式設定機器來配置更多記憶體。

記錄可以透過計算節點和方格前端應用程式,或使用 Batch 診斷記錄的作業來完成。 您可以設定 Batch 執行效能的相關記錄資訊,以協助識別哪些區域可改善效能並加快工作完成速度。

自訂 Batch 監視和記錄

控制應用程式和計算節點應用程式可以產生此數據,並加以儲存以供進一步分析。 發現有助於優化 Batch 作業的數據包括:

  • 每個工作的開始和結束時間
  • 每個計算節點運作和執行中工作的時間
  • 每個計算節點運作且未執行工作的時間
  • 整體批次作業運行時間

批次診斷記錄

您也可以使用控制器和計算節點應用程式來發出檢測數據。 批次診斷記錄 可以擷取許多執行數據。 Batch 診斷記錄預設不會啟用,而且必須針對 Batch 帳戶啟用。

批次診斷記錄提供大量的數據,協助解決和優化 Batch 執行的問題。 作業和工作的開始和結束時間、核心計數、節點總數,以及其他許多計量。

批次記錄需要發出記錄的記憶體目的地,並儲存 Batch 執行所產生的事件,例如集區建立、作業執行、工作執行等等。 除了將診斷記錄事件儲存在 Azure 儲存體 帳戶之外,Batch 服務記錄事件也可以串流至 Azure 事件中樞實例。 然後,事件可以傳送至 Azure Log Analytics

您可以使用這些資料,將核心運算和前端節點應用程式優化。 這可能會降低成本,因為不再需要背景工作角色 VM 時,比等候 Batch 執行結束完成等動作而降低成本。

批次管理工具

Azure 入口網站 提供 Batch 監視儀錶板,顯示 Batch 的相關信息,因為作業正在執行,甚至是帳戶配額使用量。 它足以處理許多 Batch 作業應用程式。

除了 Azure 入口網站 中提供的 Batch 管理和視覺效果工具之外,還有免費的開放原始碼工具 Batch Explorer 來管理 Batch。 這是獨立的用戶端工具,可協助建立、偵錯及監視 Azure Batch 應用程式。 下載適用於 Mac、Linux 或 Windows 的安裝套件。

網路模型

風險分析通常需要將數百份檔內嵌至風險方格運算程式,如果不是數千份。 這些檔案通常位於檔案存放區、網路共用或其他存放庫中的內部部署。 使用 Azure 型 VM 來存取和處理這些檔案時,內部部署網路通常會順暢地連線到 Azure 網路,因此檔案存取簡單且快速。 這種方法甚至可能表示在計算節點上執行處理的程式代碼不需要變更程序代碼。

Azure 提供兩種模型,可安全地可靠地將目前的內部部署系統連線至 Azure、Microsoft Azure ExpressRouteVPN 閘道。 這兩者都提供安全的可靠連線能力,不過實作、效能 和其他屬性有差異。

或者,風險方格運算前端節點可能會存在於內部部署,並透過 .NET 和其他語言的 REST API 或 SDK 來執行 Batch 作業。

有其他技術可橋接 Azure 與內部部署資源之間的差距,而不需要混合式網路解決方案。 如需詳細資訊,請在下面提供。

ExpressRoute

ExpressRoute 會透過連線合作夥伴所提供的私人連線,將您的內部部署或數據中心網路系結至 Azure,例如您目前的因特網服務提供者。 這可讓這兩個網路彼此視為相同的網路實例,在網路之間提供無縫存取。 當您想要將現有的內部部署系統與 Azure 網路整合時,網路整合非常重要,而 ExpressRoute 可提供最快的連線速度。

如需 Azure ExpressRoute 的其他定價資訊,請參閱這裡

VPN 閘道

VPN 閘道 是將網路連線至 Azure 的另一種方式。 此模型的缺點是流量會透過因特網流動。 因此,連線的復原能力可能較低,而且網路速度無法達到 ExpressRoute 的彈性,不過,讀取數據檔通常是快速作業,因此,這可能不是風險方格運算案例的障礙。

如需 VPN 閘道 的其他定價資訊,請參閱這裡

線上詳細數據的選擇

基本上有兩個模型可用來將網路擴充至 Azure,如圖 5 所示。

  • 虛擬閘道 – 站對站
  • ExpressRoute – Exchange 或 ISP 提供者

站對站和 ExpressRoute

圖 5: 站對站和 ExpressRoute

虛擬閘道站對站整合

站對站 VPN 閘道 將您的內部部署網路連線到 Azure VNet。 這可橋接網路之間的差距,基本上讓它們成為相同網路的一部分,並雙向存取資源、伺服器和成品。 這可讓您從執行風險方格運算批次作業的 Azure 背景工作 VM 直接存取資料檔。

ExpressRoute 整合

Azure 合作夥伴網路提供者所促進的 ExpressRoute 連線可實現與站對站連線相同的優點,但速度和可靠性較高。

取得 ExpressRoute 連線模型的詳細資訊

沒有 Azure 混合式網路的批處理

另一個 Batch 案例是將所有數據檔上傳至 Azure 記憶體,以供 Azure 型電腦器稍後處理。 檔案記憶體和 Blob 記憶體可能適合用來儲存風險方格運算數據。

在此案例中,作業控制器和所有計算節點都存在於 Azure 中,如圖 6 所示。 已處理數據的可能目的地是 Azure 資料存放區,準備由 Azure 機器學習 解決方案或其他系統進一步處理。 此額外處理超出本文的範圍。

站對站和 ExpressRoute

圖 6: 批次上傳至執行生命週期

混合式網路連線資源

您的情況可能適用數位組態。 若要協助針對將網路連線到 Azure 的決策和架構指引,請參閱模式和實務群組將內部部署網路 連線 至 Azure 一文

安全性考量

可以建立 Azure 虛擬網路 (VNet), 並建立集區的計算節點。 這會為 Batch 執行提供額外的隔離等級,並允許使用 Microsoft Entra ID 進行驗證。 如需詳細資訊,請參閱 集區網路設定

有兩種方式可使用 Microsoft Entra ID 驗證 Batch 應用程式:

  • 整合式驗證。 使用 Microsoft Entra 帳戶的批次應用程式可以使用帳戶來取得資料存放區和其他資源的資源。

  • 服務主體。 Microsoft Entra 服務主體會定義使用者和應用程式的存取原則和許可權。 服務主體會使用系結至該應用程式的秘密密鑰,為使用者提供驗證。 這允許使用秘密金鑰驗證自動應用程式。 服務主體會定義應用程式在運行時間存取資源時代表應用程式的原則和許可權。 在此深入了解

如需使用 Microsoft Entra ID 進行批處理中安全性的詳細資訊, 請參閱這篇文章

Batch 服務也可以使用共用金鑰進行驗證。 驗證服務需要將兩個標頭值新增至 HTTP 要求、數據和授權。 如需共用金鑰驗證的詳細資訊 ,請參閱這裡。

成本最佳化

使用 Azure Batch 不收取任何費用。 您只需支付取用的基礎資源,例如虛擬機運行時間、記憶體和網路功能。 不過,計算節點 VM 在閒置時仍會耗用成本,因此在不再需要機器時取消布建機器是個好主意。 這通常是藉由刪除包含它們的集區來完成。

建立集區時,您可以指定您想要的計算節點類型,以及每個節點的數目。 這兩種類型的計算節點如下所示:

專用計算節點 會保留給您的工作負載。 它們比低優先順序節點更昂貴,但保證永遠不會先佔。

低優先順序的計算節點 會利用 Azure 中的剩餘容量來執行 Batch 工作負載。 低優先順序節點的每小時成本比專用節點低,並啟用需要大量計算能力的工作負載。 如需詳細資訊,請參閱 搭配 Batch 使用低優先順序 VM。

專用和低優先順序節點可能存在於相同的集區中。

如需低優先順序和專用計算節點的定價資訊,請參閱 Batch 定價

使用 Batch 診斷記錄服務時,向 Azure 記憶體發出的數據會產生成本。 這是記憶體數據,就像任何其他數據一樣,價格會受到保留診斷數據量的影響。

開始使用

雖然有許多地方可以開始使用複雜領域,例如 Batch 運算的風險方格運算,以下是一些邏輯起點,以進一步瞭解 Batch 技術。

Azure Batch 檔 是絕佳的起點。 檔包含入口網站範例、API 參考,以及程式代碼範例的逐步教學課程。 Azure Batch 範例應用程式也可以在 GitHub 上免費取得

以下是一些快速教學課程,可協助您建置簡單的應用程式,以建立和執行批次計算作業。 建置應用程式的選項如下:

請考慮啟動概念證明計劃。 您用來將數據擷取至 Azure 的方法為何? 您是否會使用混合式網路,或透過 SDK 或 REST 介面上傳數據? 如果您要考慮混合式網路,請考慮啟動試驗以備妥此專案。

評估 Batch 計算作業的大小,然後選取正確的調整解決方案。 自動調整公式可啟用複雜的排程案例,而使用 Azure 入口網站 即可達成更簡單的案例。

元件

  • Azure Batch 提供在雲端中執行大規模平行處理作業的功能。

  • Microsoft Entra ID 是多租使用者、雲端式目錄和身分識別管理服務,將核心目錄服務、應用程式存取管理和身分識別保護結合成單一解決方案。

  • 自動調整公式 是上傳至批處理排程器的腳本,可更精細地控制 Batch 調整行為。

  • Batch 診斷記錄 是 Azure Batch 的一項功能,可讓您從 Batch 執行和產生的事件建立詳細的記錄檔。 記錄會儲存在 Azure 儲存體 中。

  • Batch Explorer 是獨立應用程式,可用於 Batch 監視和管理可用的 Windows、macOS 和 Linux。

  • ExpressRoute 是一種高速且可靠性的混合式網路解決方案,可用於加入內部部署和 Azure 網路。

  • Azure VPN 閘道 是使用因特網加入內部部署和 Azure 網路的混合式網路解決方案。

推論

本檔提供使用 Azure Batch 進行銀行風險網格運算時的技術解決方案和考慮概觀。 本文涵蓋許多基礎,從 Azure Batch 的定義到 網路選項,甚至成本考慮。

參與者

本文由 Microsoft 維護。 原始投稿人如下。

主要作者:

下一步

在考慮進一步評估 Azure Batch 以進行風險方格運算時, 此頁面 是開始使用的好資源。 它提供平行檔案處理的範例引導式教學課程,這是風險方格運算固有的教學課程。 教學課程是使用 Azure 入口網站、Azure CLI、.NET 和 Python 提供的。

產品檔案: