M365Con 2027 – conferenza online gratuita · 11–22 Jan 2027 · 120 sessions→ m365con.net

Blog · Mirko Peters

Scalare oltre i limiti: perché serve Azure Compute Fleet per carichi di lavoro massivi

By ·

Bentornati alla nostra esplorazione continua delle architetture cloud avanzate. Nel nostro ultimo episodio del podcast, « Azure Compute Fleet – Simply Explained », abbiamo affrontato un m…

Automatically translated with AI from the original post. Read the English original

Cover: Azure Compute Fleet – Simply Explained

Bentornato nel nostro percorso di approfondimento sulle architetture cloud avanzate. Nel nostro ultimo episodio del podcast, Azure Compute Fleet – Simply Explained, abbiamo affrontato una sfida enorme che le aziende moderne devono gestire quando lavorano con l'infrastruttura cloud. Se hai mai provato a effettuare il provisioning di centinaia o migliaia di macchine virtuali in una sola volta per un job batch impegnativo, una simulazione di high-performance computing o una pipeline di elaborazione dati su larga scala, conosci già la frustrazione di sbattere all'improvviso contro un muro di capacità. In questo post approfondiremo quei concetti, spiegando perché i metodi tradizionali non sono sufficienti e come Azure Compute Fleet cambi radicalmente il modo in cui acquisisci e gestisci risorse di calcolo massive nel cloud.

Che cos'è Azure Compute Fleet?

Azure Compute Fleet è un servizio gestito specializzato, progettato appositamente per risolvere problemi di capacità su larga scala. Quando devi scalare un carico di lavoro da zero a migliaia di worker all'istante, i metodi di distribuzione standard possono facilmente creare colli di bottiglia. Creare una singola macchina virtuale è semplice, ma chiedere a una regione di fornirti mille macchine virtuali identiche di un unico SKU preciso è una sfida completamente diversa. Azure Compute Fleet cambia la domanda fondamentale che poni al cloud. Invece di chiedere «Come ottengo mille VM identiche di questa dimensione esatta?», chiedi «Come ottengo la capacità di calcolo di cui ha bisogno il mio carico di lavoro, usando una serie di opzioni accettabili?». Descrivendo il fabbisogno complessivo di capacità, le dimensioni delle VM accettabili, le preferenze regionali e la tua disponibilità a usare sia il pricing on-demand sia quello Spot, più economico ma meno garantito, Azure può cercare in modo intelligente tra più pool di disponibilità per assicurarsi le risorse richieste dalla tua applicazione.

Perché la flessibilità conta

Per capire perché Compute Fleet è così potente, dobbiamo osservare da vicino come funziona la capacità nel cloud. Uno SKU di macchina virtuale rappresenta una specifica combinazione di CPU, memoria, architettura di archiviazione e famiglia di processori. Se i tuoi script di automazione richiedono un solo SKU specifico, Azure può cercare solo quella corrispondenza esatta. Se quella famiglia specifica è molto richiesta nella regione di destinazione, il deployment si bloccherà in stato di coda o fallirà del tutto. Compute Fleet introduce flessibilità permettendoti di specificare un'ampia gamma di dimensioni di VM accettabili. Finché il carico di lavoro è progettato per essere eseguito correttamente su queste diverse configurazioni hardware, Azure può distribuire i tuoi worker dinamicamente. Su scala massiva, questa flessibilità aumenta in modo esponenziale la probabilità di ottenere esattamente la quantità di potenza di calcolo aggregata di cui hai bisogno, esattamente quando ne hai bisogno.

Fino a 10.000 VM in un unico fleet

Gestire manualmente un'infrastruttura su larga scala è una ricetta sicura per l'esaurimento operativo. Scrivere script di orchestrazione personalizzati per gestire retry dei deployment, dimensioni di VM di fallback e monitoraggio su decine di configurazioni diverse diventa rapidamente un incubo impossibile da mantenere. Compute Fleet è progettato per eliminare questo carico operativo, supportando fino a 10.000 macchine virtuali in una singola richiesta di fleet. Definisci i parametri del fleet una sola volta e Azure valuta l'inventario disponibile tra tutte le scelte consentite, individuando automaticamente la combinazione ottimale di risorse e avviando i gruppi di macchine virtuali sottostanti necessari. Questa capacità nativa permette ai team di ingegneria di concentrarsi sui carichi di lavoro reali, invece di passare innumerevoli ore a risolvere errori di allocazione dell'infrastruttura.

