ICM / web / Implantación de Aceleradores Web o CDN

Implantación de Aceleradores Web o CDN

7 febrero 2019 | Jesús Martínez

A lo largo de los años la importancia del volumen de visitas, datos y transferencia que se generan 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. Por ello, es necesario aceleradores web o CDNS.

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 es 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 aceleran aplicaciones web a través de un sistema de caché. Este 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 de los aceleradores web y CDNs

Los CDNs y aceleradores web son muy sencillos con contenido público. En otras palabras, 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 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. Muy importante en el alojamiento de e-commerce, claro. 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. 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.