Distribuir contenido dinámico con una CDN moderna
Debido a la influencia de las CDN tradicionales, los usuarios piensan que solo hay dos tipos principales de contenido: estático y dinámico. Veamos qué significa cada uno para comprender mejor cómo utilizarlos.
¿Qué es el contenido estático?
El contenido estático se suele definir como aquel que una CDN tradicional puede almacenar en caché. Es idéntico para todos los usuarios y su distribución es más rápida.
¿Qué es el contenido dinámico?
El contenido dinámico es todo lo demás. Este contenido se genera en el servidor para cada petición y su distribución puede ser mucho más laboriosa.
Durante mucho tiempo, se ha pensado que esta diferenciación tenía más que ver con la tecnología de las CDN que con el contenido en sí. Sin embargo, una CDN tradicional solo considera contenido estático (y, por lo tanto, almacenable en caché) a aquel que tiene una vida útil larga y bien definida. Pero esto puede cambiar si se utiliza una CDN moderna que cuente con funcionalidades tan útiles como invalidación de caché, métricas en tiempo real y distribución en el edge. Así, es posible almacenar en caché nuevas categorías de contenido que hasta ahora se consideraba dinámico. En este caso, no cambia el tipo de contenido, sino la tecnología empleada.
¿Cuál es el problema?
El contenido personalizado (que a veces se define como dinámico) cada vez tiene mayor relevancia. De hecho, el 74 % de los participantes en una encuesta de Instapage aseguraron que no les gustaban los sitios web sin personalizar, y ahora que las compras online son cada vez más frecuentes, la personalización se ha vuelto importantísima.
El problema reside en que las CDN tradicionales no cuentan con la capacidad de almacenar en caché este tipo de información personalizada y dinámica (datos de la cuenta, productos según la ubicación, cambios de inventario, noticias locales, etc.). Esto implica que el tráfico de los clientes con CDN tradicionales tiene que volver de nuevo al origen y, por tanto, los tiempos de respuesta son más lentos y la infraestructura es más costosa, a lo que habría que añadir el coste por el tráfico de salida para todas esas respuestas.
No obstante, la capacidad de almacenar en caché no es lo único que impide a las CDN tradicionales distribuir más contenido almacenado en caché en el edge. También hay otros motivos:
Visibilidad: el contenido que se distribuye desde el origen aparece de manera inmediata en las métricas, mientras que las estadísticas y los registros de las CDN tradicionales pueden resultar difíciles de integrar, ya que pueden tardar minutos e incluso horas en llegar.
Uniformidad: cuando un contenido se actualiza, también hay que purgar otros para mantener la coherencia y evitar resultados obsoletos. Por ejemplo, en un sitio web de comercio electrónico, habría que cambiar las imágenes y los SKU si se modifica la descripción de un producto.
Contenido mixto: las tecnologías incompatibles con el almacenamiento en caché, como GraphQ, pueden mezclar una pequeña cantidad de contenido personalizado, como una cesta de la compra, con una gran cantidad de contenido que sí se podría almacenar en caché, como imágenes o descripciones de los artículos de la cesta.
¿Cuál es la solución?
Las CDN modernas posibilitan la distribución de contenido dinámico real que cambia con cada petición del edge y no del origen. Podríamos eliminar por completo muchas de las peticiones al origen ejecutando el código más cerca de los usuarios finales, con POP de gran capacidad y ubicados estratégicamente para que funcionen como fondo de almacenamiento y guarden más contenido en caché.
Las CDN modernas tienen la capacidad de purgar de manera instantánea (algunas en milisegundos) y de forma selectiva (en contraposición con la purga completa). Esto resulta de gran ayuda para las empresas, que pueden almacenar en caché gran parte del contenido que no se podría almacenar con una CDN tradicional.
Además, una CDN moderna da a los desarrolladores visibilidad en tiempo real de estadísticas y registros para programar y supervisar el rendimiento de las API. Todos estos mecanismos otorgan mucha capacidad a la hora de distribuir contenido y contribuyen a distintos aspectos relacionados con las aplicaciones de las empresas, como el rendimiento, la reducción de la carga del origen y el conocimiento general sobre su red.
Los entornos informáticos sin servidores en el edge van un paso más allá. Estamos ante un modelo que da prioridad al edge y que ya no diferencia entre contenido estático y dinámico. En su lugar, empieza creándolo todo en el edge y solo recurre al origen en casos muy concretos que trataremos con más detalle en otro artículo.
Qué nos deparará el futuro
Tenemos muchas ganas de que llegue la próxima generación de la distribución desde el edge con Compute@Edge, nuestro entorno informático sin servidores que hace posible la unión de contenido. Esta nueva solución permite combinar contenido procedente de la caché y del origen en una sola respuesta para distribuir todo el contenido que sea posible desde el edge. Además, se puede personalizar en función de las respuestas de cada usuario de forma individual. Si te interesa, puedes ver la demostración sobre cómo usar Compute@Edge para unir contenido de GraphQL que hizo Sean Leach, Chief Architect de Fastly, en Altitude.
Estas son solo algunas de las muchas formas de distribuir contenido dinámico y mejorar la experiencia de uso que ofrecen una CDN moderna y la arquitectura sin servidores basada en el edge. Tienes más información sobre este tema en Guía para la CDN moderna: seguridad y rendimiento para el desarrollo actual.