Cosa non fa Compute Fleet

Anche se Azure Compute Fleet è un vero cambio di gioco per l'acquisizione di capacità, è importante capire i suoi limiti. Compute Fleet risolve il problema della capacità; non determina né sostituisce l'intera architettura applicativa. Sei comunque completamente responsabile di fornire le immagini delle macchine virtuali, le configurazioni di rete, i gruppi di sicurezza e il software applicativo di cui ogni worker ha bisogno per essere eseguito. Compute Fleet non sa per natura se i tuoi worker stanno renderizzando effetti visivi cinematografici, eseguendo calcoli finanziari complessi, lanciando test di regressione automatizzati o analizzando dati di telemetria scientifica grezzi. Inoltre, non sostituisce componenti architetturali fondamentali come load balancer, code di messaggi durevoli, logica applicativa o meccanismi di disaster recovery. La sua missione unica e molto focalizzata è acquisire e gestire grandi quantità di capacità di calcolo quando esistono più configurazioni accettabili.

Scelta delle dimensioni di VM accettabili

Progettare una distribuzione efficace di fleet inizia con una decisione architetturale cruciale: stabilire quali dimensioni di VM la tua applicazione può effettivamente utilizzare. Su scala fleet, la tua preoccupazione principale non dovrebbe essere ottenere un modello di processore specifico per preferenza personale. Devi invece eseguire un audit approfondito dei requisiti software. Di quanti core CPU, soglie di memoria, metriche di prestazioni dello storage locale o tipi di acceleratori ha davvero bisogno la tua applicazione? Se più famiglie di VM soddisfano quelle soglie operative, consentirle tutte offre ad Azure un perimetro di ricerca molto più ampio. Devi però validare con rigore ogni singola dimensione che includi. Non aggiungere mai una famiglia di VM alla configurazione del fleet solo perché sembra più economica, se il tuo software richiede set di istruzioni specifici, driver dedicati, configurazioni di storage particolari o capacità hardware specifiche.

Capacità vs. prezzo

Un'altra considerazione progettuale importante riguarda il bilanciamento tra le esigenze immediate di capacità e l'ottimizzazione complessiva dei costi. Carichi di lavoro diversi richiedono strategie di distribuzione completamente diverse. Per esempio, un calcolo notturno del rischio finanziario potrebbe avere una finestra di esecuzione rigida e doversi completare prima dell'apertura dei mercati globali la mattina seguente. In quello scenario specifico, ottenere subito la capacità garantita è molto più critico che assicurarsi il prezzo per core assolutamente più basso. Al contrario, altri carichi di lavoro offrono una flessibilità di pianificazione enorme. I test in background, le simulazioni a lungo termine, l'elaborazione dei dati arretrati e gli ambienti di sviluppo temporanei possono spesso tollerare piccoli ritardi nell'acquisizione della capacità completa in cambio di costi infrastrutturali nettamente inferiori. Compute Fleet offre alle organizzazioni la libertà architetturale di adattare le distribuzioni a queste diverse priorità operative.

Selezione delle VM basata sugli attributi

Per rendere la configurazione ancora più potente, Azure offre un approccio di selezione delle VM basato sugli attributi, che è stato evidenziato nei nostri recenti materiali del podcast come una potente funzionalità in anteprima. Invece di obbligarti a elencare manualmente decine di SKU di VM esatti, questa funzionalità ti consente di definire caratteristiche generali. Puoi specificare parametri come il numero minimo e massimo di vCPU, gli intervalli di memoria, i requisiti di storage NVMe locale o acceleratori GPU specializzati. Azure identifica e utilizza dinamicamente le dimensioni di VM che corrispondono esattamente a queste definizioni di attributi. Questo offre una straordinaria protezione futura, man mano che Microsoft introduce nel cloud generazioni di VM più recenti ed efficienti, anche se le tue applicazioni devono comunque essere sottoposte a una validazione adeguata rispetto a qualsiasi profilo hardware appena abbinato.

