SlideShare a Scribd company logo
1 of 20
VARNISH
 Funcionamiento, configuración y uso




http://creativecommons.org/licenses/by-sa/3.0/es/
Pedro González Serrano   Fundador de SceneBeta.com
@NITEMAN_es              6 años con Drupal
http://niteman.es        Administrador de sistemas
                         Asesor de rendimiento
¿Vosotros?

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

     ¿algún sistema similar?
http://www.varnish-cache.org




         Reverse proxy cache
                   vs.
         Acelerador web
                         Imagen: [1]
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”
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
Virtudes

Open source: FreeBSD license



Capacidad de servicio superior a 100k req./s



Tremendamente configurable / adaptable




                                               Imagen: [2]
¿Defectos?

Añade una capa/servicio más



Es fácil cometer errores de configuración



No está diseñado para contenido dinámico




                                            Imagen: [3]
Flujo de proceso




*[b]                      Imagen: [4]
Anatomía de un VCL (I):
Backends, probes & directors




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




                           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




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




                                       Imagen: [5]
¿Preguntas?



     Hasta luego, y gracias por el pescado
                                             © [7]
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/



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

More Related Content

Similar to Varnish: funcionamiento, configuración y uso

Consejos de seguridad con Alfresco
Consejos de seguridad con AlfrescoConsejos de seguridad con Alfresco
Consejos de seguridad con AlfrescoToni de la Fuente
 
J2EE - 01 Arquitectura Web
J2EE - 01   Arquitectura WebJ2EE - 01   Arquitectura Web
J2EE - 01 Arquitectura WebNetwork Sens
 
Plataforma de programación Java
Plataforma de programación JavaPlataforma de programación Java
Plataforma de programación JavaAntonio Contreras
 
Dynamics saturday madrid 2018 bc-on-docker - jakub
Dynamics saturday madrid 2018   bc-on-docker - jakubDynamics saturday madrid 2018   bc-on-docker - jakub
Dynamics saturday madrid 2018 bc-on-docker - jakubDemian Raschkovan
 
Trabajo De Oracle
Trabajo De OracleTrabajo De Oracle
Trabajo De Oraclefpiedra
 
Reporte servicios web
Reporte servicios webReporte servicios web
Reporte servicios webFacebook
 
Infraestructura para máquinas virtuales
Infraestructura para máquinas virtualesInfraestructura para máquinas virtuales
Infraestructura para máquinas virtualesOmega Peripherals
 
webutil
webutilwebutil
webutilisrael
 
webutil oracle forms
webutil oracle formswebutil oracle forms
webutil oracle formsisrael
 
Creación de entornos de desarrollo con Vagrant
Creación de entornos de desarrollo con VagrantCreación de entornos de desarrollo con Vagrant
Creación de entornos de desarrollo con VagrantCarlos Gimeno Yáñez
 
Marcos quesada caching_sf2
Marcos quesada caching_sf2Marcos quesada caching_sf2
Marcos quesada caching_sf2symfony_bcn
 
Modulo Jee Practica Pos Fp Une
Modulo Jee Practica  Pos Fp UneModulo Jee Practica  Pos Fp Une
Modulo Jee Practica Pos Fp UneMarcos Jara
 
Guia de estudio para Oracle Certified Java EE 6 Web Component Developer
Guia de estudio para Oracle Certified Java EE 6 Web Component DeveloperGuia de estudio para Oracle Certified Java EE 6 Web Component Developer
Guia de estudio para Oracle Certified Java EE 6 Web Component DeveloperOscar V
 
Aceleradores Php Final - Programador PHP
Aceleradores Php Final - Programador PHPAceleradores Php Final - Programador PHP
Aceleradores Php Final - Programador PHPJuan Belón Pérez
 
Aceleradores PHP Final - Programador PHP
Aceleradores PHP Final - Programador PHPAceleradores PHP Final - Programador PHP
Aceleradores PHP Final - Programador PHPJuan Belón Pérez
 
Aceleradores Php Final - Programador PHP
Aceleradores Php Final - Programador PHPAceleradores Php Final - Programador PHP
Aceleradores Php Final - Programador PHPJuan Belón Pérez
 

Similar to Varnish: funcionamiento, configuración y uso (20)

Consejos de seguridad con Alfresco
Consejos de seguridad con AlfrescoConsejos de seguridad con Alfresco
Consejos de seguridad con Alfresco
 
J2EE - 01 Arquitectura Web
J2EE - 01   Arquitectura WebJ2EE - 01   Arquitectura Web
J2EE - 01 Arquitectura Web
 
Cloud y BigData
Cloud y BigDataCloud y BigData
Cloud y BigData
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 
Plataforma de programación Java
Plataforma de programación JavaPlataforma de programación Java
Plataforma de programación Java
 
Dynamics saturday madrid 2018 bc-on-docker - jakub
Dynamics saturday madrid 2018   bc-on-docker - jakubDynamics saturday madrid 2018   bc-on-docker - jakub
Dynamics saturday madrid 2018 bc-on-docker - jakub
 
