Varnish: funcionamiento, configuración y uso

20
Funcionamiento, configuración y uso VARNISH http://creativecommons.org/licenses/by-sa/3.0/es /

description

Diapositivas de mi charla para Madrid-DevOps, realizada en las oficinas de Tuenti el 20 de Octubre de 2011

Transcript of Varnish: funcionamiento, configuración y uso

Funcionamiento, configuración y uso

VARNISH

http://creativecommons.org/licenses/by-sa/3.0/es/

Fundador de SceneBeta.com6 años con DrupalAdministrador de sistemasAsesor de rendimiento

Pedro González Serrano@NITEMAN_eshttp://niteman.es

¿Vosotros?

¿Cuántos conocéis / usáis Varnish?,

¿algún sistema similar?

Imagen: [1]

http://www.varnish-cache.org

Reverse proxy cachevs.

Acelerador web

Funcionalidades

Proxy inverso

Caché (purgable)

Balanceador de carga

Control de acceso por origen (ACL)

Permite ejecutar código en C arbitrario

Edge Side Includes (ESI) *[a]

Arquitectura

Caché monolítica mapeada a memoria virtual (VM)

Archivos de configuración son compilados en C

Trata todo el ciclo de vida de una petición

Cambios de configuración en caliente

Logs escritos en memoria compartida

Estrategia “Zero configuration”

Herramientasvarnishtop:

Lista ocurrencias de log más comunes (~apachetop)

varnishstat:

Estadísticas en tiempo real

varnishhist:

Hits y misses en tiempo real

varnishlog / varnishncsa:

Generan logs tradicionales

varnishreplay:

Parsea logs y reproduce el tráfico

Virtudes

Imagen: [2]

Open source: FreeBSD license

Capacidad de servicio superior a 100k req./s

Tremendamente configurable / adaptable

¿Defectos?

Imagen: [3]

Añade una capa/servicio más

Es fácil cometer errores de configuración

No está diseñado para contenido dinámico

Imagen: [4]

Flujo de proceso

*[b]

Anatomía de un VCL (I):Backends, probes & directors

Imagen: [5]

Anatomía de un VCL (II):ACLs y SUBs

Imagen: [5]

Imagen: [5]

Anatomía de un VCL (III): vlc_recv (I)

Imagen: [5]

Anatomía de un VCL (IV): vlc_recv (II)

Imagen: [5]

Anatomía de un VCL (V): vlc_recv (III)

Imagen: [5]

Anatomía de un VCL (VI):vlc_hash y vlc_fetch

Imagen: [5]

Anatomía de un VCL (VII):vlc_deliver, vlc_hit, vcl_miss y vlc_pipe

Anatomía de un VCL (VIII): vlc_error

Imagen: [5]

¿Preguntas?

Hasta luego, y gracias por el pescado© [7]

Créditos:[1] http://www.flickr.com/photos/jdlasica/30723509/[2] http://www.flickr.com/photos/avlxyz/4647044868/[3] http://www.flickr.com/photos/samhames/4681606063/[4] http://www.flickr.com/photos/editor/2065638637/[5] http://www.flickr.com/photos/matt_gibson/442554060/[6] http://www.flickr.com/photos/ephotography29/311474806/[7] © 2010 Antonio Vicente + Begoña Carpintero + Pedro González

Recursos:https://www.varnish-cache.org/trac/wiki/VCLExampleDefaulthttps://www.varnish-cache.org/docs/3.0/http://www.slideshare.net/schoefmax/caching-with-varnish-1642989http://www.slideshare.net/tgr1/varnish-plnog-4

Referencias:[a] http://en.wikipedia.org/wiki/Edge_Side_Includes[b] http://devblog.seomoz.org/2011/05/how-to-cache-http-range-requests/