Fornire scalabilità per le applicazioni ASP.NET

Di Iqbal Khan

La popolarità di ASP.NET, il framework di applicazioni Web di Microsoft, continua a crescere a passi da gigante all'interno dei ranghi di sviluppatori, aziende e IT. C'è un'area di difficoltà, tuttavia: il ridimensionamento delle applicazioni ASP.NET immediatamente non è possibile.

La scalabilità ha due significati in questo contesto. Innanzitutto, devi essere in grado di gestire in modo efficace i picchi di carico degli utenti perché ogni applicazione attraversa picchi e valli in termini di numero di utenti che hanno effettuato l'accesso in qualsiasi momento. Quando si progetta l'infrastruttura, si desidera progettare l'applicazione in modo che possa gestire i carichi di picco con la stessa efficienza e velocità dei carichi non di picco.

In secondo luogo, devi essere in grado di aumentare la capacità totale del tuo sistema. Oggi potresti avere solo 5,000 utenti. In sei mesi, tra un anno, potresti averne 10,000 o 15,000 o 20,000 e in pochi anni potresti ritrovarti con 100,000 utenti. Essere in grado di crescere con il numero di utenti senza bloccare l'applicazione è ciò che significa scalabilità. Significa che puoi aggiungere più utenti senza influire negativamente sulle prestazioni in alcun modo evidente o, se si verifica un peggioramento, dovrebbe rientrare in un intervallo accettabile.

Leggi l'articolo completo

Una tipica applicazione ASP.NET viene distribuita su uno o più server Web collegati tra loro in una Web farm, con un servizio di bilanciamento del carico che distribuisce il traffico a tutti i server Web. In teoria, più server Web aggiungi, più richieste dovresti essere in grado di elaborare al secondo. L'architettura di una Web farm ha lo scopo di fornire scalabilità ad ASP.NET. Questa è la teoria; la realtà è un po' diversa.

Il problema per le applicazioni ASP.NET è che mentre la tecnologia Web fornisce un'elegante architettura di Web farm e sistemi di bilanciamento del carico, le tecnologie di archiviazione dei dati non sono riuscite a tenere il passo. Certamente è possibile eseguire la scalabilità orizzontale in un'applicazione Web aggiungendo più server o aumentando la potenza dei singoli server con più memoria e potenza della CPU.

Ma mentre lo fai, l’archiviazione dei dati non è in grado di scalare nelle stesse proporzioni. È scalabile, ma non tanto quanto il livello dell'applicazione Web. Di conseguenza, qualsiasi elemento dell'applicazione ASP.NET associato all'archiviazione o all'accesso ai dati costituisce un potenziale collo di bottiglia della scalabilità. Più precisamente, un server di database non è scalabile né per le sessioni né per i dati delle applicazioni.

Leggi l'articolo completo
© Copyright Alachisoft 2002 - . Tutti i diritti riservati. NCache è un marchio registrato di Diyatech Corp.