Todas

Noticias ICM

ESI en Aceleradores Web o CDN

A lo largo de los años la importancia del volumen de visitas, datos y transferencia que se generan y utilizan en internet cada vez es mayor. La utilización de recursos crece y crece, hay mucha más audiencia, los sites contienen más contenido multimedia y en general el peso y las líneas son cada vez mayores.

CDN vs Acelerador Web

Para acercar los contenidos a los usuarios o descargar los servidores web se utilizan de una forma muy extendida dos tipos de servicios:

  • CDNs: Redes de distribución de contenido. Su misión principal es la de acercar el contenido lo más cerca del usuario posible con el objetivo de hacer más rápidas las cargas y evitar las peticiones a los servidores de aplicaciones o web (normalmente no optimizados para servir contenido estático). Trabajamos con algunos de los servicios DNS más importantes, entre ellos Azure CDN o CloudFlare.
  • Aceleradores Web: Son servicios que se encargan de acelerar aplicaciones web a través de un sistema de caché que evita la carga sobre los servidores de aplicaciones o web. Nuestro servicio preferido y con el que trabajamos desde hace muchos años es Varnish

Implementación

Los CDNs y aceleradores web son muy sencillos con contenido público, es decir, podemos servir el contenido estático y/o público de una forma fácil y con un control absoluto de los tiempos de caché (TTL), control de caducidad, purgado, …

Se vuelve más complejo cuando queremos hacer que un e-commerce, un portal vivo o un site con mucha personalización, desde el punto de vista del usuario, cargue muy rápido. Es en este caso cuando ESI (Edge Side Includes) entra en la ecuación.

ESI no es, ni mucho menos, una tecnología novedosa (ESI Language Specification 1.0), pero cada vez coge más valor por su funcionalidad y sencillez. Mediante ESI podremos determinar que una sección de una página totalmente cacheable (por ejemplo durante 1 día, TTL: 24h) sea necesaria la petición al server para un “trozo” de esa página.

<!-- Varnish & CloudFlare Code, TTL: 24h /home -->
<!DOCTYPE html>
<html lang="es-ES">
<body>
<h1>Contenido cacheable</h1>
<p> Mi carrito de la compra:</p>
  <!-- Cache-Control: private -->
  <esi:include src="/shop/cart" />
</body>
</html>

De esta forma podremos cachear en nuestros Varnish o en nuestro CDN nuestra página completa y solo deberemos ir al servidor de aplicaciones o servidor web para peticionar el contenido específico para el carrito de la compra. De esta forma minimizamos la transferencia entre el servicio de Caching y el servidor web minimizando la latencia y el tiempo de respuesta desde el punto de vista del usuario.

La integración en Varnish o CloudFlare es muy sencilla y todas las cabeceras de las peticiones se reenvían a todos los includes para, de estar forma, tener acceso a la sesión del usuario y todas las cabeceras del navegador (User-Agent, language, …).

Como siempre, si tenéis cualquier consulta no dudéis en poneros en contacto con nosotros y profundicemos sobre cualquier proyecto que tengáis encima de la mesa.

cdn
Comenta

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Confían en nosotros

Banco Sabadell
MYGS
Maria Pascual
MHSoluciones
Paco Perfumerias
abertis
Vodafone
Buscounviaje