Usare Azure Batch per eseguire carichi di lavoro di Financial Service Industry (FSI)

In FSI (Financial Services Industry), l'esecuzione efficiente e sicura di carichi di lavoro ad alta intensità di calcolo è fondamentale. Azure Batch offre una soluzione scalabile e conveniente per la gestione di questi carichi di lavoro nel cloud. Questo articolo fornisce una guida completa sull'uso di Azure Batch per eseguire carichi di lavoro FSI in Azure. Illustra architettura, flusso di lavoro, componenti e procedure consigliate per garantire prestazioni, sicurezza e gestione dei costi ottimali.

Architettura

Il diagramma seguente illustra l'architettura per l'esecuzione di carichi di lavoro FSI in Azure tramite Azure Batch.

Diagram che mostra un'architettura per l'esecuzione di carichi di lavoro FSI in Azure usando Azure Batch.

Scaricare un file Visio che contiene questo diagramma dell'architettura.

Flusso di lavoro

Questo scenario di esempio illustra come eseguire carichi di lavoro FSI in Azure usando Azure Batch. Di seguito è riportato un flusso di lavoro tipico che puoi seguire:

  1. Connettersi alla rete privata usando Gateway VPN. In alternativa, connettersi usando RDP (Remote Desktop Protocol) o SSH (Secure Shell) alle macchine virtuali jumpbox usando Azure Bastion. Entrambi gli approcci possono essere usati per connettersi alla rete privata.
  2. Caricare tutti i set di dati per l'elaborazione nell'account di archiviazione usando il interfaccia della riga di comando di Azure, Azure Storage Explorer o azcopy.
  3. Inviare processi per elaborare i dati al servizio Batch usando il interfaccia della riga di comando di Azure, Batch Explorer o altri strumenti. Per questo esempio di distribuzione, abbiamo sviluppato uno strumento da riga di comando personalizzato utilizzabile anche per inviare processi.
  4. Ridimensiona il pool per aggiungere nodi di calcolo al pool. Per impostazione predefinita, la distribuzione crea un pool senza nodi di calcolo.
  5. Scarica i risultati dall'account di archiviazione. Al termine del processo, i risultati vengono archiviati nell'account di archiviazione. Questi risultati possono quindi essere scaricati usando il interfaccia della riga di comando di Azure, Azure Storage Explorer o azcopy.

Componenti

Questa architettura include diversi servizi Azure ed è suddivisa in due categorie di risorse: risorse hub e risorse spoke. Altri dettagli sulla topologia di rete hub e spoke vengono forniti più avanti in questo articolo. I servizi per ciascuna di esse e i relativi ruoli sono descritti nelle sezioni seguenti.

Risorse hub

Le risorse distribuite nella rete hub sono risorse condivise che abilitano, filtrano e monitorano la comunicazione tra la rete spoke e il mondo esterno.

Nella rete hub vengono distribuite le risorse seguenti:

  • Firewall di Azure fornisce protezione a livello di rete per la rete. Il firewall è configurato per consentire solo il traffico specifico in entrata e in uscita della rete. Questa configurazione consente di proteggere la rete da attacchi dannosi e di monitorare il traffico in entrata e in uscita dalla rete. Le regole devono essere aggiornate in base a regole e normative specifiche dell'azienda.

  • Gateway VPN di Azure consente di connettersi alla rete hub dalla rete Internet pubblica in due modi. L'altro modo consiste nell'usare Azure Bastion servizio. Al gateway VPN viene assegnato un indirizzo IP pubblico in modo che i client VPN possano connettersi allo stesso dalla rete Internet pubblica.

  • Azure Bastion consente di connettersi a jumpbox dalla rete Internet pubblica in due modi. L'altro modo consiste nell'usare Gateway VPN. Azure Bastion viene distribuito nella rete hub e viene assegnato un indirizzo IP pubblico in modo che gli utenti possano connettersi a esso dalla rete Internet pubblica.

  • Linux Jumpbox è una macchina virtuale Linux con strumenti preinstallati per accedere alle risorse distribuite, inviare processi e monitorarne l'avanzamento. Il jumpbox viene distribuito nella rete hub ed è accessibile dalla rete locale usando il gateway VPN o Azure Bastion.

  • Windows Jumpbox è una macchina virtuale Windows con strumenti preinstallati per accedere alle risorse distribuite, inviare processi e monitorare lo stato di avanzamento. Il jumpbox viene distribuito nella rete hub ed è accessibile dalla rete locale usando il gateway VPN o Azure Bastion.

  • Log Analytics Workspace abilita la raccolta di log. Quando possibile, le risorse distribuite sono configurate per salvare i log nell'area di lavoro. I log vengono utilizzati per monitorare le risorse e risolvere i problemi. In combinazione con applicazione Azure Insights, offre funzionalità di monitoraggio delle prestazioni e risoluzione dei problemi per le risorse distribuite.

  • DNS di Azure Private Resolver fornisce un punto finale di ingresso per risolvere gli indirizzi IP degli endpoint privati se interrogati al di fuori della rete virtuale fornita, ad esempio dalle risorse locali. Il sistema di risoluzione privato DNS viene distribuito quando viene distribuito il gateway VPN Azure.

