Accedere all'account Batch usando la libreria client .NET
Nell'unità precedente sono stati creati gli account Azure Batch e Archiviazione di Azure. Poi il framework ffmpeg è stato caricato come applicazione affinché possa essere usato dai processi Batch per eseguire le attività. Ricapitoliamo lo scenario in questione.
Si vuole automatizzare il processo di conversione di file video MP4 in GIF animate. A tale scopo, si creerà un'app che possa caricare i file video da convertire, si avvierà la conversione in parallelo su tutti i file caricati, si monitorerà lo stato di avanzamento e infine si scaricheranno i risultati.
In questa unità saranno esaminate le librerie client di Azure Batch che possono essere usate per accedere agli account Batch e Archiviazione creati nell'esercizio precedente.
Librerie client di Azure
Nell'app sarà necessario importare due pacchetti NuGet. Il primo è la libreria client di Azure Batch Microsoft.Azure.Batch
, che servirà per creare ed eliminare i pool di Azure Batch, creare ed eliminare i processi del carico di lavoro, creare ed eliminare le attività e monitorare le attività in esecuzione.
La seconda libreria client è quella di Archiviazione di Azure, Microsoft.Azure.Storage.Blob
, che consente di connettersi e gestire i file in un account Archiviazione di Azure. Questa libreria gestirà i file nel contenitore di archiviazione BLOB. L'app analizza la cartella per tutti i video caricati e fornisce l'accesso al processo per scrivere i video convertiti dell'attività.
Gestione di Azure Batch Microsoft.Azure.Management.Batch
è una terza libreria non necessaria per l'app in quanto gli account Batch e Archiviazione sono stati creati manualmente.
I pacchetti NuGet necessari verranno aggiunti nell'unità successiva con il comando dotnet add package
.
Criteri di utilizzo tipici
Se si usano le librerie illustrate in precedenza, l'approccio tipico per configurare un processo batch è il seguente:
- Creare l'account del servizio Batch (API Gestione di Batch).
- Creare un account Archiviazione (API Archiviazione).
- Creare un client BLOB per gestire l'elaborazione dei file (API Archiviazione).
- Caricare file da elaborare (API Archiviazione).
- Creare un pool di nodi di calcolo (API Batch).
- Creare un processo da eseguire in tali nodi (API Batch).
- Aggiungere un'attività al processo da eseguire (API Batch).
- Monitorare lo stato di avanzamento dell'attività (API Batch).
- Scaricare i file al termine dell'elaborazione (API Archiviazione).
- Eliminare il contenitore di archiviazione di input, eliminare il pool ed eliminare il processo (API Batch e API Archiviazione).
Pool di Azure Batch
Azure Batch offre una potente funzionalità, vale a dire la possibilità di gestire le risorse di calcolo. Definendo pool di risorse, Azure Batch può essere impostato in modo flessibile su un numero specifico di nodi. Si tratta di un'opzione ottimale se le dimensioni di elaborazione sono ben definite e se è richiesto un costo fisso specifico. Esiste una seconda opzione che consente al pool di essere ridimensionato in base a una formula definita. Questo approccio può prendere in considerazione le fluttuazioni nella richiesta e consente il ridimensionamento di un'applicazione per soddisfare la richiesta. Questo approccio ha anche un altro vantaggio, vale a dire la possibilità di contenere il più possibile i costi.
Quando si creano pool di Azure Batch occorre specificare gli attributi seguenti:
- Numero di nodi di destinazione (limite predefinito 100)
- Sistema operativo e versione del nodo (è disponibile una gamma di immagini Windows e Linux)
- Tipo di nodo che può essere dedicato oppure con priorità bassa. I nodi dedicati sono più costosi, ma non verranno annullati, mentre i nodi con priorità bassa sono più economici perché sfruttano la capacità in eccesso in un'area. Le attività eseguite in essi potrebbero però essere sospese se le risorse fossero richieste altrove
- Prestazioni del nodo come CPU, memoria e dimensioni di archiviazione
- Criteri di ridimensionamento automatico (il ridimensionamento viene controllato da una formula specificata, ad esempio in base alla percentuale di CPU usata)
- Criteri di pianificazione delle attività: controllo del numero massimo di attività che un nodo può gestire in parallelo e scegliere come distribuire le attività tra i nodi
- Attività iniziali da eseguire all'avvio dei nodi (si usa per configurare il nodo che può eseguire le attività, ad esempio l'installazione delle applicazioni richieste)
- Configurazione di rete (opzioni per subnet e VNet)
- Pacchetti dell'applicazione (consentire una semplice distribuzione delle applicazioni in ogni nodo di un pool)