Disponibilidade da internet 5min de Leitura - 23 de novembro de 2015

Proxy cache: Aceleração de conteúdo com técnicas de caching

Teclado de notebook

This post is also available in: Português English Español

A quantidade de conteúdo disponibilizado através da internet ao longo do tempo tem se tornado um grande desafio para empresas voltadas para telecomunicações e provedores de serviços internet. Da mesma maneira, em escalas menores, tem afetado empresas de diversos portes e segmentos no que diz respeito ao consumo de banda.

O número de usuários da internet cresce muito rápido, segundo informações da Internet Society, ultrapassamos 3 bilhões de usuários. Em 2012 aproximadamente 50% do tráfego da internet era de vídeos, e atualmente, mais de 50% dos celulares são smartphones, que consomem cada vez mais conteúdo da internet.

Há uma quantidade imensa de conteúdo, amplamente disponível para ser acessado pelos mais variados dispositivos. Isso trouxe um desafio grande para a segurança da informação em termos de privacidade e integridade, mas também um incrível obstáculo na questão de disponibilidade.

Como a velocidade de acesso à internet das empresas é limitada, dependendo do número de usuários, é comum se ter períodos de maior acesso e consequente percepção de atrasos (lentidão) no processamento de solicitações e respostas. Isso afeta diretamente a produtividade da empresa, especialmente em áreas administrativas, onde há intenso uso de computadores e internet.

Este artigo traz introdução acerca do conceito de proxy cache, utilizado para aceleração de conteúdos através da internet, permitindo que empresas tenham uma maior racionalização do uso de seus enlaces, e por consequência, produtividade.

Cache de conteúdo

Existem diversas técnicas de caching, e todas elas têm a finalidade comum de guardar uma determinada informação, por um período, para ser disponibilizada de forma mais rápida, quando solicitada.

O cache de conteúdo pode ser considerado um elemento fundamental em uma arquitetura de economia de banda e aceleração de conteúdo. E através da mesma estrutura, estas duas áreas são totalmente atendidas.

A economia de banda é gerada pelo caching uma vez que não se precisa ir até a internet para requisitar (download) novamente um objeto. E exatamente pelo mesmo motivo, há uma percepção de aceleração, pois ao invés do download ser realizado, a descarga é feita localmente.

Há vários tipos de cache que operam de maneira complementar em uma arquitetura individual (standalone) e também centralizada, oferecendo acesso mais rápido diante das requisições realizadas pelos usuários. Iremos explorar recursos de baixa complexidade e encerramos com aceleradores multipropósito.

Browser cache

Por mais simples que possa parecer, o recurso de caching presente nos navegadores atua como um mecanismo de aceleração, muito embora seja totalmente limitado e não possa ser compartilhado com demais usuários dentro de uma rede corporativa.

O recurso, presente nos navegadores em conjunto com proxies cache atuam de maneira complementar em uma arquitetura de cache, permitindo que objetos armazenados localmente não sejam sequer requisitados ao proxy.

No entanto, é importante não ter grandes expectativas de aceleração com a utilização do cache dos navegadores, uma vez que muitos armazenam os objetos em memória, sendo estes perdidos no momento em que o software é encerrado. Nos casos de uso de cache em disco, o espaço destinado para esta finalidade é bastante limitado, tendo em vista que não é o objetivo do aplicativo tal função.

Proxy cache

O cache integrado ao proxy oferece um mecanismo centralizado de armazenamento de conteúdo, que é compartilhado com os demais usuários de uma rede corporativa, e por conta disso, há um conjunto muito maior de dados que são armazenados, afetando positivamente a aceleração de conteúdo.

Quanto mais acessos comuns, maior o armazenamento em cache e menor o tempo de resposta para o usuário dentro da empresa. O armazenamento é um recurso limitado, no entanto, com políticas de substituição a estrutura do cache mantém os objetos mais acessado dentro do contexto e perfil de acesso da empresa.