Risorse spoke

Le risorse distribuite nella rete spoke agevolano l'esecuzione di carichi di lavoro di calcolo e tutte le risorse di supporto.

Nella rete spoke vengono distribuite le risorse seguenti:

  • Azure Batch è il servizio principale su cui si basa l'architettura per la pianificazione e l'esecuzione di processi nativi del cloud. Azure Batch gestisce le risorse di calcolo necessarie, pianifica le attività sulle risorse di calcolo e monitora le attività per il completamento. Il servizio Batch viene distribuito con due pool: un pool denominato linux con nodi di calcolo Linux e un pool denominato windows con nodi di calcolo Windows. I pool sono configurati per eseguire le seguenti attività:

    • Utilizzare la modalità di allocazione del pool di abbonamenti utente. Tutte le risorse usate internamente dal servizio Batch vengono allocate nella stessa sottoscrizione dell'account Batch e usano quote e criteri specifici della sottoscrizione.
    • Utilizzare le subnet corrispondenti sulla rete spoke. Pertanto, viene loro assegnato uno spazio di indirizzi dall'intervallo di indirizzi della subnet. Significa anche che tutte le regole del gruppo di sicurezza di rete (NSG) e le regole di inoltro del traffico configurate in tali subnet vengono applicate anche ai nodi di calcolo.
    • Evitare di assegnare indirizzi IP pubblici ai nodi di calcolo per assicurare che i nodi di calcolo non siano accessibili direttamente dalla rete Internet pubblica.
    • Semplificare l'esecuzione dei carichi di lavoro sulle note di calcolo per accedere a risorse di archiviazione condivise, montando le risorse di archiviazione supportate sui nodi di calcolo durante l'inizializzazione.
    • Usare un'identità gestita assegnata dall'utente per autenticare i nodi di calcolo con l'account di archiviazione, il Registro Container e qualsiasi altra risorsa quando vengono aggiunti al pool Batch. In questo modo si garantisce che i nodi di calcolo vengano autenticati tramite certificati anziché password o chiavi.
  • Azure Key Vault archivia i segreti di distribuzione, ad esempio i certificati dell'account Batch. Questi certificati vengono usati per autenticare le risorse dei nodi di calcolo quando vengono aggiunte al pool di batch. Il Key Vault è distribuito nella rete spoke ed è configurato per consentire l'accesso solo dal servizio Batch. Questa configurazione garantisce che i certificati non siano accessibili dalla rete Internet pubblica.

  • Archiviazione di Azure archivia i dati di input e output. La distribuzione crea due account di archiviazione: uno per l'archiviazione BLOB e uno per l'archiviazione file. L'account di archiviazione BLOB viene montato nel pool Linux usando il file system di rete (NFS). L'account di archiviazione file viene montato sia in Linux che in un pool di Windows tramite SMB (Server Message Block).

  • Registro Azure Container archivia le immagini del contenitore usate dai nodi di calcolo batch. L'uso di una distribuzione privata del registro contenitori consente di controllare l'accesso alle immagini dei contenitori e offre anche un modo più sicuro di archiviare tali immagini. Il registro contenitori viene distribuito nella rete spoke ed è configurato per consentire l'accesso solo dal servizio Batch. Questa configurazione garantisce che le immagini dei contenitori non siano accessibili dalla rete Internet pubblica.

  • Identità gestita di Azure viene usata per autenticare i nodi di calcolo aggiunti ai pool automaticamente con Registro dei contenitori, account di archiviazione e altre risorse.

