Soluções de Web Caching e Web Acceleration - Domingos Parra Novo
1. 1º Seminário de Software Livre Tchelinux
Software Livre: leve adiante esta idéia
Soluções de Web Caching
e Web Acceleration
Domingos Parra Novo
domingosnovo@terra.com.br
2. Tópicos
• Introdução • Caches transparentes
– O que são web caches? – Objetivos
– Objetivos de uso – Prós e contras
– Tipos de web caches – Exemplos
• Proxy servers • Web accelerators
– Funcionamento básico – Objetivos
– Exemplo de uso – Exemplo de uso
• Hierarquias de cache • Referências
– Como funcionam? • Perguntas?
– Caches “irmãos”
– Caches “pais”
3. Introdução: O que são web caches?
“Um web cache é um serviço encontrado entre um servidor
web, e um ou mais clientes HTTP. Esse serviço tem por
responsabilidade analisar (e na maioria das vezes, fazer uma
cópia) das requisições HTTP (páginas HTML, imagens e
outros arquivos inclusos).”
“Sempre que houver uma outra requisição para a mesma URL,
a cópia dos objetos da requisição original pode ser reutilizada,
ao invés destes serem solicitados ao servidor web
novamente.”
4. Introdução: Objetivos de uso
Há basicamente dois tipos de uso para um web cache:
redução de latência: Quando uma requisição é atendida por
um cache (que está mais próximo ao cliente) ao invés do
servidor HTTP de origem, esta costuma levar menos tempo
para ser atendida. Isto faz com que a “web” tenha uma maior
sensação de velocidade.
redução de tráfego de rede: ao se reutilizar os objetos de
uma requisição HTTP, isto reduz a utilização de banda pelo
cliente, fazendo com que os custos com uso de banda sejam
menores.
5. Introdução: Tipos de web caches
Browser caches: É o cache feito localmente (em disco local),
pelo proprio browser. Tem o objetivo de melhorar a sensação
de velocidade do browser.
Proxy caches: Utilizam o mesmo principio do browser cache,
porém, em uma escala muito maior. Utilizam servidores
externos para armazenar os objetos em cache.
Surrogate caches (ou caches reversos): São caches
configurados junto aos servidores web, com objetivo de deixar
os sites com uma melhor performance, mais escaláveis e
confiáveis.
6. Proxy Servers - Funcionamento
Um ou mais clientes fazem requisições HTTP a partir de uma
mesma rede. Sem o uso de uma estrutura de cache,
requisições de clientes distintos para um mesmo servidor web
são duplicadas. A implementação de um proxy server tem por
objetivo consolidar um cache de requisições HTTP entre
clientes distintos.
Uso clássico: Configura-se um servidor qualquer, com o
software “squid” configurado como um proxy server. Todos
clientes que tiverem seus web browsers (IE, firefox, outros)
configurados para acessar esse proxy, compartilharão o cache
“consolidado” no squid.
8. Hierarquias de cache – Como
funcionam?
O funcionamento de um proxy cache é relativamente simples.
Recebe requisições de um cliente HTTP, que verifica se já
possui o objeto solicitado em seu cache local. O uso de
hierarquias permite que essa funcionalidade seja expandida
para vários servidores ao mesmo tempo.
Basicamente falando, o uso de hierarquias permite que o
cache de um proxy server seja utilizado por outros servidores.
Essa comunicação entre servidores costuma utilizar o
protocolo ICP (Internet Cache Protocol). Também pode ser
utilizado o protocolo HTCP (Hyper Text Caching Protocol).
11. Caches transparentes - Objetivos
Tem por objetivo básico servir como um proxy que atue de
forma “transparente” para o usuário. Essa transparência
engloba dois itens: não há a necessidade de configurar o
browser do usuário para utilizar o cache; o browser do usuário
não toma conhecimento da existência do cache.
É implementado obrigatóriamente no “caminho” que a
requisição HTTP percorre (em um roteador ou firewall).
Pode ser um linux ou freebsd (usando iptables, tproxy e
outros), ou utilizar o protocolo wccp (Web Cache
Communication Protocol) em roteadores ou firewalls que
suportem esse protocolo.
12. Caches transparentes – Prós e
contras
– Vantagens:
• Administração simplificada (não há a necessidade de se
configurar o browser do usuário)
Controle centralizado (o administrador define se o usuário
pode ou não utilizar o cache)
– Desvantagens:
• Falta de robustez (conexões persistentes podem ser
“perdidas”, quando uma rota internet é modificada)
• Falta de controle do usuário (forçado a usar um cache)
• Dependência dos browsers (precisam implementar o
protocolo HTTP corretamente)
14. Web Accelerators - Objetivos
Web Accelerators (também chamado de reverse proxies, ou
surrogate proxies), apesar de funcionarem de forma
semelhante a caches normais, possuem uma característica
específica: trabalham no lado oposto da requisição HTTP.
Essa configuração de caches tem por objetivos:
• reduzir a carga nos servidores WWW, fazendo cache de
requisições “pesadas” (e cacheáveis)
• aumentar a escalabilidade dos servidores WWW (sem
aumentar a complexidade do serviço)
• Distribuir o conteúdo de forma global, em caches locais
(CDN, content delivery networks)