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
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
Perguntas? Contato: Domingos Parra Novo Terra Networks Brasil domingosnovo@terra.com.br