Alternative

  • Il servizio Azure Kubernetes (AKS) può essere usato invece del servizio Azure Batch per una configurazione simile per le applicazioni containerizzate.

  • Azure CycleCloud può essere usato per gestire cluster HPC (High Performance Computing) in Azure. Tali cluster HPC possono essere configurati per eseguire carichi di lavoro simili a quelli oggetto di questo articolo.

Dettagli dello scenario

Un modello di calcolo comune in FSI consiste nell'eseguire un gran numero di simulazioni ad alta intensità di calcolo su un set di dati di input che caratterizza uno strumento finanziario o un portafoglio di strumenti finanziari. Le simulazioni sono generalmente eseguite in parallelo e i risultati sono aggregati per produrre una sintesi del profilo di rischio del portafoglio.

Questa architettura non è incentrata su un particolare carico di lavoro. Si concentra invece sulle applicazioni che vogliono usare Azure Batch per eseguire simulazioni a elevato utilizzo di calcolo. Qualsiasi architettura di distribuzione della produzione deve essere personalizzata per soddisfare specifici requisiti del carico di lavoro e dell'ambiente aziendale. Questa architettura è concepita per essere usata come punto di partenza per queste personalizzazioni negli ambienti di pre-produzione e produzione.

Casi d'uso potenziali

Questa architettura può essere usata per eseguire un'ampia gamma di carichi di lavoro FSI. Alcuni esempi includono:

  • Analisi del rischio di un portafoglio di strumenti finanziari
  • Simulazioni Monte Carlo per stimare il valore di uno strumento finanziario
  • Test retrospettivi di strategie di trading
  • Test da sforzo di un portafoglio di strumenti finanziari

Topologia di rete

Questa architettura utilizza una topologia di rete hub-and-spoke. Le risorse hub e spoke vengono distribuite in reti virtuali distinte connesse tramite il peering di reti virtuali. La rete hub contiene risorse condivise come firewall, gateway VPN e jumpbox. La rete spoke contiene il servizio Batch e i nodi di calcolo Batch. Include anche altri endpoint di servizio necessari per il carico di lavoro, ad esempio account di archiviazione, Registro Container e così via. La rete spoke è isolata dalla rete Internet pubblica ed è possibile accedervi solo dalla rete hub.

Ecco alcune delle caretteristiche principali della topologia di rete:

  • Le risorse spoke sono isolate dalla rete Internet pubblica e sono accessibili solo dalla rete hub e ciò riduce al minimo l'esposizione diretta delle risorse alla rete Internet pubblica.
  • Tutto il traffico in uscita, incluso quello proveniente dai nodi di calcolo del pool, viene instradato attraverso un firewall, che garantisce che tutto il traffico in uscita venga filtrato, registrato e monitorato.
  • Il firewall è configurato per consentire solo il traffico inserito nell'elenco Consentito, di modo che solo il traffico in tale possa uscire dalla rete virtuale.
  • L'accesso alle risorse nella rete spoke è abilitato tramite Gateway VPN o Azure Bastion distribuite facoltativamente. Entrambi offrono modi sicuri per connettersi alla rete hub dalla rete Internet pubblica.
  • Windows e i jumpbox Linux vengono forniti con strumenti preinstallati per accedere alle risorse distribuite, inviare processi e monitorarne lo stato. Questi jumpbox vengono distribuiti nella rete hub e sono accessibili dalla rete locale usando il gateway VPN o Azure Bastion.
  • Tutti i servizi Azure usano endpoint privati per assicurarsi che siano accessibili tramite rete privata anziché accedervi tramite endpoint pubblici. Questa configurazione consente inoltre di garantire che i servizi non siano accessibili dalla rete Internet pubblica.
  • Le regole NSG sono configurate in modo da consentire solo il traffico necessario in entrata e in uscita della rete virtuale. Questa configurazione consente di proteggere la rete da attacchi dannosi e di monitorare il traffico in entrata e in uscita dalla rete. Queste regole limitano anche il traffico tra le risorse nella rete virtuale.

