1 of 20
2 of 20
3 of 20
4 of 20
5 of 20
6 of 20
7 of 20
8 of 20
9 of 20
10 of 20
11 of 20
12 of 20
13 of 20
14 of 20
15 of 20
16 of 20
17 of 20
18 of 20
19 of 20
20 of 20

site

doc

blog

success stories

Blog

Edge Caching: servicios de CDN de última generación

Desde su surgimiento a finales de la década de los 90, las CDN (Content delivery networks, redes de distribución de contenido) han sido fundamentales para reducir los cuellos de botella en Internet y acelerar el suministro al almacenar el contenido en caché más cerca de los usuarios finales. Sin embargo, actualmente Internet es muy diferente si se compara con la Internet de los 90. En consecuencia, ahora los dueños de aplicaciones y sitios web necesitan CDN capaces de proporcionar más servicios, procesar más solicitudes, así como de suministrar rápidamente imágenes en alta resolución, streaming de video y contenido dinámico para una amplia variedad de dispositivos.

Para lograrlo, Edge Application de Azion aprovecha al máximo el poder de la edge computing para ejecutar complejas tareas de computación en el edge de la red, más cerca de los usuarios finales. Edge Caching es el módulo estándar de Edge Application que usa una arquitectura de proxy inverso para almacenar el contenido en caché y ejecutar otras tareas cruciales que son necesarias para acelerar el suministro de contenido. Este artículo analizará a Edge Caching, más detalladamente, con un repaso sobre el concepto de almacenamiento en caché (también conocido como caching), así como sus diferentes tipos, una descripción de cómo funcionan los proxies inversos y el trabajo que realizan, además de profundizar en las especificidades de este módulo de Azion.

¿Qué es el almacenamiento en caché?

Según MDN Web Docs de Mozilla, “el almacenamiento en caché es una técnica que almacena una copia de un determinado recurso y lo suministra nuevamente cuando es solicitado”. Los archivos que son almacenados en caché local pueden ser accesados rápidamente en el futuro, lo que facilita un acceso más rápido y un menor uso de recursos.

¿Cómo las CDN almacenan el contenido en caché?

En un artículo previo, revisamos a profundidad la historia, el objetivo y la anatomía de una CDN. Puedes leerlo completo en este enlace, pero aquí vamos a presentar una versión resumida del proceso que usan las CDN para almacenar el contenido en caché:

  1. Las CDN están formadas por puntos de presencia (PoP), localizados en áreas geográficamente distribuidas y compuestos por uno o más servidores proxy.
  2. Cuando un usuario solicita contenido desde un sitio web que usa la CDN, la solicitud es enviada al PoP más cercano.
  3. Si una copia válida del contenido está en la memoria caché del servidor proxy, la solicitud es atendida por el servidor proxy; si no, el proxy envía la solicitud al servidor de origen del sitio web.
  4. El servidor de origen reenvía la solicitud al servidor proxy junto con su TTL (Time to live, tiempo de vida en español), que especifica por cuánto tiempo el contenido debe permanecer en la memoria caché antes de ser purgado.
  5. El proxy suministra el contenido al usuario que lo solicita, además almacena copias de los archivos en la memoria caché para atender solicitudes en el futuro.
  6. Cuando el TTL de un archivo expira, es eliminado del caché y el siguiente usuario que solicite ese archivo debe esperar a que se obtenga del servidor de origen.

Configurar el TTL de un archivo es importante porque, como señala Mozilla en MDN Web Docs, el almacenamiento en caché “tiene que ser configurado adecuadamente ya que no todos los recursos permanecen idénticos para siempre: es importante almacenar un recurso en caché solo hasta que sea alterado, no más”. No obstante, los sitios web en la actualidad cuentan con todo tipo de contenido, desde encabezados y logos de las empresas, que es poco probable que cambien con frecuencia, hasta noticias de última hora y ventas de retail que pueden perder su vigencia rápidamente.

Además, ciertos contenidos pueden variar según quién acceda a ellos. La mayoría del contenido actual es dinámico, lo que significa que es personalizado para varios usuarios y depende del tiempo que visitan un sitio web, los enlaces en los que hacen clic y otros factores que están sujetos a cambios. Por lo tanto, configurar el TTL adecuadamente puede ser una tarea compleja, que es mucho más complicada por el hecho de que el contenido no es almacenado en caché solo una vez, sino múltiples veces.

