Uso de una CDN para acelerar la entrega de contenido estático

Introducción

Índice
  1. Introducción
  • ¿Qué es una CDN?
  • ¿Cómo funciona una CDN?
  • Zonas de empuje y de tracción
  • Beneficios de usar una CDN
    1. Origen Descarga
    2. Menor latencia para una mejor experiencia del usuario
    3. Gestione los picos de tráfico y evite los tiempos de inactividad
    4. Reducir costos
    5. Aumentar la seguridad
  • Elegir la mejor solución
  • Conclusión
  • Los sitios web y las aplicaciones modernas a menudo deben entregar una cantidad significativa de contenido estático a los usuarios finales. Este contenido incluye imágenes, hojas de estilo, JavaScript y videos. A medida que estos recursos estáticos aumentan en cantidad y tamaño, el uso del ancho de banda aumenta y los tiempos de carga de las páginas aumentan, lo que deteriora la experiencia de navegación de los usuarios y reduce la capacidad disponible de los servidores.

    Para reducir drásticamente los tiempos de carga de las páginas, mejorar el rendimiento y reducir los costos de ancho de banda e infraestructura, puede implementar una CDN, o red de distribución de contenido , para almacenar en caché estos activos en un conjunto de servidores distribuidos geográficamente.

    En este tutorial, proporcionaremos una descripción general de alto nivel de las CDN y cómo funcionan, así como los beneficios que pueden brindar a sus aplicaciones web.

    ¿Qué es una CDN?

    Una red de distribución de contenido es un grupo de servidores distribuidos geográficamente y optimizados para entregar contenido estático a los usuarios finales. Este contenido estático puede ser prácticamente cualquier tipo de datos, pero las CDN se utilizan más comúnmente para entregar páginas web y sus archivos relacionados, transmisión de video y audio y paquetes de software de gran tamaño.

    Una CDN consta de varios puntos de presencia (PoP) en varias ubicaciones, cada uno de los cuales consta de varios servidores perimetrales que almacenan en caché los activos de su origen o servidor host. Cuando un usuario visita su sitio web y solicita activos estáticos, como imágenes o archivos JavaScript, la CDN enruta sus solicitudes al servidor perimetral más cercano, desde el cual se sirve el contenido. Si el servidor perimetral no tiene los activos almacenados en caché o si los activos almacenados en caché han expirado, la CDN buscará y almacenará en caché la última versión de otro servidor perimetral de CDN cercano o de sus servidores de origen. Si el borde de la CDN tiene una entrada de caché para sus activos (lo que ocurre la mayoría de las veces si su sitio web recibe una cantidad moderada de tráfico), devolverá la copia almacenada en caché al usuario final.

    Esto permite que los usuarios dispersos geográficamente minimicen la cantidad de saltos necesarios para recibir contenido estático, obteniendo el contenido directamente de la memoria caché de un borde cercano. El resultado es una reducción significativa de las latencias y la pérdida de paquetes, tiempos de carga de páginas más rápidos y una carga drásticamente reducida en su infraestructura de origen.

    Los proveedores de CDN suelen ofrecer funciones adicionales, como mitigación de DDoS y limitación de velocidad, análisis de usuarios y optimizaciones para casos de uso de streaming o móviles, a un coste adicional.

    ¿Cómo funciona una CDN?

    Cuando un usuario visita su sitio web, recibe primero una respuesta de un servidor DNS que contiene la dirección IP de su servidor web. A continuación, su navegador solicita el contenido de la página web, que suele constar de una variedad de archivos estáticos, como páginas HTML, hojas de estilo CSS, código JavaScript e imágenes.

    Una vez que implementa una CDN y descarga estos activos estáticos en servidores CDN, ya sea “enviándolos” manualmente o haciendo que la CDN “extraiga” los activos automáticamente (ambos mecanismos se tratan en la siguiente sección ), entonces le indica a su servidor web que reescriba los enlaces al contenido estático de modo que estos enlaces ahora apunten a archivos alojados por la CDN. Si está utilizando un CMS como WordPress, esta reescritura de enlaces se puede implementar utilizando un complemento de terceros como CDN Enabler .

    Muchas CDN brindan soporte para dominios personalizados, lo que le permite crear un registro CNAME en su dominio que apunte a un punto final de CDN. Una vez que la CDN recibe una solicitud de usuario en este punto final (ubicado en el borde, mucho más cerca del usuario que sus servidores backend), enruta la solicitud al punto de presencia (PoP) ubicado más cerca del usuario. Este PoP a menudo consta de uno o más servidores de borde de CDN ubicados en un punto de intercambio de Internet (IxP), esencialmente un centro de datos que los proveedores de servicios de Internet (ISP) usan para interconectar sus redes. Luego, el balanceador de carga interno de la CDN enruta la solicitud a un servidor de borde ubicado en este PoP, que luego entrega el contenido al usuario.

    Los mecanismos de almacenamiento en caché varían según los proveedores de CDN, pero generalmente funcionan de la siguiente manera:

    1. Cuando la CDN recibe una primera solicitud de un activo estático, como una imagen PNG, no tiene el activo almacenado en caché y debe obtener una copia del activo de un servidor perimetral de la CDN cercano o del propio servidor de origen. Esto se conoce como un “error de caché” y, por lo general, se puede detectar inspeccionando el encabezado de respuesta HTTP, que contiene X-Cache: MISS. Esta solicitud inicial será más lenta que las solicitudes futuras porque, después de completar esta solicitud, el activo se habrá almacenado en caché en el borde.
    2. Las futuras solicitudes de este activo (“accesos” a la caché), enrutadas a esta ubicación de borde, ahora se atenderán desde la caché, hasta el vencimiento (generalmente establecido a través de encabezados HTTP). Estas respuestas serán significativamente más rápidas que la solicitud inicial, lo que reducirá drásticamente las latencias para los usuarios y descargará el tráfico web en la red CDN. Puede verificar que la respuesta se atendió desde una caché de CDN inspeccionando el encabezado de respuesta HTTP, que ahora debería contener X-Cache: HIT.

    Para obtener más información sobre cómo funciona y se ha implementado una CDN específica, consulte la documentación de su proveedor de CDN.

    En la siguiente sección, presentaremos los dos tipos populares de CDN: CDN push y CDN pull .

    Zonas de empuje y de tracción

    La mayoría de los proveedores de CDN ofrecen dos formas de almacenar en caché sus datos: zonas de extracción y zonas de inserción.

    Las zonas de extracción implican ingresar la dirección de su servidor de origen y dejar que la CDN obtenga y almacene automáticamente en caché todos los recursos estáticos disponibles en su sitio. Las zonas de extracción se utilizan comúnmente para entregar recursos web pequeños y medianos que se actualizan con frecuencia, como archivos HTML, CSS y JavaScript. Después de proporcionar a la CDN la dirección de su servidor de origen, el siguiente paso suele ser reescribir los enlaces a los recursos estáticos de modo que ahora apunten a la URL proporcionada por la CDN. A partir de ese momento, la CDN manejará las solicitudes de recursos entrantes de sus usuarios y ofrecerá contenido desde sus cachés distribuidos geográficamente y su origen según corresponda.

    Para utilizar una Push Zone , debes cargar tus datos en un depósito o ubicación de almacenamiento designado, que luego la CDN envía a cachés en su flota distribuida de servidores de borde. Las Push Zones se utilizan normalmente para archivos más grandes y que cambian con poca frecuencia, como archivos comprimidos, paquetes de software, archivos PDF, archivos de vídeo y de audio.

    Beneficios de usar una CDN

    Casi cualquier sitio puede aprovechar los beneficios que brinda la implementación de una CDN, pero generalmente las razones principales para implementar una son descargar el ancho de banda de los servidores de origen a los servidores CDN y reducir la latencia para los usuarios distribuidos geográficamente.

    A continuación, analizaremos estas y otras de las principales ventajas que ofrece el uso de una CDN.

    Origen Descarga

    Si se acerca al límite de capacidad de ancho de banda de sus servidores, la descarga de activos estáticos como imágenes, videos, archivos CSS y JavaScript reducirá drásticamente el uso de ancho de banda de sus servidores. Las redes de distribución de contenido están diseñadas y optimizadas para ofrecer contenido estático, y las solicitudes de los clientes para este contenido se enrutarán a servidores CDN de borde, que las atenderán. Esto tiene el beneficio adicional de reducir la carga en sus servidores de origen, ya que luego sirven estos datos a una frecuencia mucho menor.

    Menor latencia para una mejor experiencia del usuario

    Si su base de usuarios está dispersa geográficamente y una parte no trivial de su tráfico proviene de un área geográfica distante, una CDN puede reducir la latencia al almacenar en caché los activos estáticos en servidores perimetrales más cercanos a sus usuarios. Al reducir la distancia entre sus usuarios y el contenido estático, puede entregar contenido a sus usuarios más rápidamente y mejorar su experiencia al aumentar la velocidad de carga de las páginas.

    Estos beneficios se combinan para los sitios web que ofrecen principalmente contenido de video que consume mucho ancho de banda, donde las latencias altas y los tiempos de carga lentos afectan más directamente la experiencia del usuario y la participación en el contenido.

    Gestione los picos de tráfico y evite los tiempos de inactividad

    Las CDN le permiten gestionar grandes picos y ráfagas de tráfico al equilibrar la carga de las solicitudes en una gran red distribuida de servidores perimetrales. Al descargar y almacenar en caché contenido estático en una red de distribución, puede dar cabida a una mayor cantidad de usuarios simultáneos con su infraestructura existente.

    En el caso de los sitios web que utilizan un único servidor de origen, estos grandes picos de tráfico pueden sobrecargar el sistema y provocar interrupciones y tiempos de inactividad no planificados. El traslado del tráfico a una infraestructura de CDN redundante y de alta disponibilidad, diseñada para gestionar niveles variables de tráfico web, puede aumentar la disponibilidad de sus activos y contenido.

    Reducir costos

    Dado que la distribución de contenido estático suele representar la mayor parte del uso de ancho de banda, la descarga de estos activos en una red de distribución de contenido puede reducir drásticamente el gasto mensual en infraestructura. Además de reducir los costos de ancho de banda, una CDN puede disminuir los costos del servidor al reducir la carga en los servidores de origen, lo que permite que su infraestructura existente se amplíe. Por último, algunos proveedores de CDN ofrecen una facturación mensual a precio fijo, lo que le permite transformar su uso variable de ancho de banda mensual en un gasto recurrente estable y predecible.

    Aumentar la seguridad

    Otro caso de uso común de las CDN es la mitigación de ataques DDoS. Muchos proveedores de CDN incluyen funciones para monitorear y filtrar solicitudes a servidores de borde. Estos servicios analizan el tráfico web en busca de patrones sospechosos, bloqueando el tráfico de ataques maliciosos y permitiendo el paso del tráfico de usuarios confiables. Los proveedores de CDN suelen ofrecer una variedad de servicios de mitigación de DDoS, desde protección contra ataques comunes a nivel de infraestructura ( capas 3 y 4 de OSI ) hasta servicios de mitigación más avanzados y limitación de velocidad.

    Además, la mayoría de las CDN le permiten configurar SSL completo, de modo que puede cifrar el tráfico entre la CDN y el usuario final, así como el tráfico entre la CDN y sus servidores de origen, utilizando certificados SSL personalizados o proporcionados por la CDN.

    Elegir la mejor solución

    Si el cuello de botella es la carga de la CPU en el servidor de origen y no el ancho de banda, una CDN puede no ser la solución más adecuada. En este caso, el almacenamiento en caché local mediante cachés populares como NGINX o Varnish puede reducir significativamente la carga al servir activos desde la memoria del sistema.

    Antes de implementar una CDN, los pasos de optimización adicionales (como minimizar y comprimir archivos JavaScript y CSS y habilitar la compresión de solicitudes HTTP del servidor web) también pueden tener un impacto significativo en los tiempos de carga de la página y el uso del ancho de banda.

    Una herramienta útil para medir la velocidad de carga de tu página y mejorarla es PageSpeed ​​Insights de Google . Otra herramienta útil que ofrece un desglose en cascada de los tiempos de solicitud y respuesta, así como optimizaciones sugeridas, es Pingdom .

    Conclusión

    Una red de distribución de contenido puede ser una solución rápida y eficaz para mejorar la escalabilidad y la disponibilidad de sus sitios web. Al almacenar en caché los activos estáticos en una red distribuida geográficamente de servidores optimizados, puede reducir en gran medida los tiempos de carga de las páginas y las latencias para los usuarios finales. Además, las CDN le permiten reducir significativamente el uso de ancho de banda al absorber las solicitudes de los usuarios y responder desde la memoria caché en el borde, lo que reduce los costos de ancho de banda e infraestructura.

    Con complementos y soporte de terceros para los principales marcos como WordPress, Drupal, Django y Ruby on Rails, así como características adicionales como mitigación de DDoS, SSL completo, monitoreo de usuarios y compresión de activos, las CDN pueden ser una herramienta impactante para proteger y optimizar sitios web de alto tráfico.

    SUSCRÍBETE A NUESTRO BOLETÍN 
    No te pierdas de nuestro contenido ni de ninguna de nuestras guías para que puedas avanzar en los juegos que más te gustan.

    Deja una respuesta

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

    Subir

    Este sitio web utiliza cookies para mejorar tu experiencia mientras navegas por él. Este sitio web utiliza cookies para mejorar tu experiencia de usuario. Al continuar navegando, aceptas su uso. Mas informacion