Rete virtuale hub

La rete virtuale hub contiene risorse che consentono o monitorano il traffico in entrata e in uscita della rete spoke. La rete virtuale definisce le subnet seguenti nel modello di distribuzione:

  1. GatewaySubnet: subnet per il gateway VPN, se distribuita
  2. AzureBastionSubnet: subnet per il servizio Azure Bastion, se distribuito
  3. AzureFirewallSubnet: subnet per il servizio Firewall di Azure
  4. sn-jumpbox: subnet per le jumpbox
  5. sn-dnspr: subnet delegata al resolver DNS di Azure

Rete virtuale spoke

La rete virtuale spoke contiene il servizio Batch, i nodi di calcolo Batch e altri endpoint di servizio necessari per il carico di lavoro. La rete virtuale definisce le subnet seguenti nel modello di distribuzione:

  1. pool-linux: subnet per il pool Linux
  2. pool-windows: subnet per il pool di Windows
  3. private-endpoints: subnet utilizzata per gli endpoint privati per i servizi di Azure distribuiti nella rete spoke

La rete spoke è sottoposta a peering con la rete hub, che consente alle risorse della rete spoke di accedere alle risorse della rete hub. Le tabelle di routing sono configurate per garantire che il traffico tra gli spoke venga instradato tramite il firewall.

Accesso alle risorse

Per inviare processi di calcolo al servizio Batch, connettiti con l'endpoint del servizio Batch per inviare processi e monitorarne l'avanzamento. Poiché il servizio Batch è configurato per l'uso di endpoint privati, è possibile accedervi solo dall'interno della rete.

L'architettura offre due opzioni per connettersi alla rete in modo da poter inviare processi al servizio Batch:

  • Usa Gateway VPN. Connettiti alla rete hub utilizzando un gateway VPN. Dopo la connessione alla VPN, puoi inviare i processi al servizio Batch direttamente dal computer locale. Ciò semplifica anche il monitoraggio dei processi tramite Batch Explorer installato nel computer locale. Questa configurazione richiede l'installazione di interfaccia della riga di comando di Azure, Batch Explorer e altri strumenti nel computer locale. In alternativa, dopo la connessione alla VPN, è possibile usare i Jumpbox Linux o Windows per inviare processi al servizio Batch. In tal caso, è necessario che nel computer locale sia installato un client SSH o un client RDP.

  • Usa Azure Bastion. Invece di usare la VPN, è possibile usare Azure Bastion per accedere ai Jumpbox Linux o Windows. Accedere al portale di Azure e quindi usare Azure Bastion per accedere alla macchina virtuale jumpbox direttamente dal Web browser. Dopo aver eseguito l'accesso al jumpbox, è possibile inviare processi al servizio Batch usando il interfaccia della riga di comando di Azure, Batch Explorer e altri strumenti installati nel jumpbox.

Considerazioni

Queste considerazioni implementano i pilastri di Azure Well-Architected Framework, ovvero un set di set di principi guida che possono essere usati per migliorare la qualità di un carico di lavoro. Per altre informazioni, vedere Well-Architected Framework.

In questo esempio di flusso di lavoro, ci basiamo sul trasferimento manuale dei dati e sull'invio di processi come buon punto di partenza per i carichi di lavoro che non sono ancora pronti per l'automazione. Tuttavia, per i carichi di lavoro di produzione, è consigliabile automatizzare il trasferimento dei dati e l'invio di processi, che possono essere eseguiti usando Azure Data Factory o altri strumenti di orchestrazione del flusso di lavoro.

I pool di batch possono essere configurati per aumentare e ridurre automaticamente le prestazioni in base al numero di processi inviati al pool. Questa configurazione consente di ridurre i costi di esecuzione del pool quando non sono presenti processi da eseguire. Per ulteriori informazioni, consultare Scala automaticamente i nodi di calcolo in un pool di Azure Batch.

Sicurezza