Tipos de almacenamiento en caché

El almacenamiento en caché puede ocurrir tanto del lado del servidor (en el servidor proxy) como del lado del cliente (en el caché del navegador). Aunque ambos tipos de almacenamiento aceleran el suministro de contenido, son diferentes si comparamos dónde se almacenan los archivos, así como quién controla y accede a la memoria caché. MDN Web Docs hace una distinción entre estos dos grupos, al usar los siguientes términos y definiciones:

  • Caché compartido de proxy: un caché del lado del servidor que almacena recursos populares para ser reusados por múltiples usuarios, a menudo como parte de una infraestructura de red local configurada para reducir el tráfico y la latencia de la red.
  • Caché privado del navegador: un caché del lado del cliente destinado a un único usuario que guarda todos los documentos descargados por el usuario vía HTTP para hacer que las páginas web visitadas anteriormente estén disponibles sin tener que realizar viajes adicionales al servidor.

Un caché compartido de proxy (también conocido como caché de servidor o caché de CDN) es el tipo de caché que usan las CDN para acelerar el suministro de contenido y mejorar la disponibilidad del sitio web. Este caché atiende diferentes usuarios finales en un área geográfica, lo que disminuye la latencia de la red al reducir la distancia que los archivos deben recorrer. Sin embargo, el almacenamiento en caché también sucede del lado del cliente para acelerar aún más el suministro de contenido. Mientras que un servidor proxy almacena copias de archivos a los que muchos usuarios y dispositivos pueden acceder rápidamente, el caché del navegador se almacena localmente en un solo dispositivo y solo puede acceder a ella cualquiera que use el navegador web de ese dispositivo específico.

¿Cómo los navegadores privados almacenan contenido en caché?

Este artículo de Google Developers explica que todos los navegadores tienen algún tipo de caché HTTP incorporado, que se ofrece mediante soporte para un conjunto de API de plataforma web. Estas API permiten a los desarrolladores determinar cómo se almacena en caché el contenido del sitio web por medio de la configuración de los encabezados de solicitud y respuesta, como cache-control (control de caché). Sin embargo, Google indica que el HTTP caching ocurre incluso cuando un desarrollador no especifica cuánto tiempo el contenido debe permanecer en la memoria caché; si el encabezado de cache-control no está configurado “los navegadores adivinan de manera efectiva qué tipo de comportamiento de caching tiene más sentido para un determinado tipo de contenido”.

Cuando un usuario visita un sitio web, la solicitud es dirigida inicialmente a la memoria caché del navegador, que verifica si puede ser atendida mediante el caché. Si hay una coincidencia, el contenido será ofrecido desde el caché. Si no, el contenido será descargado desde el sitio web y almacenado en el disco duro del usuario para el futuro, lo que resulta en una carga de página más rápida y menos costos por transferencia de datos.

El contenido es purgado del caché del navegador cuando los archivos expiran o cuando está lleno. Los usuarios finales también tienen la alternativa de purgar manualmente el caché del navegador para tener más espacio en su disco duro o para resolver algunos problemas de desempeño. Cuando el contenido de una página web ha sido purgado del caché del navegador, todos los datos de la página tendrán que descargarse desde el sitio web la próxima vez que sea visitada, lo que produce que la página cargue más lentamente..

Proxy de reenvío versus Servidores de proxy inverso

Existen dos tipos de servidores proxy: proxies de reenvío (forward proxies) y proxies inversos (reverse proxies). Los proxies de reenvío se ubican al frente de los dispositivos de los usuarios finales y actúan como un portal o gateway entre el usuario e Internet que evita que los usuarios reciban tráfico directamente desde un servidor de origen. Pueden ser usados como un gateway para configurar restricciones de navegación que impiden que cierto contenido llegue a los usuarios o para ocultar la identidad de un usuario final al realizar solicitudes. Un ejemplo de un proxy de reenvío es The Onion Router (redes TOR), que enruta el tráfico por diferentes proxies para proteger el anonimato de los usuarios.

Proxy de reenvío versus Servidores de proxy inverso

