soluções de web caching e web acceleration - domingos parra novo
TRANSCRIPT
1º Seminário de Software Livre TchelinuxSoftware Livre: leve adiante esta idéia
Soluções de Web Cachinge Web Acceleration
Domingos Parra [email protected]
Tópicos
• Introdução– O que são web caches?– Objetivos de uso– Tipos de web caches
• Proxy servers– Funcionamento básico– Exemplo de uso
• Hierarquias de cache– Como funcionam?– Caches “irmãos”– Caches “pais”
• Caches transparentes– Objetivos– Prós e contras– Exemplos
• Web accelerators– Objetivos– Exemplo de uso
• Referências• Perguntas?
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.”
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.
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.
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.
Proxy Servers – Exemplo de uso
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).
Hierarquias de cache - sibling
Hierarquias de cache - parent
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.
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)
Caches transparentes - Exemplos
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)
Web Accelerators – exemplo de uso
Referências
http://www.squid-cache.org/
http://wiki.squid-cache.org/SquidFaq
http://www.visolve.com/squid/whitepapers/index.php