Sites de Alto Desempenho

Vi muitos posts na internet falando dos novos lançamentos desta semana (Azure, Visual Studio, Silverlight, etc.)...

Esta é a minha chance para mudar de assunto, não é?

Me lembro sempre do futebol de criança que jogávamos na escola. Onde estava a bola tinha sempre um batalhão de crianças disputando por ela. Eu gostava de ficar lá do outro lado do enxame, na esperança de que a bola sobra-se livre para mim e eu pudesse fazer a diferença com calma :-)

Portanto, uma vez livre, vamos falar de desempenho de aplicativos web?

Tenho dois livros aqui na minha mão que quero recomendar.

O primeiro livro, simples, fino e direto, é o “High Performance Web Sites” do Steve Souders. Foca em dicas simples, mas relevantes, como: faça menos requests http, use CDN (como o do Azure), use compressão, adicione expiração no cabeçalho, coloque scripts no final da página, evite expressões CSS, reduza lookups no DNS, etc. Em 4hs a leitura está feita.

O segundo livro, mais detalhado e voltado para as tecnologias da Microsoft, é o “Ultra-Fast ASP.Net” do Richard Kiessig. Ele é um livro que parte de uma análise arquitetural do que acontece na ida e vinda de um request, começando no browser, indo aos servidores de dns, web e banco de dados, e retornando ao browser. Fala da configuração do IIS7, uso de viewstate, sessions, threads do .Net, e outros, e chega até a controles específicos de browsers, particionamento de dados no SQL Server e subsistemas de discos, firewalls, load balancers e outros componentes de hardware. Se você usa .Net, leia.

Desempenho é funcionalidade. Preferimos softwares com bom desempenho => logo, ele é um diferencial.

Desempenho é uma mistura de boa infraestrutura, boa arquitetura e boa programação. Um erro em um deles pode causar impacto.

Desempenho é assunto obrigatório para arquitetos.

Boa leitura.