Funzionalità e vantaggi dei set di scalabilità di macchine virtuali

Completato

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. I set di scalabilità di macchine virtuali sono ideali 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à verranno illustrate le caratteristiche dei set di scalabilità di macchine virtuali. Al termine di questa unità, si sarà in grado di descrivere il funzionamento di un set di scalabilità. Si apprenderà come un set di scalabilità supporta scenari di scalabilità orizzontale e verticale. Si vedrà come usare la scalabilità automatica e quella basata sulla pianificazione per modificare le risorse disponibili per 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 è necessario 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. Poiché offrono macchine virtuali con carico bilanciato e ridimensionate in risposta alla domanda, i set di scalabilità di macchine virtuali 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. Sebbene sia possibile regolare manualmente il numero di VM in un set di scalabilità aumentando o riducendo il numero di istanze, in molti casi è preferibile aggiungere o rimuovere 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 N istanze aggiuntive 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. Ogni volta che Azure necessita di nuovo di capacità, l'infrastruttura di Azure eliminerà le macchine virtuali di Azure Spot Virtual Machines. Le macchine virtuali di Azure Spot Virtual Machines sono pertanto ideali per i carichi di lavoro in grado di gestire le interruzioni, come i processi di elaborazione batch, gli ambienti di sviluppo/test, i carichi di lavoro di calcolo di grandi dimensioni e altro ancora.

La quantità di capacità disponibile dipende dalle dimensioni, dall'area, dal momento della giornata e da altri fattori. Quando si distribuiscono macchine virtuali di Azure Spot Virtual Machines, Azure le alloca se c'è capacità disponibile, 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 rimuoverà le macchine virtuali di Azure Spot Virtual Machines con un preavviso di 30 secondi.

Quando Azure necessita di nuovo della potenza di calcolo, si riceverà una notifica della rimozione della macchina virtuale 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.
  • Criterio di eliminazione: l'intera macchina virtuale viene rimossa, inclusi tutti i dischi sottostanti, quindi non si continuerà a ricevere addebiti 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.