Funzionalità e vantaggi dei set di scalabilità di macchine virtuali
I set di scalabilità di macchine virtuali di Azure offrono una soluzione scalabile per eseguire applicazioni in un set di macchine virtuali. Le macchine virtuali in un set di scalabilità possono avere tutte la stessa configurazione ed eseguire le stesse applicazioni oppure avere configurazioni diverse ed eseguire applicazioni diverse. Quando la domanda cresce, il numero di macchine virtuali in esecuzione nel set di scalabilità aumenta. Quando la domanda si riduce, è possibile rimuovere le macchine virtuali in eccesso. Il set di scalabilità di macchine virtuali è ideale per gli scenari che prevedono carichi di lavoro per calcolo, Big Data e contenitori.
Nello scenario di esempio, i clienti usano uno dei siti Web della società per gestire e controllare lo stato delle loro spedizioni. Dato che il sito Web è accessibile a livello globale, è talvolta difficile prevedere l'entità del carico a una determinata ora del giorno. Il carico può inoltre variare in base a criteri stagionali, con un picco nel mese di dicembre a causa delle festività di fine anno. Si decide di usare un set di scalabilità di macchine virtuali per gestire il carico fluttuante mantenendo un tempo di risposta ridotto per le richieste dei clienti.
In questa unità vengono illustrate le caratteristiche dei set di scalabilità di macchine virtuali. Al termine di questa unità, è possibile descrivere il funzionamento di un set di scalabilità. Si apprenderà come un set di scalabilità supporta scenari di scale-out e scale-up e si otterranno informazioni su come usare la scalabilità automatica e il ridimensionamento basato su pianificazione per regolare le risorse disponibili in un set di scalabilità.
Che cos'è un set di scalabilità di macchine virtuali?
I set di scalabilità di macchine virtuali in Azure sono progettati per consentire la distribuzione e la gestione di numerose macchine virtuali con bilanciamento del carico. I set di scalabilità di macchine virtuali sono abbastanza intelligenti da aumentare o ridurre automaticamente il numero di istanze di macchine virtuali.
I criteri adottati per attivare il ridimensionamento possono dipendere da una pianificazione personalizzata o dalla domanda e dall'utilizzo effettivi. I set di scalabilità possono applicare contemporaneamente la stessa configurazione a un gruppo di macchine virtuali. Non richiedono di configurare manualmente le istanze singolarmente.
Per distribuire le richieste tra le istanze di macchine virtuali, un set di scalabilità usa un servizio di bilanciamento del carico. La disponibilità di ogni istanza viene determinata con un probe di integrità o l'estensione per l'integrità delle applicazioni. Il probe o l'estensione esegue il ping dell'istanza. Se l'istanza risponde, il set di scalabilità sa che l'istanza è ancora disponibile. Se invece il ping non riesce o raggiunge il timeout, il set di scalabilità sa che l'istanza non è disponibile e non invia richieste.
In Azure, i set di scalabilità di macchine virtuali supportano macchine virtuali Linux e Windows. In ogni set di scalabilità è possibile eseguire fino a 1.000 macchine virtuali.
Se si gestiscono carichi di lavoro di grandi dimensioni con domanda variabile e imprevedibile, i set di scalabilità sono un'ottima soluzione. I set di scalabilità di macchine virtuali offrono macchine virtuali scalabili in risposta alla domanda e con bilanciamento del carico. Forniscono automaticamente un ambiente a disponibilità elevata.
Opzioni di scalabilità per i set di scalabilità
I set di scalabilità sono progettati per garantire la massima convenienza. Le nuove istanze di macchine virtuali vengono create solo all'occorrenza.
In alcuni casi può essere necessario aggiungere o rimuovere macchine virtuali in un set di scalabilità, a seconda della domanda. Ad esempio, potrebbe non essere necessario eseguire alcune macchine virtuali durante determinati periodi della settimana o del giorno in cui la domanda è bassa. Per regolare manualmente il numero di macchine virtuali in un set di scalabilità, si potrebbe aumentare o ridurre il numero di istanze. In molti casi è preferibile aggiungere o rimuovere automaticamente le macchine virtuali usando le regole. Le regole sono basate su metriche. Assicurano che venga aggiunto il numero corretto di macchine virtuali, a seconda della domanda o della pianificazione.
Tipi di scalabilità per un set di scalabilità
I set di scalabilità di macchine virtuali soddisfano la necessità di creare e gestire rapidamente le macchine virtuali per un carico di lavoro fluttuante. È possibile configurare due tipi di scalabilità per un set:
Scalabilità pianificata: è possibile pianificare in modo proattivo il set di scalabilità in modo da distribuire una o più istanze per soddisfare un picco nel traffico e quindi ridurre di nuovo le istanze al termine del picco.
Scalabilità automatica: se il carico di lavoro è variabile e non sempre pianificabile, è possibile applicare una soglia di scalabilità basata sulle metriche. La scalabilità automatica ridimensiona le risorse in base all'utilizzo del nodo. Le istanze vengono poi ridotte di nuovo quando le risorse tornano a una baseline.
Entrambe queste opzioni consentono di soddisfare il requisito di scalabilità e gestire al tempo stesso i costi associati. Negli esempi seguenti vengono descritti gli scenari in cui è possibile usare tipi diversi di scalabilità.
Scalabilità pianificata
Si supponga di far parte del team DevOps per una grande azienda di distribuzione di prodotti alimentari. Il venerdì notte è in genere il periodo di maggior carico, mentre le 7 del mercoledì sono in genere l'orario più tranquillo.
Azure addebita i costi in base al consumo di risorse, quindi è opportuno evitare di eseguire i servizi che non sono necessari. Se occorrono 100 server Web per soddisfare la domanda durante la notte del venerdì, conviene sicuramente sostenere i costi per tali server. Se però sono sufficienti due server per il mercoledì mattina, non è il caso di pagare per gli altri 98 server inattivi. Per gestire i costi e soddisfare al tempo stesso i requisiti operativi, può essere utile usare la scalabilità pianificata.
Scalabilità automatica
Si supponga di far parte del team DevOps per un noto calzaturificio. Quando si avvicina il lancio di un prodotto, è prevista una domanda significativa per il servizio. Tuttavia, il picco della domanda potrebbe essere imprevedibile e difficile da quantificare. Si vuole che il servizio sia in grado di soddisfare la domanda aumentando il numero di istanze contemporaneamente all'utilizzo delle risorse correnti.
Per questo scenario è possibile adottare una soluzione di scalabilità automatica basata sulle metriche. Questo tipo di scalabilità automatica espande l'infrastruttura quando la domanda aumenta e la riduce quando la domanda diminuisce.
Riduzione dei costi tramite macchine virtuali spot
Azure Spot Virtual Machines consente di sfruttare la capacità inutilizzata con un notevole risparmio sui costi. In qualsiasi momento in cui Azure richiede di nuovo la capacità, l'infrastruttura di Azure rimuove Azure Spot Virtual Machines. Di conseguenza, queste macchine virtuali sono ideali per i carichi di lavoro che possono gestire interruzioni come i processi di elaborazione batch, ambienti di sviluppo/test e carichi di lavoro di calcolo di grandi dimensioni.
La quantità di capacità disponibile dipende dalle dimensioni, dall'area, dal momento della giornata e da altri fattori. Quando distribuisce Azure Spot Virtual Machines, Azure alloca le macchine virtuali se è disponibile la capacità, ma non esiste alcun contratto di servizio per queste macchine virtuali. Una macchina virtuale di Azure Spot Virtual Machines non offre garanzie di disponibilità elevata. Quando, in qualsiasi momento, Azure avrà di nuovo bisogno di quella capacità, l'infrastruttura di Azure rimuove le macchine virtuali di Azure Spot Virtual Machines con un preavviso di 30 secondi.
Quando Azure richiede di nuovo la potenza di calcolo, si riceve una notifica sulla macchina virtuale che Azure rimuove dal set di scalabilità. Se è necessario pulire o uscire normalmente dal codice nella macchina virtuale, è possibile usare Eventi pianificati di Azure per rispondere alla notifica all'interno della macchina virtuale. È anche possibile fare in modo che il set di scalabilità provi a creare un'altra macchina virtuale per sostituire quella che viene rimossa. La creazione della nuova macchina virtuale non è tuttavia garantita.
Con Azure Spot Virtual Machines è possibile specificare due tipi di rimozione impostando un criterio di rimozione:
- Criterio di deallocazione (impostazione predefinita): la macchina virtuale viene arrestata. Le risorse di elaborazione e di memoria vengono deallocate. I dischi rimangono intatti e i dati vengono conservati. Mentre la macchina virtuale non è in esecuzione viene addebitato il costo dello spazio su disco.
- Eliminare i criteri: l'intera VM viene rimossa, inclusi tutti i dischi sottostanti, quindi non viene addebitato alcun costo per l'archiviazione.
Le macchine virtuali di Azure Spot Virtual Machines sono utili per i carichi di lavoro che vengono eseguiti con interruzioni o quando è necessario usare macchine virtuali di maggiori dimensioni a un costo molto ridotto. Tenere presente che non è possibile controllare quando una macchina virtuale potrebbe essere rimossa.