Descrivere i principi fondamentali di Azure CycleCloud

Completato

Molte organizzazioni vogliono eseguire la transizione dei carichi di lavoro HPC locali ad Azure per sfruttarne le funzionalità di iperscalabilità. Vogliono anche ridurre al minimo la curva di apprendimento associata a tale transizione e usare le competenze inerenti alle distribuzioni esistenti, ad esempio un'utilità di pianificazione HPC specifica. Cercano infine informazioni dettagliate sulle prestazioni e sui costi delle risorse cluster basate sul cloud corrispondenti a quelle degli ambienti locali.

L'implementazione di una soluzione personalizzata che risponda a queste esigenze è complessa. Richiede una conoscenza approfondita delle risorse di calcolo, di rete e di archiviazione di Azure che fungono da elementi costitutivi dei cluster HPC basati sul cloud. Inoltre, senza un'interfaccia di gestione corrispondente, rendere operativa una soluzione di questo tipo sulla base degli strumenti standard di gestione di Azure comporterebbe un notevole sovraccarico amministrativo.

Azure CycleCloud risolve questi problemi offrendo un modo semplice, sicuro e scalabile per implementare le utilità di pianificazione HPC in Azure. In questa unità verranno illustrate le funzionalità di base.

Nota

Azure CycleCloud è ideale per gli scenari di distribuzione che richiedono l'uso di un'utilità di pianificazione HPC specifica. È il perfetto complemento di Azure Batch, che fornisce un'utilità di pianificazione come servizio in Azure.

