Ridimensionare un'app Web manualmente
Ampliando e riducendo di nuovo manualmente il livello di servizio è possibile rispondere ad aumenti e riduzioni previsti del traffico. L'ampliamento offre l'ulteriore vantaggio di aumentare la disponibilità grazie al numero maggiore di istanze dell'app Web. Un errore di un'istanza non causa l'indisponibilità dell'app Web.
Nel sistema di prenotazioni di hotel è possibile effettuare un ampliamento del livello di servizio prima di un afflusso stagionale previsto. È possibile ridurre nuovamente il livello di servizio quando la stagione si conclude e diminuisce il numero di richieste di prenotazione.
In questa unità, si apprende come ampliare manualmente il livello di servizio di un'app Web e come ridurlo nuovamente.
Piani di servizio app e scalabilità
Un'app Web in esecuzione in Azure usa generalmente il servizio app di Azure per offrire l'ambiente di hosting. Il servizio app può disporre l'esecuzione di più istanze dell'app Web. Bilancia il carico delle richieste in ingresso in queste istanze. Ogni istanza viene eseguita in una macchina virtuale.
Un piano di servizio app definisce le risorse disponibili per ogni istanza. Il piano di servizio app consente di specificare il sistema operativo (Windows o Linux), l'hardware (memoria, capacità di elaborazione della CPU, archiviazione su disco e altro ancora) e la disponibilità di servizi quali il backup e il ripristino automatici.
Azure offre una serie di livelli di piano di servizio app ben definiti. L'elenco seguente riepiloga ciascuno di questi livelli, in ordine crescente di capacità e di costo:
- Il livello gratuito offre 1 GB di spazio su disco e il supporto di un massimo di 10 app, ma solo un'unica istanza condivisa e nessun contratto di servizio per la disponibilità. Ogni app ha una quota di calcolo di 60 minuti al giorno. Il piano di servizio gratuito è adatto per lo sviluppo e il test di app piuttosto che per le distribuzioni di produzione.
- Il livello condiviso offre il supporto di più app (fino a 100), sempre in esecuzione in una singola istanza condivisa. Le app hanno una quota di calcolo di 240 minuti al giorno. Non è disponibile alcun contratto di servizio relativo alla disponibilità.
- Il livello Basic supporta un numero illimitato di app e offre più spazio su disco. Le app possono essere ampliate a tre istanze dedicate. Questo livello offre un contratto di servizio con disponibilità del 99,95%. Esistono tre livelli in questo livello di servizio, che offrono quantità di potenza di calcolo, memoria e archiviazione su disco diverse.
- Anche il livello Standard supporta un numero illimitato di app. Questo livello può essere aumentato a 10 istanze dedicate e offre un contratto di servizio per la disponibilità del 99,95%. Come il livello Basic, questo livello di servizio prevede tre livelli che offrono un set sempre più potente di opzioni di calcolo, memoria e disco.
- Il livello Premium offre fino a 20 istanze dedicate, un contratto di servizio per la disponibilità del 99,95% e più livelli di hardware.
- Il livello Isolato viene eseguito in una rete virtuale Azure dedicata che offre l'isolamento della rete e del calcolo. Questo livello può essere aumentato a 100 istanze e offre un contratto di servizio per la disponibilità del 99,95%.
Nota
Alcuni livelli non sono disponibili per tutti i sistemi operativi. Ad esempio, il livello Condiviso non è attualmente disponibile per Linux.
Monitorare e ridimensionare un'app Web
Quando si crea un'app Web, è possibile creare un piano di servizio app nuovo o usarne uno esistente. Se si seleziona un piano esistente, qualunque altra app Web che usa lo stesso piano condivide le risorse con tale app Web. Vengono ridimensionate tutte insieme, pertanto è importante che abbiano tutte gli stessi requisiti di scalabilità. Se le app hanno requisiti diversi, usare un piano di servizio app distinto per ognuna.
L'ampliamento del livello di servizio viene effettuato aggiungendo altre istanze a un piano di servizio app, fino al limite disponibile per il livello selezionato. A meno che non si usi il livello gratuito, viene addebitato un costo per ogni istanza su base oraria. È possibile eseguire questa attività nel portale di Azure.
L'elemento fondamentale per la scalabilità efficace è sapere quando eseguirla e in quale quantità. Il monitoraggio delle prestazioni di un'app Web viene eseguito usando le metriche disponibili per il servizio app. Il modo più semplice per eseguire questa operazione è tramite il portale di Azure.
Se si nota un aumento costante nell'utilizzo delle risorse, ad esempio l'utilizzo della CPU, l'occupazione della memoria o la lunghezza della coda del disco, è consigliabile ampliare il livello di servizio prima che queste metriche raggiungano un punto critico. È opportuno anche monitorare il tempo di risposta medio delle richieste e il numero di richieste non riuscite. Se entrambi questi dati sono elevati, il sistema potrebbe avere quasi raggiunto, o superato, il limite di capacità. Potrebbe essere necessario ampliare immediatamente il livello di servizio.
Se le metriche indicano che il sistema ha un carico leggero e molta capacità libera, può essere utile ridurre di nuovo il livello di servizio per abbassare i costi.
In entrambi i casi si deve continuare a monitorare le statistiche dell'app Web. Consentire al sistema di stabilizzarsi. Se le metriche indicano che l'app ha ancora una potenza ridotta, o eccessiva, aggiungere o rimuovere istanze in base alle esigenze.