soluções de web caching e web acceleration - domingos parra novo

17
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 [email protected]

Upload: tchelinux-slides

Post on 27-Jun-2015

1.332 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Soluções de Web Caching e Web Acceleration - Domingos Parra Novo

1º Seminário de Software Livre TchelinuxSoftware Livre: leve adiante esta idéia

Soluções de Web Cachinge Web Acceleration

Domingos Parra [email protected]

Page 2: Soluções de Web Caching e Web Acceleration - Domingos Parra Novo

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?

Page 3: Soluções de Web Caching e Web Acceleration - Domingos Parra Novo

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.”

Page 4: Soluções de Web Caching e Web Acceleration - Domingos Parra Novo

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.

Page 5: Soluções de Web Caching e Web Acceleration - Domingos Parra Novo

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.

Page 6: Soluções de Web Caching e Web Acceleration - Domingos Parra Novo

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.

Page 7: Soluções de Web Caching e Web Acceleration - Domingos Parra Novo

Proxy Servers – Exemplo de uso

Page 8: Soluções de Web Caching e Web Acceleration - Domingos Parra Novo

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).

Page 9: Soluções de Web Caching e Web Acceleration - Domingos Parra Novo

Hierarquias de cache - sibling

Page 10: Soluções de Web Caching e Web Acceleration - Domingos Parra Novo

Hierarquias de cache - parent

Page 11: Soluções de Web Caching e Web Acceleration - Domingos Parra Novo

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.

Page 12: Soluções de Web Caching e Web Acceleration - Domingos Parra Novo

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)

Page 13: Soluções de Web Caching e Web Acceleration - Domingos Parra Novo

Caches transparentes - Exemplos

Page 14: Soluções de Web Caching e Web Acceleration - Domingos Parra Novo

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)

Page 15: Soluções de Web Caching e Web Acceleration - Domingos Parra Novo

Web Accelerators – exemplo de uso

Page 16: Soluções de Web Caching e Web Acceleration - Domingos Parra Novo

Referências

http://www.squid-cache.org/

http://wiki.squid-cache.org/SquidFaq

http://www.visolve.com/squid/whitepapers/index.php

Page 17: Soluções de Web Caching e Web Acceleration - Domingos Parra Novo

Perguntas?

Contato:

Domingos Parra NovoTerra Networks Brasil

[email protected]