Por el contrario, los proxies inversos se ubican al frente de los servidores de origen y evitan que reciban tráfico directamente de Internet. Así como un proxy de reenvío puede ser usado para ocultar la identidad de un cliente, los proxies inversos ocultan la identidad de los servidores de origen al desempeñarse como la cara pública de un sitio web.

  • Proxy de reenvío: se ubica al frente del dispositivo del cliente y actúa en nombre de un cliente o grupo de clientes como un portal o gateway a Internet.
  • Proxy inverso: se ubica al frente de los servidores de origen y actúa en su nombre, al desempeñarse como la cara pública de un sitio web, proporcionar seguridad, desempeño y flexibilidad en el backend.

Los proxies inversos proporcionan flexibilidad y escalabilidad al permitir a las empresas cambiar su infraestructura de backend sin alterar la dirección de su sitio web. Además de almacenar el contenido en caché, también puede mejorar la seguridad y el desempeño al ofrecer servicios como:

  • Mitigación de DDoS
  • Blacklisting (creación de “listas negras” o de elementos bloqueados)
  • Compresión
  • Terminación de SSL
  • Balanceo de carga (load balancing)

Edge Caching de Azion

Edge Caching de Azion es el módulo estándar diseñado para reducir la latencia y mejorar la disponibilidad de las edge applications mediante una arquitectura de proxy reverso que conecta los edge nodes de nuestra red global altamente distribuida con la infraestructura de origen de los sitios web.

Con un alto nivel de granularidad, necesario para un almacenamiento en caché de los complejos sitios web actuales eficiente, Edge Caching minimiza los viajes al origen, lo que da como resultado una mejor velocidad y disponibilidad que las CDN heredadas. Con Edge Caching, los usuarios de Azion pueden definir configuraciones separadas para el caché del navegador y de la CDN, habilitar una segunda capa de almacenamiento para archivos de objetos con un tiempo de vida largo, acelerar la transferencia de archivos de mayor tamaño y almacenar contenido dinámico en caché para acelerar su suministro.

Cache settings

Los clientes de Azion pueden definir configuraciones de caché separadas tanto para el servidor host de origen como para el caché de la CDN. Al usar Edge Caching, las edge applications pueden ser configuradas para respetar los encabezados de la memoria caché de origen que mantendrán el TTL en la configuración del servidor host de origen. También tienes la opción de anular la configuración de caché de tu servidor host al configurar el TTL manualmente.

L2 Cache de Azion

En la actualidad, los complejos sitios web y aplicaciones son abundantes en contenido y están compuestos por numerosos archivos con diferentes necesidades en términos de almacenamiento en caché. Mientras que algunos objetos necesitan cambios frecuentemente, otros permanecen igual de forma constante y, por lo tanto, pueden ser almacenados en caché por un largo periodo. Para imágenes estáticas y otros objetos que pueden ser almacenados en caché por 30 días o más, L2 Cache de Azion ofrece una capa adicional de caché entre el edge y el origen para reducir aún más la carga a la infraestructura de origen.

Slice Settings

Los videos en alta definición y otros contenidos pesados pueden generar tiempos de transferencia prolongados que los usuarios finales no están dispuestos a esperar, ya que sus expectativas sobre el desempeño han aumentado. Slice settings es una funcionalidad de Edge Caching que permite procesar grandes cantidades de datos de forma eficiente al dividir los archivos en piezas más pequeñas que son suministradas gradualmente a los usuarios finales, en lugar de transferir el archivo completo de una vez. Esto no solo reduce la latencia, sino que también garantiza que la transferencia de grandes archivos no consuma demasiado ancho de banda, lo que puede ocasionar una congestión en la red que afecta la velocidad y la disponibilidad.

Advanced Cache Key

Advanced Cache Key es una funcionalidad de Edge Caching que permite almacenar contenido dinámico en caché al agrupar los usuarios de acuerdo a varios factores, como ubicación geográfica, historia de navegación o perfil de compras. Las reglas de caché personalizadas pueden ser definidas basadas en metadatos, como cookies o cadenas de consulta (query strings).

Descubre lo que Edge Caching puede hacer por tu sitio web. Crea una cuenta gratuita y prueba los productos de edge computing de Azion ahora.