Melhores práticas para portais em SharePoint. Um tal de “BlobCache”
Essa é a primeira parte de um conjunto de artigos com as melhores práticas para montagem de sites e portais com SharePoint.
Durante a construção de um portal, é comum que sejam colocados vários arquivos de layout (por exemplo scripts, estilos e imagens) em bibliotecas de documentos no SharePoint, internamente, todos esses arquivos são armazenados no banco de dados do conjunto de sites e para qualquer requisição ao site esses arquivos são obtidos também do banco de dados.
Dependendo da quantidade de acessos do site, a obtenção do conteúdo desses arquivos do bando de dados pode se tornar bastante lenta, além de aumentar e muito o I/O do banco. É justamente para resolver esse problema (mas não só para ele) que podemos usar o BlobCache do SharePoint.
O BlobCache é o recurso do SharePoint que obtém o conteúdo do banco de dados e armazena uma cópia desse arquivo em disco no servidor, nas requisições seguintes o arquivo é obtido diretamente do disco, sem a necessidade de uma nova consulta ao banco de dados.
Para exemplificar o uso, eu criei um site no SharePoint, habilitei os recursos de publicação e adicionei a imagem Azure.png na página inicial do site, como mostrado abaixo.
Ao observar o carregamento do site usando as ferramentas de desenvolvimento do navegador, o arquivo Azure.png vem com as opções de cache desabilitadas (imagem abaixo), ou seja, o navegador também não guarda cópia do arquivo no computador do usuário, fazendo com que seja necessário solicitar uma nova versão ao servidor e por consequência uma nova consulta ao banco de dados do SharePoint.
Após habilitar o BlobCache no servidores WFE do SharePoint (vou colocar o processo mais abaixo), e fazer uma nova requisição ao site, o arquivo Azure.png agora contém as instruções de cache habilitadas (imagem abaixo) e então a versão é armazenada tanto no servidor WFE quanto no cache local do navegador.
Se olharmos no servidor WFE, foi criada uma cópia local do arquivo e as próximas requisições a esse arquivo não devem consultar novamente o conteúdo no banco de dados do SharePoint (imagem abaixo).
Esse é um recurso fundamental para qualquer implantação de Portais Internet no SharePoint, diminui a quantidade de I/O no banco de dados e com certeza vai deixar o seu site muito mais performático.
Habilitar o BlobCache no SharePoint
O BlobCache é habilitado diretamente nos servidores WFE da Farm, não é possível habilitar o mesmo através da CA do SharePoint, para habilitar o recurso, siga os passos abaixo:
- Acesse a pasta do site, você pode acessar a pasta através do IIS Manager, clique no site do SharePoint e em seguida em Explore;
- Abra o arquivo web.config e procure pela tag <BlobCache …. />;
- Na tag, altere o atributo enabled para true;
- Ainda nesse tag, você pode configurar a pasta onde serão armazenadas as cópias dos arquivos, o tempo de cache e as extensões. No final a sua tag deve ser parecida com a abaixo. Salve e feche o arquivo para confirmar.
<BlobCache location="C:\BlobCache" path="\.(gif|jpg|png|css|js)$" max-age="86400" enabled="false"/>
Limpeza do BlobCache no servidores WFE
Para limpar o conteúdo do BlobCache dos servidores do WFE, entre nas configurações do site do SharePoint e acesse o link Site Collection Object Cache, nessa tela, selecione a opção Force this server to reset its disk based cache e clique em OK. Nesse momento será criada uma instrução em cada servidor de WFE para que os arquivos sejam removidos do cache.
Após o processamento, se você olhar a pasta do cache do servidor o arquivo foi removido da pasta (imagem abaixo).