Esaminare le opzioni di scalabilità orizzontale
Il servizio app di Azure supporta due opzioni per la scalabilità orizzontale automatica delle istanze delle app Web:
- Scalare automaticamente con la scalabilità automatica di Azure. La scalabilità automatica prende decisioni di ridimensionamento in base alle regole definite dall'utente.
- Scalabilità automatica del Servizio app di Azure. La scalabilità automatica prende decisioni di ridimensionamento in base ai parametri selezionati.
Che cos'è la scalabilità automatica?
La scalabilità automatica è un processo o un sistema cloud che consente di adeguare le risorse disponibili alla richiesta corrente. La scalabilità automatica esegue l'aumento e la riduzione del numero di istanze, in contrapposizione all'aumento e alla riduzione delle prestazioni.
La scalabilità automatica può essere attivata in base a una pianificazione oppure valutando se il sistema sta esaurendo le risorse. Ad esempio, la scalabilità automatica può essere attivata se aumenta l'uso della CPU, l'occupazione della memoria, il numero di richieste in ingresso per un servizio o in base a una combinazione di fattori.
Scalabilità automatica del servizio app di Azure
La scalabilità automatica nel servizio app di Azure monitora le metriche delle risorse di un'app Web durante la relativa esecuzione. Rileva le situazioni in cui sono necessarie altre risorse 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 risponde alle modifiche nell'ambiente aggiungendo o rimuovendo server Web ed eseguendo il bilanciamento del carico tra di essi. La scalabilità automatica non ha alcun effetto sulla potenza della CPU, la memoria o la capacità di archiviazione dei server Web su cui è basata l'app: modifica solo il numero di server Web.
Regole di scalabilità automatica
La scalabilità automatica prende decisioni in base alle regole definite dall'utente. Una regola specifica la soglia per una metrica e genera un evento di scalabilità automatica quando questa soglia viene superata. La scalabilità automatica consente anche di deallocare le risorse quando il carico di lavoro si riduce.
Definire attentamente le regole di scalabilità automatica. Un attacco Denial of Service, ad esempio, in genere determina un massiccio aumento del traffico in ingresso. Tentare di gestire un picco delle richieste causato da un attacco DoS sarebbe inutile e costoso. Queste richieste non sono autentiche e dovrebbero essere eliminate anziché elaborate. Una soluzione migliore consiste nell'implementare il rilevamento e il filtro delle richieste che si verificano durante un attacco di questo tipo prima che raggiungano il servizio.
Quando considerare la scalabilità automatica
La scalabilità automatica garantisce elasticità per i servizi. È ad esempio possibile prevedere un aumento o una riduzione dell'attività per un'app aziendale durante le festività.
La scalabilità automatica consente di migliorare la disponibilità e la tolleranza di errore. Può contribuire a garantire che le richieste dei client a un servizio non vengano rifiutate poiché un'istanza non è in grado di riconoscere la richiesta in modo tempestivo oppure perché si è verificato un arresto anomalo di un'istanza sovraccarica.
La scalabilità automatica funziona aggiungendo o rimuovendo server Web. Se le app Web eseguono un'elaborazione con un uso elevato di risorse nell'ambito di ciascuna richiesta, la scalabilità automatica potrebbe non rappresentare un approccio efficace. In questi casi, potrebbe essere necessario aumentare manualmente le prestazioni. Ad esempio, se una richiesta inviata a un'app Web comporta l'esecuzione di un'elaborazione complessa su un set di dati di grandi dimensioni, a seconda delle dimensioni dell'istanza, questa singola richiesta può esaurire la capacità di elaborazione e memoria dell'istanza.
La scalabilità automatica non è l'approccio migliore per gestire la crescita a lungo termine. Un'app Web potrebbe iniziare con pochi utenti, ma diventare sempre più popolare nel corso del tempo. La scalabilità automatica comporta un sovraccarico associato al monitoraggio delle risorse e alla decisione di attivare o meno un evento di scalabilità. In questo scenario, se è possibile prevedere il tasso di crescita, eseguire manualmente la scalabilità del sistema nel tempo potrebbe essere un approccio più conveniente.
Anche il numero di istanze di un servizio è un fattore da considerare. Si potrebbe prevedere di eseguire solo alcune istanze di un servizio per la maggior parte del tempo. Tuttavia, in questo caso, il servizio è soggetto a tempi di inattività o alla mancanza di disponibilità, che la scalabilità automatica sia abilitata o meno. Più basso è il numero di istanze iniziale, minore è la capacità per gestire un aumento del carico di lavoro mentre la scalabilità automatica attiva più istanze.
Scalabilità automatica del Servizio app di Azure
La scalabilità automatica è una nuova opzione di scalabilità orizzontale che gestisce automaticamente le decisioni di ridimensionamento per le app Web e i piani di Servizio app. È diverso dal ridimensionamento automatico di Azure preesistente, che consente di definire regole di ridimensionamento in base a pianificazioni e risorse. Con la scalabilità automatica, è possibile modificare le impostazioni di ridimensionamento per migliorare le prestazioni dell'app ed evitare problemi di avvio a freddo. Le istanze della piattaforma preriscaldano da usare come buffer quando si esegue la scalabilità orizzontale, garantendo transizioni di prestazioni uniformi. Vengono addebitati costi al secondo per ogni istanza, incluse le istanze preriscaldate.
Ecco alcuni scenari in cui è consigliabile scalare automaticamente:
- Non si vogliono configurare le regole di scalabilità automatica in base alle metriche delle risorse.
- Si vuole che le app Web all'interno dello stesso piano di servizio app si ridimensionino in modo diverso e indipendentemente l'uno dall'altro.
- L'app Web è connessa a un database o a un sistema legacy, che potrebbe non essere più veloce dell'app Web. La scalabilità automatica consente di impostare il numero massimo di istanze su cui è possibile ridimensionare il piano di servizio app. Questa impostazione consente all'app Web di non sovraccaricare il back-end.