Muitos proxies oferecem a função de cache, mas também podem ser utilizados como um firewall proxy, regulamentando o tráfego, permitindo ou bloqueando de acordo com as políticas estabelecidas na própria solução.

Em conjunto com um browser cache, essa estrutura oferece ganhos fantásticos de aceleração e economia de banda, independente do tipo de conteúdo comumente utilizado pela rede e seus usuários. Os conteúdos estáticos como imagens, documentos e outros, são mais fáceis de serem cacheados, enquanto que streaming e outros dinâmicos oferecem maior complexidade

Para conteúdos dinâmicos é comum existirem soluções especializadas em cachear vídeos no Youtube, Netflix, Vimeo e outros. Estes serviços oferecem particularidades no formato de distribuição dos conteúdos, o que dificulta a ação de um cache tradicional no que tange armazenamento das informações de maneira estruturada.

Tendo em vista que o tráfego pesado na web basicamente é streaming, um provedor de internet somente com cache estático não terá economias ou aceleração consideráveis. O mesmo serve para uma empresa, portanto é interessante avaliar a necessidade baseada no perfil de tráfego. Uma agência de marketing e publicidade, apesar de não ser um provedor de internet, certamente terá necessidade de uma estrutura de cache dinâmico.

Aceleradores multipropósito

Por outro lado, saindo especificamente da área web, existem aceleradores multipropósito que atuam diretamente no nível de rede. Estes dispositivos tem aplicações para médios e grandes negócios, ajudando na otimização de recursos WAN, especialmente quando há grandes demandas de interconexão de dados entre sites/datacenters diferentes.

Geralmente compostos por hardwares dedicados, este tipo de acelerador possui alto custo de aquisição e para o correto funcionamento, precisam ser adicionados em todas as pontas que fizerem parte da comunicação. Isso por que eles possuem estruturas proprietárias de compressão, e portanto, precisam estar em todos os locais para entregar o benefício da aceleração e economia de banda.

Além disso, muitos aceleradores também tem profundo conhecimento do comportamento de determinadas aplicações, oferecendo diferentes tipos de efetividade em termos de compressão. Por exemplo, um escritório de engenharia que trabalha com projetos em CAD e tem unidades geograficamente distribuídas, interligadas pela internet, pode ter um acelerador em cada unidade que oferecerá taxas de compressão de até 60% desse tipo de aplicação.

Outro ponto de bastante diferença é que esse tipo de acelerador não opera normalmente como um proxy, o que garante um alto grau de transparência e continuidade de ambientes diante da alteração de comportamentos de protocolos. No caso de proxies, se o protocolo suportado sofrer alguma alteração e não for devidamente atualizado, alguma aplicação ou software novo, pode simplesmente não funcionar.

Content Delivery Networks

Aproveitando o tema, o termo CDN (Content Delivery Networks) é um grande exemplo de estrutura de cache e aceleração que está cada vez mais presente como forma de aproximar o conteúdo dos usuários.

Basicamente a estrutura tem uma composição altamente distribuída, geralmente formada por grandes estruturas de cache, armazenados em diversos datacenters com proximidades geográficas estratégicas para oferecer conteúdo para usuários com mais velocidade e disponibilidade.

Esse modelo é bastante interessante para a empresa de produção de conteúdo também, pois consegue realizar um trabalho de offload de tráfego em sua estrutura, tornando o ambiente como um todo mais escalável e resiliente a ataques de negação de serviço.

Comece a pensar em como otimizar o uso da internet em sua empresa, utilizando técnicas e proxy cache, ou de algum outro método adequado a sua necessidade. Este artigo lhe ajudou a entender um pouco sobre o tema de aceleração de conteúdo para web? Sua empresa já dispõe de tecnologia para este propósito? Deixe seus comentários e vamos enriquecer este artigo.

This post is also available in: Português English Español