What is Azure CycleCloud? (Cos'è Azure CycleCloud?)

Azure CycleCloud è uno strumento per distribuire i cluster HPC in Azure e gestire i carichi di lavoro. Offre un'ampia gamma di funzionalità HPC, tra cui:

  • Distribuzione basata su modelli dei cluster HPC. Azure CycleCloud offre modelli predefiniti personalizzabili per la distribuzione delle più comuni utilità di pianificazione dei cluster, tra cui Slurm, OpenPBS, LSF, Grid Engine e HTCondor. Molti altri modelli predefiniti, che è possibile importare nell'istanza di Azure CycleCloud, sono disponibili nel repository GitHub di CycleCloud.

    Nota

    I modelli sono file in formato INI che usano la sintassi dichiarativa per descrivere come sono organizzati i nodi in un cluster CycleCloud, incluse le rispettive relazioni. I modelli contengono i riferimenti ai progetti, che definiscono la configurazione dei nodi.

  • Ridimensionamento manuale e automatizzato dei nodi del cluster. Azure CycleCloud consente il ridimensionamento orizzontale manuale e automatizzato dei cluster gestiti in base alla lunghezza delle code di processi e ai criteri di governance. Offre anche un'API REST per lo sviluppo di adattatori di scalabilità automatica per le utilità di pianificazione personalizzate.

  • Configurazione dei nodi tramite script cloud-init. Azure CycleCloud supporta la gestione della configurazione basata su script personalizzati che vengono eseguiti all'interno dei nodi del cluster gestiti prima di qualsiasi altra attività di configurazione specifica di CycleCloud.

  • Gestione dell'archiviazione cluster interna ed esterna. Azure CycleCloud consente di configurare l'archiviazione cluster tramite il provisioning, il montaggio e la formattazione dei dischi gestiti di Azure e dei dispositivi NAS, quali server NFS o cluster BeeGFS.

  • Monitoraggio, registrazione e avvisi. Azure CycleCloud offre il monitoraggio predefinito dei cluster e si integra con Monitoraggio di Azure. È anche possibile archiviare i dati dei log dai cluster di CycleCloud a Log Analytics e creare dashboard di metriche personalizzati. È anche possibile creare notifiche tramite posta elettronica e avvisi personalizzati che vengono attivati dai dati di telemetria. Tutte le attività di Azure CycleCloud vengono registrate.

  • Autenticazione e autorizzazione. Azure CycleCloud supporta l'autenticazione locale predefinita. In alternativa, è possibile integrarlo con Active Directory Domain Services o altri provider di identità basati su LDAP (Lightweight Directory Access Protocol). Per impostazione predefinita, gli utenti definiti in locale hanno accesso al sistema operativo nei nodi del cluster gestiti, ma è possibile amministrare gli utenti del cluster separatamente. Per la gestione delle risorse in una sottoscrizione di Azure, è possibile usare un'entità servizio o un'identità gestita di Microsoft Entra.

  • Controlli e creazione di report sui costi quasi in tempo reale. Azure CycleCloud tiene traccia dell'utilizzo del cluster e stima il costo corrispondente. Questa funzionalità consente di configurare avvisi relativi al budget attivati quando il costo del cluster supera l'importo specificato. Azure CycleCloud si integra anche con Gestione costi di Microsoft.

Come si implementa e si usa Azure CycleCloud?

CycleCloud viene implementato come applicazione Web basata su Linux, che può essere installata in qualsiasi posizione da cui è possibile accedere all'ambiente Azure. Il modo più semplice per configurarlo consiste nel distribuire una macchina virtuale di Azure usando l'immagine corrispondente di Azure Marketplace, con la possibilità di automatizzare la distribuzione usando un modello di Azure Resource Manager (ARM). In alternativa, è possibile usare pacchetti yum o apt oppure un'immagine del contenitore disponibile in Microsoft Container Registry.

Durante la configurazione iniziale, sarà possibile specificare una chiave SSH per proteggere l'accesso al sistema operativo che ospita l'applicazione CycleCloud e ai nodi del cluster distribuiti successivamente. Per consentire all'applicazione CycleCloud di interagire con Azure Resource Manager, è necessario scegliere un'identità di Microsoft Entra che fornisce il contesto di protezione per questa interazione e le assegnerà autorizzazioni sufficienti nella sottoscrizione di Azure di destinazione usando il controllo degli accessi in base al ruolo di Azure. Questa identità può essere un'entità servizio o un'identità gestita se ospita l'applicazione Azure CycleCloud in una macchina virtuale di Azure.

Un'istanza di Azure CycleCloud richiede anche un account di archiviazione di Azure e un contenitore BLOB associato. Questo contenitore, noto come locker, fornisce l'area di gestione temporanea per la distribuzione dei progetti nei nodi del cluster.

Una volta installata, l'applicazione Azure CycleCloud fornisce un'interfaccia utente grafica che consente a un utente di gestire e monitorare i sistemi HPC e un'interfaccia della riga di comando che facilita l'automazione e l'integrazione di CycleCloud nei flussi di lavoro esistenti. È anche possibile usare l'interfaccia della riga di comando per importare i modelli, automatizzare il provisioning dei cluster ed eseguire attività di gestione più avanzate.

Screenshot dell'interfaccia grafica dell'applicazione Web Azure CycleCloud.

Qual è l'architettura di Azure CycleCloud?

Azure CycleCloud offre un ulteriore livello di astrazione rispetto ad Azure Resource Manager, riducendo al minimo la necessità per gli utenti di gestire direttamente le risorse di calcolo e di archiviazione di Azure. Il suo ruolo è quello di convertire le configurazioni a livello di utilità di pianificazione accessibili tramite l'interfaccia grafica o l'interfaccia della riga di comando in chiamate API ad ARM, che interagiscono con le macchine virtuali di Azure e i set di scalabilità di macchine virtuali di Azure nelle subnet e nelle reti virtuali definite dall'utente. Queste chiamate considerano anche le quote di vCPU a livello di area, i limiti delle dimensioni del cluster e i vincoli della topologia di rete InfiniBand. Facilitano anche l'ottimizzazione delle prestazioni del cluster usando costrutti come i gruppi di posizionamento di prossimità o connettendo i nodi del cluster allo stesso commutatore InfiniBand.

Nota

Un gruppo di posizionamento di prossimità consente di collocare le macchine virtuali di Azure vicine l'una all'altra, ma non considera la rete InfiniBand. Azure CycleCloud consente di usare il proprio costrutto specifico, definito PlacementGroupId, per raggruppare i nodi del cluster in un singolo set di scalabilità di macchine virtuali di Azure connesso allo stesso commutatore di rete. Pur essendo possibile combinare queste due funzionalità, potrebbe ridursi il numero di nodi di cui è possibile effettuare il provisioning all'interno dello stesso set di scalabilità di macchine virtuali di Azure.

Azure CycleCloud gestisce il ciclo di vita dei cluster HPC, che in genere sono costituiti da uno o più nodi head e nodi di calcolo dell'utilità di pianificazione HPC, ma possono anche includere un dispositivo NAS, ad esempio un server NFS o un cluster BeeGFS, Azure NetApp Files, Cache HPC di Azure e Microsoft Entra Domain Services. Include un archivio dati NoSQL interno che memorizza nella cache gli stati del cluster e dei nodi. Il sistema di monitoraggio dei nodi consente la creazione di avvisi. Le funzionalità di gestione sono esposte tramite l'API REST e accessibili tramite il Web e l'interfaccia della riga di comando.

La scalabilità automatica del cluster gestito si basa sul calcolatore della domanda e sulla libreria di scalabilità automatica. Nell'unità successiva di questo corso ne verranno descritte le caratteristiche.

Diagramma dell'architettura generale di Azure CycleCloud.

Qual è il ciclo di vita del cluster Azure CycleCloud?

Il ciclo di vita di un cluster inizia con la selezione di un modello che ne contiene la definizione. È possibile usare uno dei modelli predefiniti oppure crearne uno personalizzato e importarlo nell'applicazione CycleCloud. Il modello include in genere diversi parametri, che consentono di personalizzare la configurazione del cluster durante la creazione. Le specifiche del processo di creazione del cluster sono diverse a seconda che si usi il Web o l'interfaccia della riga di comando.

Dopo aver creato un cluster, è possibile avviarlo. L'avvio di un cluster attiva una sequenza di attività per ogni nodo che fa parte della definizione basata sul modello del cluster. Questa sequenza è costituita da una chiamata ad Azure Resource Manager che richiede il provisioning di una macchina virtuale di Azure, ovvero dall'acquisizione dello stato. Segue la configurazione della macchina virtuale, incluse l'esecuzione dell'inizializzazione definita nel progetto corrispondente, l'esecuzione degli script per installare e configurare il software di pianificazione e il provisioning e il montaggio dei volumi del file system. Al termine della sequenza, il nodo raggiunge lo stato Avviato. Gli errori non gestiti o sconosciuti restituiscono lo stato Errore.

I nodi del cluster, una volta in esecuzione, sono accessibili da remoto tramite SSH o RDP, a seconda del sistema operativo. È possibile usare tali connessioni per inviare i processi del cluster. A seconda della configurazione del cluster, ciò potrebbe attivare il ridimensionamento del cluster.

È possibile terminare un cluster quando tutti i processi inviati sono stati completati. L'interruzione del cluster arresta e rimuove i nodi ed elimina tutti i volumi non persistenti, lasciando il cluster nello stato Off.