Fornecendo escalabilidade para aplicativos ASP.NET

Por Iqbal Khan

A popularidade do ASP.NET, a estrutura de aplicativos da Web da Microsoft, continua a crescer aos trancos e barrancos nos níveis de desenvolvedor, empresa e TI. No entanto, há uma área de dificuldade: dimensionar aplicativos ASP.NET prontos para uso simplesmente não é possível.

A escalabilidade tem dois significados neste contexto. Primeiro, você precisa ser capaz de lidar efetivamente com os picos de carga de usuários, porque cada aplicativo passa por picos e vales em termos do número de usuários conectados a qualquer momento. Ao projetar a infraestrutura, você deseja projetar o aplicativo para que ele possa lidar com as cargas de pico com a mesma eficiência e rapidez das cargas fora do pico.

Em segundo lugar, você precisa ser capaz de aumentar a capacidade total do seu sistema. Hoje você pode ter apenas 5,000 usuários. Daqui a seis meses, um ano, você pode ter 10,000, 15,000 ou 20,000 e, em alguns anos, poderá acabar com 100,000 usuários. Ser capaz de crescer com o número de usuários sem paralisar o aplicativo é o objetivo da escalabilidade. Isso significa que você pode adicionar mais usuários sem impactar negativamente o desempenho de forma perceptível ou, se houver alguma degradação, deverá estar dentro de uma faixa aceitável.

Leia o artigo completo

Um aplicativo ASP.NET típico é implantado em um ou mais servidores Web vinculados em um Web farm, com um balanceador de carga que distribui o tráfego para todos os servidores Web. Em teoria, quanto mais servidores Web você adicionar, mais solicitações você poderá processar por segundo. A arquitetura de um Web farm tem como objetivo dar escalabilidade ao ASP.NET. Essa é a teoria; a realidade é um pouco diferente.

O problema dos aplicativos ASP.NET é que, embora a tecnologia Web forneça uma arquitetura elegante de web farms e balanceadores de carga, as tecnologias de armazenamento de dados não acompanharam o ritmo. Certamente você pode expandir um aplicativo Web adicionando mais servidores ou aumentando a capacidade de servidores individuais com mais memória e capacidade de CPU.

Mas, ao fazer isso, o armazenamento de dados não pode ser dimensionado nas mesmas proporções. Ele é escalonável, mas não tanto quanto a camada de aplicativos Web. Conseqüentemente, qualquer coisa em seu aplicativo ASP.NET associada ao armazenamento ou acesso a dados é um potencial gargalo de escalabilidade. Mais especificamente, um servidor de banco de dados não é dimensionado para sessões ou dados de aplicativos.

Leia o artigo completo
© Copyright Alachisoft 2002 - . Todos os direitos reservados. NCache é uma marca registrada da Diyatech Corp.