35
Caché con Varnish. Paso a paso. Caché con Varnish Paso a paso Roberto Moreda <[email protected]> Francisco Velázquez <[email protected]>

Varnish cache en ocho pasos

Embed Size (px)

Citation preview

Page 1: Varnish cache en ocho pasos

Caché con Varnish. Paso a paso.

Caché con Varnish Paso a paso

Roberto Moreda <[email protected]>

Francisco Velázquez <[email protected]>

Page 2: Varnish cache en ocho pasos

Caché con Varnish. Paso a paso.

Sobre Varnish Cache Plus

Acelerador de aplicaciones web

Rápido

Flexible

Page 3: Varnish cache en ocho pasos

Caché con Varnish. Paso a paso.

Page 4: Varnish cache en ocho pasos

Caché con Varnish. Paso a paso.

Objetivo

Entender qué hacer para acelerar una aplicación web

Page 5: Varnish cache en ocho pasos

Caché con Varnish. Paso a paso.

Page 6: Varnish cache en ocho pasos

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

Page 7: Varnish cache en ocho pasos

Caché con Varnish. Paso a paso.

Implementación incremental

Desplegar Varnish en aplicaciones existentes

Incrementar gradualmente el uso de la caché

Primero “objetivos sencillos“

Page 8: Varnish cache en ocho pasos

Caché con Varnish. Paso a paso.

VCL

Varnish Configuration Language

Aplica a las peticiones (HTTP requests)

Inserta lógica de propósito específico

Page 9: Varnish cache en ocho pasos

Caché con Varnish. Paso a paso.

Receive

Miss

Fetch

Deliver

ERROR

Request Hit

Response

Page 10: Varnish cache en ocho pasos

Caché con Varnish. Paso a paso.

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

Nivel de dificultad: Trivial

Nivel de mejora: Medio

Page 11: Varnish cache en ocho pasos

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

Page 12: Varnish cache en ocho pasos

Caché con Varnish. Paso a paso.

Page 13: Varnish cache en ocho pasos

Caché con Varnish. Paso a paso.

P2: Recursos estáticos (1/2)

Nivel de dificultad: Trivial

Nivel de mejora: Medio

Page 14: Varnish cache en ocho pasos

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

Page 15: Varnish cache en ocho pasos

Caché con Varnish. Paso a paso.

P3: Compresión (1/2)

Nivel de dificultad: Trivial

Nivel de mejora: Medio

Page 16: Varnish cache en ocho pasos

Caché con Varnish. Paso a paso.

Page 17: Varnish cache en ocho pasos

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

Page 18: Varnish cache en ocho pasos

Caché con Varnish. Paso a paso.

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

Nivel de dificultad: Medio

Nivel de mejora: Alto

Page 19: Varnish cache en ocho pasos

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

Page 20: Varnish cache en ocho pasos

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)

Page 21: Varnish cache en ocho pasos

Caché con Varnish. Paso a paso.

P5: Grace mode (1/2)

Nivel de dificultad: Medio

Nivel de mejora: Alto

Page 22: Varnish cache en ocho pasos

Caché con Varnish. Paso a paso.

Page 23: Varnish cache en ocho pasos

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

Page 24: Varnish cache en ocho pasos

Caché con Varnish. Paso a paso.

P6: Auto-purgado (1/2)

Nivel de dificultad: Medio

Nivel de mejora: Alto

Page 25: Varnish cache en ocho pasos

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

Page 26: Varnish cache en ocho pasos

Caché con Varnish. Paso a paso.

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

Nivel de dificultad: Alto

Nivel de mejora: Alto

Page 27: Varnish cache en ocho pasos

Caché con Varnish. Paso a paso.

Page 28: Varnish cache en ocho pasos

Caché con Varnish. Paso a paso.

Page 29: Varnish cache en ocho pasos

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

Page 30: Varnish cache en ocho pasos

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>

Page 31: Varnish cache en ocho pasos

Caché con Varnish. Paso a paso.

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

Nivel de dificultad: Medio

Nivel de mejora: Alto

Page 32: Varnish cache en ocho pasos

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.

Page 33: Varnish cache en ocho pasos

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

Page 34: Varnish cache en ocho pasos

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

Page 35: Varnish cache en ocho pasos

Caché con Varnish. Paso a paso.

Muchas gracias¿Alguna pregunta?

Roberto Moreda <[email protected]>

Francisco Velázquez <[email protected]>