VM on-demand

Costruire un fleet solido significa capire i ruoli distinti dei diversi modelli di acquisto. Le macchine virtuali on-demand costituiscono la base stabile e solidissima del tuo fleet. Quando richiedi una VM on-demand, paghi la tariffa standard e prevedibile, e Azure garantisce che non riprenderà la risorsa solo perché la domanda di un altro cliente aumenta. Questo rende la capacità on-demand ideale per la base minima di calcolo di cui il tuo carico di lavoro ha bisogno per restare sempre operativo. I componenti infrastrutturali critici, come i coordinatori dei job, i listener delle code di messaggi e i worker di base principali, dovrebbero quasi sempre utilizzare capacità on-demand per garantire una supervisione ininterrotta.

VM Spot

Sull'altro lato dello spettro degli acquisti troviamo le macchine virtuali Spot. Le VM Spot consentono di sfruttare la capacità di calcolo inutilizzata di Azure con sconti notevoli, spesso fino al novanta per cento rispetto al prezzo standard pay-as-you-go. Il compromesso per questo risparmio straordinario è il rischio di interruzione. Azure si riserva il diritto di recuperare la capacità Spot con poco preavviso ogni volta che la domanda regionale richiede di nuovo quelle risorse fisiche. Questo rende le VM Spot particolarmente interessanti per i carichi di lavoro tolleranti ai guasti, dove i worker possono scomparire a metà di un'attività senza causare errori catastrofici, a condizione che la tua architettura sia progettata per riprovare in modo sicuro le operazioni interrotte.

Combinare capacità Spot e on-demand

Non devi scegliere tra una strategia esclusivamente on-demand e un approccio basato solo su Spot. Anzi, le architetture più resilienti combinano entrambi i modelli di acquisto in un'unica flotta coesa. Usando le VM on-demand per il control plane persistente e per i worker di base, garantisci un throughput minimo prevedibile. Contemporaneamente, puoi affiancare alla flotta un numero elevato di VM Spot per gestire una scalabilità di calcolo enorme a una frazione del costo abituale. Se Azure recupera una parte dei worker Spot durante una crisi di capacità, i worker on-demand principali continuano a elaborare senza interruzioni, raggiungendo un ottimo equilibrio economico tra risparmio e stabilità operativa.

Progettare per l'interruzione

Azure Compute Fleet gestisce con efficienza l'allocazione della capacità sottostante e invia notifiche preventive per le interruzioni Spot, ma non può proteggere per magia i dati dell'applicazione che risiedono esclusivamente nella memoria di un singolo worker. Per sfruttare davvero la potenza di una flotta, il carico di lavoro deve essere progettato fin dall'inizio per gestire la terminazione dei worker. Consideriamo, ad esempio, una pipeline distribuita di rendering video. Se un progetto è suddiviso in singole attività di rendering dei fotogrammi e una VM Spot viene recuperata da Azure mentre sta elaborando il fotogramma 412, quell'attività deve tornare automaticamente alla coda di messaggi centrale, così che un altro worker disponibile possa prenderla in carico. Questo stesso schema architetturale si applica altrettanto bene alle simulazioni scientifiche, alle build automatizzate del software, ai test di integrazione continua e alle grandi analisi dei dati.

Mantenere lo stato al di fuori del worker

Per funzionare in un ambiente di flotta dinamico, l'applicazione deve rispettare una regola d'oro: mantenere lo stato interamente al di fuori del worker. Non fare affidamento sullo storage temporaneo locale su disco per i dati persistenti critici. Usa invece soluzioni di storage durevoli come Azure Blob Storage, database relazionali gestiti o archivi NoSQL distribuiti per conservare la fonte di verità. Usa code durevoli per distribuire le attività lungo la flotta e assicurati che i worker scrivano checkpoint regolari durante le operazioni di lunga durata. Progetta le attività in modo che siano idempotenti, cioè che possano essere eseguite più volte senza creare record duplicati o output corrotti. Quando una VM Spot scompare all'improvviso, dovresti perdere solo la piccola frazione di lavoro in corso, invece di ore di elaborazione irrecuperabile.