La sicurezza offre garanzie contro attacchi intenzionali e l'uso improprio dei dati e dei sistemi preziosi. Per maggiori informazioni, consultare la sezione Elenco di controllo per la revisione della progettazione per la sicurezza.

Per ridurre al minimo la condivisione di segreti come password e chiavi, l'architettura usa identità gestite per autenticare i nodi di calcolo con l'account di archiviazione, Registro Container e altre risorse quando vengono aggiunte al pool di batch. Questa autenticazione viene eseguita assegnando identità gestite ai pool di batch e quindi concedendo alle identità gestite l'accesso alle risorse. Alle identità gestite può essere concesso il privilegio minimo richiesto per accedere alle risorse usando il controllo degli accessi in base al ruolo.

L'architettura usa anche endpoint privati per garantire che i servizi non siano accessibili dalla rete Internet pubblica. Questa configurazione consente di ridurre al minimo la superficie di attacco e di garantire che l'accesso ai servizi avvenga via una rete privata anziché tramite endpoint pubblici.

L'architettura usa anche Firewall di Azure per filtrare e monitorare il traffico all'interno e all'esterno della rete. Il firewall è configurato per consentire solo il traffico inserito nell'elenco Consentito, di modo che solo il traffico in tale possa uscire dalla rete virtuale. Questa configurazione consente di proteggere la rete da attacchi dannosi e monitora il traffico in entrata e in uscita della rete.

I nodi di calcolo stessi non sono accessibili dalla rete Internet pubblica perché gli indirizzi IP pubblici non vengono assegnati ai nodi di calcolo.

Ottimizzazione dei costi

L'ottimizzazione dei costi è incentrata sui modi per ridurre le spese non necessarie e migliorare l'efficienza operativa. Per altre informazioni, vedere Elenco di controllo per la revisione della progettazione per l'ottimizzazione dei costi.

Azure Batch è un servizio gratuito e i clienti pagano solo per le macchine virtuali, l'archiviazione e i costi di rete sottostanti. In questo carico di lavoro, oltre ai nodi di calcolo, all'account di archiviazione, ai jumpbox, Gateway VPN e Azure Bastion sono le altre risorse che comportano costi. Poiché il carico di lavoro è progettato per supportare alternative per l'accesso alle risorse, il costo di esecuzione può essere ottimizzato scegliendo uno di questi percorsi. Ad esempio, se Gateway VPN è preferibile per accedere alle risorse, Azure Bastion e le macchine virtuali jumpbox possono essere disabilitate durante la distribuzione per ridurre il costo.

Per ridurre i costi associati alle risorse di calcolo, usa le unità SKU di macchine virtuali in quanto sono più convenienti per il carico di lavoro. Inoltre, l'uso di istanze spot o della scalabilità automatica dei pool può contribuire a ridurre i costi associati ai nodi di calcolo.

Per determinare il costo di esecuzione di questo carico di lavoro, vedere Azure calcolatore prezzi.

Efficienza delle prestazioni

L'efficienza delle prestazioni è la capacità di dimensionare il carico di lavoro per soddisfare in modo efficiente le richieste poste dagli utenti. Per maggiori informazioni, consultare la sezione Elenco di controllo per la revisione della progettazione per l'efficienza delle prestazioni.

Con Batch, l'efficienza delle prestazioni si ottiene usando le SKU di macchine virtuali appropriate per il carico di lavoro. Fare riferimento a Azure unità di calcolo per informazioni dettagliate su come scegliere gli SKU di macchina virtuale corretti per il carico di lavoro. Scelta delle dimensioni della macchina virtuale per nodi di calcolo fornisce altre indicazioni sulla scelta delle SKU di macchine virtuali appropriate in base all'area di distribuzione.

Distribuire il seguente scenario

Il codice sorgente dell'infrastruttura come codice (IaC) per questa architettura di riferimento è disponibile nel repository dell'acceleratore Azure Batch. Le esercitazioni incluse illustrano come distribuire questa architettura di riferimento e come usarla per eseguire un carico di lavoro FSI di esempio, denominato azfinsim. È anche possibile usare il pulsante seguente per distribuire le risorse nella sottoscrizione usando Azure portale:

Deploy in Azure

Passaggi successivi

Moduli di apprendimento