Manter um web site envolve vários fatores que vão desde a programação em si, até a alocação de um servidor apropriado para sua hospedagem. Existe um fator que muitos ignoram no momento do desenvolvimento. O crescimento de acessos. Quanto mais acessos simultâneos um web site possui, mais pesado ele se torna para quem está tenta abri-lo. Existem técnicas que contornam esse problema. Neste artigo será abordado o recurso de utilização de cache.
Para que serve
O cache distribuído permite que diversos servidores busquem informação nele e não diretamente na fonte de dados do web site, conseguindo assim uma reutilização maior das informações e consequentemente um desempenho melhor. Existem diversos frameworks de cache distribuído, e este artigo cobrirá um deles, o MyCache.
Em que situação o tema é útil
Sites que possuem grande acesso simultâneo necessitam ser responsivos, o uso do cache distribuído faz a centralização dos dados, uma vez acessados, mantendo-os à disposição para quando forem necessários gerando melhoria de desempenho.
Resumo do DevMan
Desenvolvedores por conta de prazo, falta de tempo, ou até mesmo inexperiência acabam por não testar seu software da maneira mais adequada. Em se tratando do desenvolvimento web as vezes o desenvolvedor nem espera por um grande acesso, repercussão do projeto e então se depara com problemas de performance, mesmo tudo esteja hospedado em um ótimo serviço de hospedagem. É nesse momento que entra o cache distribuído. Neste artigo será apresentado o problema da perda de performance e como resolve-la aplicando um framework de cache chamado MyCache. Será cria uma aplicação de demonstração que mostrará a ação do cache.
Vou contar uma estória aqui que certamente é conhecida. Foi dado a uma equipe um projeto de web site para ser desenvolvido. Quando o projeto foi dado como pronto, foi hospedado em um bom serviço de hospedagem. Os desenvolvedores continuaram empenhados em implementar coisas novas, mas após algum tempo de uso, o proprietário do web site procurou novamente a equipe e reportou um problema que não era esperado: lentidão. Usuários desse web site começaram a reclamar do tempo de respostas e aos poucos iam diminuindo suas visitações, consequentemente o proprietário ia perdendo mercado. Os desenvolvedores então reviam seus códigos, olharam a estrutura do serviço de hospedagem, mas não conseguiam encontram o problema. Realmente não havia problema algum nisso, mas sim, na forma que a estrutura era utilizada.
Apontando o problema
O ambiente de testes raramente é o mesmo do ambiente de produção. Um serviço de hospedagem de qualidade geralmente possui múltiplos servidores que controlam a carga dos web sites hospedados, realizando o devido redirecionamento quando for necessário. Durante o desenvolvimento esse cenário não é reproduzido. Como esses servidores não apontam para um mesmo local, mesmo que um primeiro acesso carregue os dados para o cache local de um servidor, ao ser acessado uma segunda vez, um segundo servidor pode ser acionado e acabar por carregar novamente os dados colocando-os em seu cache.
Descobrindo a solução
Em um ambiente onde se tenha vários servidores, cada um possuindo sua própria memória, a implementação de um cache local não funciona, pois esses servidores não compartilham esse cache. A solução é empregar o cache distribuído.
O cache distribuído toma para si a responsabilidade de centralizar informações e compartilha-las nos possíveis servidores existentes. A Figura 1 demonstra sua aplicação.
...