¿Qué es Varnish?

Varnish es un proxy inverso HTTP de caché independiente de la plataforma que acelera las plataformas web.

Vamos a desglosarlo:

Reverse 4

Plataforma agnóstica

Varnish se basa en software y se ejecuta en hardware estándar, máquinas virtuales, contenedores, en la nube y en las instalaciones.

Reverse 3

Almacenamiento en caché

Varnish acelera la entrega HTTP almacenando contenidos en caché y sirviéndolos a múltiples clientes.

Reverse 2

HTTP

Varnish procesa peticiones y respuestas HTTP, por lo que puede acelerar la entrega de cualquier contenido que utilice el protocolo HTTP.

Reverse

Proxy inverso

Varnish se sitúa entre y actúa como proxy entre los clientes y los servidores HTTP (el origen o backend.)

Cómo funciona Varnish

Varnish aprovecha los mecanismos de caché HTTP para almacenar y servir rápidamente versiones en caché de páginas web, segmentos de vídeo, API y cualquier otro contenido que viaje a través de HTTP. Cuando un usuario solicita un contenido, Varnish almacena una copia en su memoria y posiblemente en disco. Cuando otro usuario solicita el mismo contenido, Varnish entrega la copia almacenada a la velocidad del rayo, saltándose el proceso de generación y entrega desde el origen, que consume muchos recursos. Esto reduce la carga del servidor y ofrece a los usuarios una experiencia más rápida.

Enterprise Features 4

Lenguaje de configuración de Varnish

Lo que hace único a Varnish es que la gestión de las peticiones y el comportamiento de la caché pueden modificarse significativamente y aumentarse con un lenguaje creado a tal efecto: Varnish Configuration Language (VCL). Con un estilo similar al de C, C++ y Java, ofrece subrutinas, sentencias if-else y llamadas a funciones. El código VCL se conecta a la máquina de estado finito de Varnish y le permite controlar cada etapa del proceso de gestión de solicitudes. Dado que la VCL se transpila a C y se compila a código máquina, en lugar de interpretarse en tiempo de ejecución, es muy, muy, rápido.

Más información

Configuration Language

Definición de políticas de almacenamiento en caché

La flexibilidad de la VCL no tiene parangón, ya que proporciona un control total sobre las políticas de almacenamiento en caché para permitir experiencias de almacenamiento en caché personalizadas, integración con otros sistemas y edge computing. Entre las funciones de la VCL se incluyen:

  • Gestión y enrutamiento de solicitudes
  • Manipulación de solicitudes y respuestas
  • Equilibrio de carga y supervisión de salud
  • Controles de caché
  • Limpieza de solicitudes
  • Edge - Side Includes (ESI)
  • Gestión de cookies
  • Autenticación
  • Anulación de la caché
  • Establecimiento de la duración de la caché
  • Manipulación de cabeceras
  • Equilibrio de la carga
  • Invalidación de la caché
Defining Caching Policy

Módulos Varnish (VMODs)

Una sólida biblioteca de módulos conectables amplía el comportamiento predeterminado de Varnish. Estos módulos Varnish, o VMODs, añaden una amplia variedad de funcionalidades y exponen un conjunto de funciones que pueden ser llamadas directamente desde VCL. Algunos ejemplos de VMOD son:

  • Purga avanzada / Invalidación
  • Transformación de contenidos
  • Compresión de contenidos / imágenes
  • Encriptación
  • Detección de dispositivos
  • Acceso al sistema de archivos
  • Análisis JSON
  • JWT
  • Acceso al almacenamiento / MSE
  • Información TLS / TLS en proceso
  • Throttling / Limitación de velocidad
  • Salida de Prometheus

Consulte aquí la lista completa

Plugable Modules

Características de Varnish Enterprise

Varnish Enterprise ofrece un conjunto de funciones más amplio que Varnish Cache, de código abierto. Entre las principales características de Varnish Enterprise se incluyen:

  • Massive Storage Engine (MSE). Caché en disco mediante IO directo que aumenta la capacidad de la caché de forma rentable y permite la persistencia de la caché.
  • Varnish High Availability (VHA). Replicación de objetos en caché en varios servidores Varnish
  • HTTPS y terminación TLS/SSL integrada en cliente y backend
  • Consola de gestión y supervisión basada en navegador denominada Varnish Controller.
  • Coalescencia de solicitudes Combina varias solicitudes del mismo objeto en una única solicitud de backend.
  • Registro. El registro completo proporciona una gran cantidad de información, con mecanismos de filtrado y límites de velocidad para reducir las entradas de registro almacenadas por intervalo de tiempo.
  • Estadísticas. Amplio conjunto de contadores en tiempo real, con estadísticas por partes de tráfico y exportaciones directas en formato JSON o Prometheus.
  • Grace mode Ofrece contenidos ligeramente obsoletos a los clientes mientras se envían peticiones asíncronas de revalidación para obtener la última versión. También llamado stale-while-revalidate
  • Invalidación avanzada de la caché
Enterprise Features

Arquitectura de Varnish

Un software eficiente permite escalar, razón por la cual el núcleo del motor de almacenamiento en caché de Varnish es sencillo y contiene sólo las funciones necesarias para funcionar. Varnish también está fuertemente controlado por hilos, por lo que cada conexión de cliente es gestionada por un hilo de trabajo independiente. Otro objetivo es hacer que el uso de recursos sea lo más eficiente posible mediante una asignación óptima de memoria, mientras que la ruta rápida altamente optimizada minimiza los cambios de contexto, los bloqueos y las asignaciones/desasignaciones de memoria. Varnish Enterprise también es compatible con las API de acceso a memoria no uniforme (NUMA), necesarias para obtener el máximo rendimiento de los servidores con más de un nodo NUMA.

Architecture

Request a free trial