Compute Fleet e Virtual Machine Scale Set a confronto

Una domanda frequente di chi si avvicina a questa tecnologia è in che modo Compute Fleet si confronti con Azure Virtual Machine Scale Sets (VMSS). Entrambi i servizi gestiscono gruppi di macchine virtuali, ma sono pensati per risolvere problemi sostanzialmente diversi. Le Virtual Machine Scale Set di solito partono da un livello applicativo specifico. Distribuisci un'app web, un'API basata su microservizi o un'applicazione aziendale dietro un load balancer, e il VMSS aumenta o riduce il numero di istanze identiche in base al traffico di rete in arrivo o alle soglie di CPU. Compute Fleet, invece, parte da un presupposto completamente diverso: come posso acquisire rapidamente un ampio pool di capacità di calcolo flessibile per smaltire una montagna di lavoro distribuito?

Quando usare Virtual Machine Scale Set

I Virtual Machine Scale Set restano il vero punto di riferimento per i livelli applicativi continui e di lunga durata, dove le istanze svolgono ruoli uniformi e devono rispondere in modo dinamico al traffico degli utenti. I casi d'uso ideali includono applicazioni web rivolte ai clienti, API pubbliche, vetrine e-commerce e server applicativi di backend posti dietro un Azure LoadBalancer o un Application Gateway. In questi ambienti, i principali driver di progettazione sono mantenere l'integrità continua delle applicazioni, instradare il traffico dei client in tempo reale senza interruzioni e gestire gli aggiornamenti rolling del sistema operativo su istanze identiche.

Quando usare Compute Fleet

Al contrario, Compute Fleet dà il meglio quando l'ostacolo principale è acquisire enormi quantità di potenza di calcolo per attività asincrone, batch o indipendenti. Gli scenari tipici includono cluster di calcolo ad alte prestazioni, elaborazioni batch in ambito finanziario, simulazioni di modellazione molecolare, pipeline di acquisizione dati su larga scala, suite di test automatizzati, render farm per il rendering di contenuti multimediali e pool di worker temporanei. In queste architetture, un worker prende una singola unità di lavoro, la elabora, scrive l'output finale in uno storage persistente e passa immediatamente alla successiva. Se un worker viene meno, il sistema assegna semplicemente quell'unità di lavoro a un altro nodo disponibile.

Puoi usarli entrambi

La parte migliore dell'architettura cloud moderna è che non devi scegliere un solo strumento. Azure Compute Fleet e i Virtual Machine Scale Set non si escludono a vicenda: possono lavorare insieme in armonia all'interno dello stesso ecosistema aziendale. Ad esempio, un'applicazione aziendale sofisticata potrebbe usare un Virtual Machine Scale Set per alimentare il frontend web e il livello API ad alta disponibilità, garantendo un'esperienza utente impeccabile. Contemporaneamente, la stessa applicazione può avviare in background un Azure Compute Fleet per gestire carichi pesanti come il data warehousing notturno, la generazione di report batch o simulazioni complesse. Scegliendo lo strumento giusto per ciascun livello, costruisci un'architettura che è sia estremamente reattiva per gli utenti sia conveniente su larga scala.

Per approfondire queste architetture e ascoltare consigli pratici per l'implementazione, non perdere il nostro episodio completo del podcast di approfondimento: Azure Compute Fleet – Simply Explained. Non dimenticare di sostenere il nostro show e resta sintonizzato per altri approfondimenti sull'ingegneria cloud!

Diventa un sostenitore di questo podcast: https://www.spreaker.com/podcast/m365-fm-modern-work-security-and-productivity-with-microsoft-365--6704921/support.

Entities in this article

Azure Compute Fleet Virtual machine

Related articles

RSS