Trucos de Varnish

Bueno ya hemos hablado mucho de Varnish, pero es que este acelerador HTTP da para mucho. Hoy vamos a contar unos cuantos consejos a la hora de trabajar con Varnish.

Como contamos al principio, una de las primeras tareas antes ni tan siquiera de instalar Varnish es distinguir a los usuarios de nuestra web para saber si la mayoría de las visitas son «stateless» (sin estado) o «stateful». Solo sacaremos de verdad partido a Varnish si el grueso de las peticiones son «stateless».

8140086323_ebbbff950e_z.jpg
304/366 Nail Varnish

Continúa leyendo «Trucos de Varnish»

Anuncio publicitario

Comandos para manejar Varnish

Seguimos con nuestra serie de Varnish. Ya conocemos bastante sobre este acelerador web, somos capaces de instalarlo, conocemos más o menos como funciona y ahora es hora de sacarle partido a los comandos de Varnish.

Varnish Cache es bastante flexible, ya que ofrece la posibilidad de configurar todas las etapas del proceso de la petición http con un lenguaje parecido a C. Del mismo modo y gracias a las herramientas proporcionadas por la propia herramienta , podemos monitorizar, medir el rendimiento y sobre todo controlar la tasa de aciertos (hit rate) de la memoria cache.

16636213747_326548d6a8_z
shellac surgeon (Todd F Niemand)

Continúa leyendo «Comandos para manejar Varnish»

Sacando partido a Varnish Cache

Ya hemos hablado de como instalar Varnish para ganar performance en nuestra aplicación web. Utilizar Varnish elimina la necesidad de que una aplicación web regenera la misma página una y otra vez, así ganamos una muchísima velocidad ya que servimos las peticiones web al instante.

Aun así, no es oro todo lo que reluce y el hecho de utilizar Varnish conlleva algunos retos que vamos a discutir: es necesario tener en cuenta qué páginas de nuestro sitio son stateless(sin estado), como son las URL a cachear, tiempo de vida de los objetos en caché, invalidación de la caché… así que antes de adentrarnos en los detalles de la configuración de Varnish vamos a exponer estos temas y a explicar un poco como podemos resolverlos.

Retos

Continúa leyendo «Sacando partido a Varnish Cache»

Entendiendo Varnish Cache

Tienes un proyecto, empieza a funcionar, a ganar visitas, mola ¿verdad? pero casi al mismo tiempo el rendimiento empieza a flojear. Las páginas cargan cada vez más despacio ¿Qué hacemos?

Que no cunda el pánico, hay muchas tareas que podemos hacer para mejorar el performance: optimizar partes del código backend, optimizar las llamadas a los assets, minimizar los assets, optimizar queries a la base de datos, cachear las queries con memcached o similar, incluso poner un acelerador HTTP que cachee las peticiones. De eso vamos a hablar hoy, de Varnish.

25791162001_e8cc65245f_z

Varnish es un software que permite contrarrestar la perdida de velocidad de una aplicación web. Para ello Vanish Cache trabaja como proxy inverso, situándose delante del servidor HTTP, cacheando la respuesta de dicho servidor web en memoria. La próxima vez que un usuario visite la misma URL, será Varnish quien la sirva, con ello conseguimos una gran aceleración de las respuestas de nuestra aplicación web.

Continúa leyendo «Entendiendo Varnish Cache»

testeando dependencias difíciles – Sin Mock

Hace unos días estuve «intentado» mejorar una librería para poder enviar comandos a Varnish y me encontré con unos cuantos problemillas para poder testar la librerías y así llegar a refactorizarla.

Varnish Cache

Según la wikipedia Varnish Cache es un acelerador de aplicaciones web, también conocido como caché de proxy HTTP inversa. Se instala delante de cualquier servidor HTTP y se configura para almacenar en el caché del servidor una copia del recurso solicitado. Esta ideado para aumentar el rendimiento de aplicaciones web con contenidos pesados y APIs altamente consumidas.

Básicamente lo que hace Varnish es ante una petición HTTP guardar la respuesta a esa petición y cada vez que un cliente realice la misma petición devolver el contenido guardado. Esto hace que nuestras aplicaciones multipliquen su velocidad por muchísimo, pero a la vez acarrea algunos problemas para invalidar la caché.

Motivación / el marrón

Un ejemplo básico sería un blog, si utilizamos Varnish para cachear los post ganaremos mucha en performance,pero que pasa si editamos un post ya publicado, para corregir una errata, para actualizarlo o lo que sea . Sería necesario descachear, pero no descachearlo todo, sino solo dicho post.

Una opción sencilla sería cada vez que editamos un post ejecutar el comando

Continúa leyendo «testeando dependencias difíciles – Sin Mock»