Atix26
Atix26Atix26
Atix26
 
Desarrollo web
Desarrollo webDesarrollo web
Desarrollo web
 
Trabajo De Oracle
Trabajo De OracleTrabajo De Oracle
Trabajo De Oracle
 
Reporte servicios web
Reporte servicios webReporte servicios web
Reporte servicios web
 
Infraestructura para máquinas virtuales
Infraestructura para máquinas virtualesInfraestructura para máquinas virtuales
Infraestructura para máquinas virtuales
 
webutil
webutilwebutil
webutil
 
webutil oracle forms
webutil oracle formswebutil oracle forms
webutil oracle forms
 
Creación de entornos de desarrollo con Vagrant
Creación de entornos de desarrollo con VagrantCreación de entornos de desarrollo con Vagrant
Creación de entornos de desarrollo con Vagrant
 
Marcos quesada caching_sf2
Marcos quesada caching_sf2Marcos quesada caching_sf2
Marcos quesada caching_sf2
 
Modulo Jee Practica Pos Fp Une
Modulo Jee Practica  Pos Fp UneModulo Jee Practica  Pos Fp Une
Modulo Jee Practica Pos Fp Une
 
Guia de estudio para Oracle Certified Java EE 6 Web Component Developer
Guia de estudio para Oracle Certified Java EE 6 Web Component DeveloperGuia de estudio para Oracle Certified Java EE 6 Web Component Developer
Guia de estudio para Oracle Certified Java EE 6 Web Component Developer
 
Aceleradores Php Final - Programador PHP
Aceleradores Php Final - Programador PHPAceleradores Php Final - Programador PHP
Aceleradores Php Final - Programador PHP
 
Aceleradores PHP Final - Programador PHP
Aceleradores PHP Final - Programador PHPAceleradores PHP Final - Programador PHP
Aceleradores PHP Final - Programador PHP
 
Aceleradores Php Final - Programador PHP
Aceleradores Php Final - Programador PHPAceleradores Php Final - Programador PHP
Aceleradores Php Final - Programador PHP
 

More from Pedro González Serrano (7)

Think! (out of the box)
Think! (out of the box)Think! (out of the box)
Think! (out of the box)
 
Lifeguard at Dead Sea
Lifeguard at Dead SeaLifeguard at Dead Sea
Lifeguard at Dead Sea
 
Talk is cheap
Talk is cheapTalk is cheap
Talk is cheap
 
When Dev met Ops
When Dev met OpsWhen Dev met Ops
When Dev met Ops
 
Rendimiento: Persiguiendo al conejo blanco
Rendimiento: Persiguiendo al conejo blancoRendimiento: Persiguiendo al conejo blanco
Rendimiento: Persiguiendo al conejo blanco
 
Hasta producción y más allá
Hasta producción y más alláHasta producción y más allá
Hasta producción y más allá
 
Rendimiento Drupal
Rendimiento DrupalRendimiento Drupal
Rendimiento Drupal
 

Recently uploaded

How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosJhonJairoRodriguezCe
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 

Recently uploaded (11)

How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 

Varnish: funcionamiento, configuración y uso

  • 1. VARNISH Funcionamiento, configuración y uso http://creativecommons.org/licenses/by-sa/3.0/es/
  • 2. Pedro González Serrano Fundador de SceneBeta.com @NITEMAN_es 6 años con Drupal http://niteman.es Administrador de sistemas Asesor de rendimiento
  • 3. ¿Vosotros? ¿Cuántos conocéis / usáis Varnish?, ¿algún sistema similar?
  • 4. http://www.varnish-cache.org Reverse proxy cache vs. Acelerador web Imagen: [1]
  • 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]
  • 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”
  • 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
  • 8. Virtudes Open source: FreeBSD license Capacidad de servicio superior a 100k req./s Tremendamente configurable / adaptable Imagen: [2]
  • 9. ¿Defectos? Añade una capa/servicio más Es fácil cometer errores de configuración No está diseñado para contenido dinámico Imagen: [3]
  • 10. Flujo de proceso *[b] Imagen: [4]
  • 11. Anatomía de un VCL (I): Backends, probes & directors Imagen: [5]
  • 12. Anatomía de un VCL (II): ACLs y SUBs Imagen: [5]
  • 13. Anatomía de un VCL (III): vlc_recv (I) Imagen: [5]
  • 14. Anatomía de un VCL (IV): vlc_recv (II) Imagen: [5]
  • 15. Anatomía de un VCL (V): vlc_recv (III) Imagen: [5]
  • 16. Anatomía de un VCL (VI): vlc_hash y vlc_fetch Imagen: [5]
  • 17. Anatomía de un VCL (VII): vlc_deliver, vlc_hit, vcl_miss y vlc_pipe Imagen: [5]
  • 18. Anatomía de un VCL (VIII): vlc_error Imagen: [5]
  • 19. ¿Preguntas? Hasta luego, y gracias por el pescado © [7]
  • 20. 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/ 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