Varnish cache en ocho pasos

Preview:

Citation preview

Caché con Varnish. Paso a paso.

Caché con Varnish Paso a paso

Roberto Moreda <moreda@allenta.com>

Francisco Velázquez <francisco@varnish-software.com>

Caché con Varnish. Paso a paso.

Sobre Varnish Cache Plus

Acelerador de aplicaciones web

Rápido

Flexible

Caché con Varnish. Paso a paso.

Caché con Varnish. Paso a paso.

Objetivo

Entender qué hacer para acelerar una aplicación web

Caché con Varnish. Paso a paso.

Caché con Varnish. Paso a paso.

Diseñando para Varnish

Entiende y clasifica el contenido en tu backend

Define cabeceras HTTP en tu aplicación

Define estrategias de invalidación

Caché con Varnish. Paso a paso.

Implementación incremental

Desplegar Varnish en aplicaciones existentes

Incrementar gradualmente el uso de la caché

Primero “objetivos sencillos“

Caché con Varnish. Paso a paso.

VCL

Varnish Configuration Language

Aplica a las peticiones (HTTP requests)

Inserta lógica de propósito específico

Caché con Varnish. Paso a paso.

Receive

Miss

Fetch

Deliver

ERROR

Request Hit

Response

Caché con Varnish. Paso a paso.

P1: Sólo pass through (1/2)

Nivel de dificultad: Trivial

Nivel de mejora: Medio

Caché con Varnish. Paso a paso.

P1: Sólo pass through (2/2)

Varnish pasivo

Balanceo de carga muy potente

Checks de salud incluidos

Excelente para depurar aplicaciones web

Caché con Varnish. Paso a paso.

Caché con Varnish. Paso a paso.

P2: Recursos estáticos (1/2)

Nivel de dificultad: Trivial

Nivel de mejora: Medio

Caché con Varnish. Paso a paso.

P2: Recursos estáticos (2/2)

Contenido multimedia, CSS, javascript

Menor concurrencia hacia el backend

Menor uso de ancho de banda

Menor consumo de CPU en el backend

Caché con Varnish. Paso a paso.

P3: Compresión (1/2)

Nivel de dificultad: Trivial

Nivel de mejora: Medio

Caché con Varnish. Paso a paso.

Caché con Varnish. Paso a paso.

P3: Compresión (2/2)

Compresión gzip de CSS/Javascript:

JQuery standard: 263 kb

JQuery gzipped: 32 kb

Varnish puede comprimir y descomprimir objetos

Reutilización de compresión

Caché con Varnish. Paso a paso.

P4: Contenido semi-estático (1/3)

Nivel de dificultad: Medio

Nivel de mejora: Alto

Caché con Varnish. Paso a paso.

P4: Contenido semi-estático (2/3)

Contenido generado dinámicamente

Difícil de generar y cambia poco

Usa un TTL corto (10-120 segundos)

Mitiga picos de tráfico

Caché con Varnish. Paso a paso.

P4: Contenido semi-estático (3/3)

Invalidación de caché manual

Interfaz web o API para emitir bans (VAC)

Caché con Varnish. Paso a paso.

P5: Grace mode (1/2)

Nivel de dificultad: Medio

Nivel de mejora: Alto

Caché con Varnish. Paso a paso.

Caché con Varnish. Paso a paso.

P5: Grace mode (2/2)

Desarrollado originalmente para mitigar acumulación de solicitudes de cliente

Puede servir contenido “antiguo” mientras no lo tenemos “fresco”

No tener contenido “fresco” significa normalmente que el backend está caído

Caché con Varnish. Paso a paso.

P6: Auto-purgado (1/2)

Nivel de dificultad: Medio

Nivel de mejora: Alto

Caché con Varnish. Paso a paso.

P6: Auto-purgado (2/2)

Backend responsable de invalidaciones explícitas

Uso de TTLs muy altos para asegurar hits de caché

Invalidación disparada por cambios en el backend

Caché con Varnish. Paso a paso.

P7: Composición de contenido (1/3)

Nivel de dificultad: Alto

Nivel de mejora: Alto

Caché con Varnish. Paso a paso.

Caché con Varnish. Paso a paso.

Caché con Varnish. Paso a paso.

P7: Composición de contenido (2/3)

Edge Side Includes (ESI)

Fragmentar páginas web en partes: una parte = una URL

Composición de contenido en tiempo real

Funciona también con contenido comprimido

Caché con Varnish. Paso a paso.

P7: Composición de contenido (3/3)

<html><body>

… <esi:include src=“/frontpage/breaking” />

… <esi:include src=“/frontpage/latest” />

<!-- ¿Queremos que la caché manipule el contenido? -->

</body></html>

Caché con Varnish. Paso a paso.

P8: Invalidación de caché avanzada (1/3)

Nivel de dificultad: Medio

Nivel de mejora: Alto

Caché con Varnish. Paso a paso.

P8: Invalidación de caché avanzada (2/3)

A veces una página depende de múltiples objetos para su invalidación

Encontrar qué páginas deben ser invalidadas puede ser difícil

Caché con Varnish. Paso a paso.

Caché con Varnish. Paso a paso.

P8: Invalidación de caché avanzada (3/3)

Etiqueta páginas con cabecera específica:

X-Skus: 49834, 34321, 4343

Uso de hashtwo/xkeys

Se puede iniciar automáticamente desde el backend

Caché con Varnish. Paso a paso.

Margen de ganancia alto

3 - 15 días para alcanzar “alto” nivel de resultados

Requiere conocimiento del backend

Hemos hablado sobre qué hay que hacer - si quieres conocer el cómo, por favor lee el libro o apúntate a formación.

Conclusiones

Caché con Varnish. Paso a paso.

Muchas gracias¿Alguna pregunta?

Roberto Moreda <moreda@allenta.com>

Francisco Velázquez <francisco@varnish-software.com>

Recommended