Che cos'è la scalabilità automatica

Completato

In questa unità verranno illustrati i concetti di ridimensionamento di Azure.

Scalabilità elastica

Un vantaggio principale del cloud è il ridimensionamento elastico. Si aumenta aggiungendo istanze di applicazione in base a una domanda crescente. È possibile usare la capacità necessaria, aumentandola quando il carico aumenta e riducendola quando una capacità extra non è necessaria.

Un classico esempio dell'esigenza di elasticità si può osservare quando il sito Web di un'organizzazione sperimenta carichi insolitamente elevati. Se non è possibile ridimensionare il sito in modo da soddisfare la domanda, l'elaborazione delle richieste può richiedere più tempo, perché vengono messe in coda in attesa di tempo del processore. Al cliente, il sito appare lento e non reattivo. Nei casi estremi, può persino sembrare inattivo.

Scalabilità manuale e automatica

È possibile configurare le impostazioni di scalabilità per un'applicazione scegliendo tra due modalità: manuale o automatica. Con la modalità manuale, come si può immaginare, si imposta il numero assoluto di istanze. La modalità automatica (scalabilità automatica) consente tuttavia di impostare regole che determinano il modo e la dimensione della scalabilità.

Il ridimensionamento automatico offre la possibilità di avere la quantità corretta di risorse in esecuzione per gestire il carico dell'applicazione. La scalabilità automatica semplifica il sovraccarico della gestione riducendo la necessità degli operatori di sistema di prendere costantemente decisioni sull'aggiunta o la rimozione di risorse o il controllo delle prestazioni del sistema. La definizione di un minimo assicura che l'applicazione sia sempre in esecuzione anche in assenza di carico. La definizione di un massimo limita il costo orario totale possibile. Il ridimensionamento viene eseguito automaticamente tra questi due estremi usando le regole create.

Diagramma che mostra i risparmi sui costi di calcolo della scalabilità automatica.

"Aumento" e "riduzione"

È possibile scalare un'applicazione in due modi principali:

  • Il ridimensionamento verticale, definito anche come aumento e riduzione delle prestazioni, modifica della capacità di una risorsa. Ad esempio, è possibile spostare un'applicazione su dimensioni di calcolo maggiori. La scalabilità verticale richiede spesso di rendere il sistema temporaneamente non disponibile durante la ridistribuzione, quindi è meno comune automatizzare il ridimensionamento verticale.

  • Il ridimensionamento orizzontale, definito anche come aumento e riduzione delle istanze, aggiunge o rimuove le istanze di una risorsa. L'applicazione può ancora essere eseguita senza interruzioni durante il provisioning delle nuove risorse. Quando il processo di provisioning viene completato, la soluzione viene distribuita su queste risorse aggiuntive. Se la domanda cala, le risorse aggiuntive possono essere totalmente arrestate e deallocate.

Il ridimensionamento automatico, noto come "orizzontale", aumenta o riduce solo il numero di istanze delle macchine virtuali.

Diagramma che mostra la differenza tra aumentare e ampliare.

Scalabilità automatica in App Spring di Azure

La scalabilità automatica in App Spring di Azure monitora le metriche delle risorse di un'applicazione Spring durante l'esecuzione. Rileva le situazioni in cui sono necessarie risorse aggiuntive per gestire un aumento del carico di lavoro e assicura che tali risorse siano disponibili prima che si verifichi un sovraccarico del sistema. La scalabilità automatica è una funzionalità predefinita di App Spring di Azure che ottimizza le prestazioni delle applicazioni di microservizi quando la domanda cambia.

Esempio reale

I negozi di alimentari Raley's hanno bisogno di modernizzare il codice e l'infrastruttura per i siti di e-commerce basati su Java ospitati in Azure. L'azienda ha anche bisogno di ottimizzare e automatizzare l'allocazione di rete. Tutto deve essere affidabile, sempre attivo e, soprattutto, facile da gestire.

Raley's ha scelto Azure Spring Apps. App Spring di Azure è un servizio gestito per Spring Boot, che offre la potenza di Kubernetes, abbinata al monitoraggio in tempo reale e alla scalabilità automatica. Inoltre, Raley's ha abilitato l'adozione di un'architettura platform as a service (PaaS) effettiva, recuperando i vantaggi del cloud.

Il servizio gestisce l'infrastruttura delle applicazioni di microservizi Spring Boot dietro le quinte per consentire agli sviluppatori di concentrarsi sul codice. Quando vengono distribuite librerie o codici Java, App Spring collega automaticamente le app con il runtime di servizio Spring.

Dopo la distribuzione, Azure Spring Apps è completamente integrato con gli strumenti di Monitoraggio di Azure, ad esempio Application Insights e Log Analytics. Questi strumenti consentono un monitoraggio semplice e completamente configurabile delle prestazioni e degli errori. Questi stessi servizi di monitoraggio possono anche guidare la scalabilità automatica, consentendo di garantire che le risorse siano ridimensionate in modo appropriato per i carichi correnti.

Diagramma che mostra il ridimensionamento della scalabilità automatica.