$30 off During Our Annual Pro Sale. View Details »

Varnish: funcionamiento, configuración y uso

Varnish: funcionamiento, configuración y uso

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

Pedro González Serrano

October 22, 2011
Tweet

More Decks by Pedro González Serrano

Other Decks in Technology

Transcript

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

    View Slide

  2. Fundador de SceneBeta.com
    6 años con Drupal
    Administrador de sistemas
    Asesor de rendimiento
    Pedro González Serrano
    @NITEMAN_es
    http://niteman.es

    View Slide

  3. ¿Vosotros?
    ¿Cuántos conocéis / usáis Varnish?,
    ¿algún sistema similar?

    View Slide

  4. Imagen: [1]
    http://www.varnish-cache.org
    Reverse proxy cache
    vs.
    Acelerador web

    View Slide

  5. 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]

    View Slide

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

    View Slide

  7. Herramientas
    varnishtop:
    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

    View Slide

  8. Virtudes
    Imagen: [2]
    Open source: FreeBSD license
    Capacidad de servicio superior a 100k req./s
    Tremendamente configurable / adaptable

    View Slide

  9. ¿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

    View Slide

  10. Imagen: [4]
    Flujo de proceso
    *[b]

    View Slide

  11. Anatomía de un VCL (I):
    Backends, probes & directors
    Imagen: [5]

    View Slide

  12. Anatomía de un VCL (II):
    ACLs y SUBs
    Imagen: [5]

    View Slide

  13. Imagen: [5]
    Anatomía de un VCL (III): vlc_recv (I)

    View Slide

  14. Imagen: [5]
    Anatomía de un VCL (IV): vlc_recv (II)

    View Slide

  15. Imagen: [5]
    Anatomía de un VCL (V): vlc_recv (III)

    View Slide

  16. Imagen: [5]
    Anatomía de un VCL (VI):
    vlc_hash y vlc_fetch

    View Slide

  17. Imagen: [5]
    Anatomía de un VCL (VII):
    vlc_deliver, vlc_hit, vcl_miss y vlc_pipe

    View Slide

  18. Anatomía de un VCL (VIII): vlc_error
    Imagen: [5]

    View Slide

  19. ¿Preguntas?
    Hasta luego, y gracias por el pescado
    © [7]

    View Slide

  20. 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/VCLExampleDefault
    https://www.varnish-cache.org/docs/3.0/
    http://www.slideshare.net/schoefmax/caching-with-varnish-1642989
    http://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/

    View Slide