varnish cache en ocho pasos
TRANSCRIPT
![Page 1: Varnish cache en ocho pasos](https://reader030.vdocuments.net/reader030/viewer/2022021506/5878cf121a28ab917a8b499b/html5/thumbnails/1.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022021506/5878cf121a28ab917a8b499b/html5/thumbnails/2.jpg)
Caché con Varnish. Paso a paso.
Sobre Varnish Cache Plus
Acelerador de aplicaciones web
Rápido
Flexible
![Page 3: Varnish cache en ocho pasos](https://reader030.vdocuments.net/reader030/viewer/2022021506/5878cf121a28ab917a8b499b/html5/thumbnails/3.jpg)
Caché con Varnish. Paso a paso.
![Page 4: Varnish cache en ocho pasos](https://reader030.vdocuments.net/reader030/viewer/2022021506/5878cf121a28ab917a8b499b/html5/thumbnails/4.jpg)
Caché con Varnish. Paso a paso.
Objetivo
Entender qué hacer para acelerar una aplicación web
![Page 5: Varnish cache en ocho pasos](https://reader030.vdocuments.net/reader030/viewer/2022021506/5878cf121a28ab917a8b499b/html5/thumbnails/5.jpg)
Caché con Varnish. Paso a paso.
![Page 6: Varnish cache en ocho pasos](https://reader030.vdocuments.net/reader030/viewer/2022021506/5878cf121a28ab917a8b499b/html5/thumbnails/6.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022021506/5878cf121a28ab917a8b499b/html5/thumbnails/7.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022021506/5878cf121a28ab917a8b499b/html5/thumbnails/8.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022021506/5878cf121a28ab917a8b499b/html5/thumbnails/9.jpg)
Caché con Varnish. Paso a paso.
Receive
Miss
Fetch
Deliver
ERROR
Request Hit
Response
![Page 10: Varnish cache en ocho pasos](https://reader030.vdocuments.net/reader030/viewer/2022021506/5878cf121a28ab917a8b499b/html5/thumbnails/10.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022021506/5878cf121a28ab917a8b499b/html5/thumbnails/11.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022021506/5878cf121a28ab917a8b499b/html5/thumbnails/12.jpg)
Caché con Varnish. Paso a paso.
![Page 13: Varnish cache en ocho pasos](https://reader030.vdocuments.net/reader030/viewer/2022021506/5878cf121a28ab917a8b499b/html5/thumbnails/13.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022021506/5878cf121a28ab917a8b499b/html5/thumbnails/14.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022021506/5878cf121a28ab917a8b499b/html5/thumbnails/15.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022021506/5878cf121a28ab917a8b499b/html5/thumbnails/16.jpg)
Caché con Varnish. Paso a paso.
![Page 17: Varnish cache en ocho pasos](https://reader030.vdocuments.net/reader030/viewer/2022021506/5878cf121a28ab917a8b499b/html5/thumbnails/17.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022021506/5878cf121a28ab917a8b499b/html5/thumbnails/18.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022021506/5878cf121a28ab917a8b499b/html5/thumbnails/19.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022021506/5878cf121a28ab917a8b499b/html5/thumbnails/20.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022021506/5878cf121a28ab917a8b499b/html5/thumbnails/21.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022021506/5878cf121a28ab917a8b499b/html5/thumbnails/22.jpg)
Caché con Varnish. Paso a paso.
![Page 23: Varnish cache en ocho pasos](https://reader030.vdocuments.net/reader030/viewer/2022021506/5878cf121a28ab917a8b499b/html5/thumbnails/23.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022021506/5878cf121a28ab917a8b499b/html5/thumbnails/24.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022021506/5878cf121a28ab917a8b499b/html5/thumbnails/25.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022021506/5878cf121a28ab917a8b499b/html5/thumbnails/26.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022021506/5878cf121a28ab917a8b499b/html5/thumbnails/27.jpg)
Caché con Varnish. Paso a paso.
![Page 28: Varnish cache en ocho pasos](https://reader030.vdocuments.net/reader030/viewer/2022021506/5878cf121a28ab917a8b499b/html5/thumbnails/28.jpg)
Caché con Varnish. Paso a paso.
![Page 29: Varnish cache en ocho pasos](https://reader030.vdocuments.net/reader030/viewer/2022021506/5878cf121a28ab917a8b499b/html5/thumbnails/29.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022021506/5878cf121a28ab917a8b499b/html5/thumbnails/30.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022021506/5878cf121a28ab917a8b499b/html5/thumbnails/31.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022021506/5878cf121a28ab917a8b499b/html5/thumbnails/32.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022021506/5878cf121a28ab917a8b499b/html5/thumbnails/33.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022021506/5878cf121a28ab917a8b499b/html5/thumbnails/34.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022021506/5878cf121a28ab917a8b499b/html5/thumbnails/35.jpg)
Caché con Varnish. Paso a paso.
Muchas gracias¿Alguna pregunta?
Roberto Moreda <[email protected]>
Francisco Velázquez <[email protected]>