Un beneficio fundamental de una CDN es su capacidad de entregar contenido de forma rápida y eficiente. Las optimizaciones de rendimiento de una CDN se pueden dividir en tres categorías. Explora la guía de CDN.
Después de leer este artículo podrás:
Contenido relacionado
¿Qué es Anycast?
¿Qué es un servidor de origen?
Tiempo de ida y vuelta (RTT)
Tiempo de vida (TTL)
Fiabilidad de la CDN
¿Qué es un centro de datos de CDN?
Suscríbete a theNET, el resumen mensual de Cloudflare sobre las ideas más populares de Internet.
Copiar el enlace del artículo
Prácticamente, todo el mundo en Internet conoce las ventajas de una red de entrega de contenido (CDN). La mayoría de las empresas tecnológicas, incluidas Google, Apple y Microsoft, utilizan una CDN para reducir la latencia en la carga del contenido de páginas web.
Por lo general, una CDN colocará servidores en los puntos de intercambio entre las diferentes redes. Estos puntos de intercambio de Internet (IXP) son las ubicaciones principales en las que los diferentes proveedores de Internet se vinculan para proporcionar acceso mutuo a los recursos disponibles en sus diferentes redes. Además de los IXP, una CDN colocará servidores en centros de datos en ubicaciones de todo el mundo en áreas de alto tráfico y ubicaciones estratégicas para poder movilizar el tráfico lo más rápido posible.
Un beneficio primario de una CDN es su capacidad de entregar contenido de forma rápida y eficiente. Las optimizaciones de rendimiento de una CDN se pueden dividir en tres categorías:
Para comprender los beneficios de usar una CDN, exploremos cómo se ve una transferencia de datos cliente/servidor normal sin una CDN.
Imaginemos que alguien en Nueva York necesita acceder a un sitio web que está alojado en un servidor en Singapur. La separación física entre estas ubicaciones es sustancial, con una distancia física de aproximadamente 9.520 millas (15.320 kilómetros).
Si un servidor que aloja el contenido del sitio web (servidor de origen) se encuentra en Singapur, cada solicitud para cada activo de la página web debe viajar de Nueva York a Singapur y viceversa. Al igual que tomar un vuelo internacional con muchas conexiones, cada solicitud debe viajar a través de una serie de enrutadores a lo largo de su viaje, desde el punto A al punto B.
Si deseas ver un ejemplo real de cuántas conexiones diferentes (saltos) necesita tu computadora para llegar a un servicio web en particular desde tu ubicación actual, explora traceroute en una computadora de escritorio.
Debido a que la solicitud de Nueva York a Singapur debe pasar por cada una de las ubicaciones del enrutador a lo largo del camino, la cantidad de tiempo (latencia) aumenta tanto en la distancia total como en el tiempo que tarda cada enrutador en procesar la solicitud. Una vez que el servidor de origen procesa la solicitud y responde al cliente que la hace, envía la información de vuelta a través de una secuencia similar de enrutadores antes de que regrese a Nueva York. La medición de este viaje de ida y vuelta completo se conoce en telecomunicaciones como tiempo de recorrido de ida y vuelta (RTT). Sin tomar en cuenta por el momento el ancho de banda disponible y la posible sobrecarga de la red, veamos un ejemplo de los factores de latencia.
Para fines ilustrativos, digamos:
Veamos un aproximado de cuánto tiempo tardará en cargarse esta página web:
En este sencillo ejemplo, el tiempo total de tránsito para que se cargue esta página web es de aproximadamente 3.000 ms.
Como puedes ver, cada vez que se realiza una solicitud y se envía una respuesta, se atraviesa la ruta completa entre el cliente en Nueva York y el origen en Singapur. A medida que los sitios web se vuelven más grandes y requieren una mayor cantidad de activos, la latencia entre el punto A y el punto B sigue aumentando.
Repasemos el ejemplo de contenido alojado en Singapur servido a un cliente web en Nueva York, pero ahora el sitio de Singapur está usando una CDN con un servidor en Atlanta que contiene una copia almacenada en caché del sitio web estático:
Veamos un aproximado de cuánto tiempo tardará en cargarse esta página web al usar la CDN:
El tiempo de tránsito total para que se cargue esta página web es de aproximadamente 1.100 ms.
En este ejemplo, la reducción de la distancia entre el cliente y el contenido crea una mejora de 1.900 ms en la latencia del contenido estático, lo que reduce casi 2 segundos el tiempo de carga.
Al reducir la distancia total que debe atravesar todo el tráfico necesario, cada uno de los usuarios del sitio web está ahorrando una cantidad de tiempo de carga. Debido a que los usuarios comienzan a abandonar el sitio (rebotar) muy rápidamente a medida que aumentan los tiempos de espera, esta mejora representa no solo una mejor experiencia del usuario sino también un mayor tiempo de uso en la página.
Como se mencionó anteriormente, normalmente cuando un cliente solicita un archivo de un servidor de origen, la solicitud debe ir ida y vuelta a ese servidor y viceversa. Una CDN mejora la latencia al extraer archivos de contenido estático del servidor de origen a la red CDN distribuida en un proceso denominado almacenamiento en caché. Algunas CDN tendrán funciones avanzadas que también permitirán el almacenamiento selectivo en caché de contenido dinámico. Una vez que los datos se almacenan en caché, la CDN envía el contenido al cliente desde el centro de datos de CDN más cercano.
Después de que se ha realizado un protocolo de enlace de TCP, el equipo cliente realiza una solicitud HTTP a la red de CDN. Si el contenido aún no se ha almacenado en caché, la CDN primero descargará el contenido del origen mediante una solicitud adicional entre el servidor de origen y el servidor de perímetro de la CDN.
Estos son los 4 pasos durante un almacenamiento en caché de CDN típico:
El valor de la proximidad de una CDN al cliente se produce después de que se ha realizado la solicitud inicial al servidor de origen. Una vez que los datos se han almacenado en caché desde el servidor de origen en la red de CDN, cada solicitud posterior del cliente solo necesita llegar hasta el servidor en el perímetro más cercano. Esto significa que si el servidor en el perímetro más cercano está más cerca que el servidor de origen, la latencia se puede reducir y el contenido se puede proporcionar mucho más rápido.
Es importante tener en cuenta que actualmente no se incluye la cantidad de tiempo necesaria para descargar activos y procesar las solicitudes y respuestas. Hasta ahora, solo se está calculando el tiempo de tránsito necesario para transferir información entre estas dos ubicaciones. Otros factores de latencia importantes que exploraremos son la reducción de los datos, la velocidad del disco duro y la congestión de la red.
Para mejorar los tiempos de carga de la página, las CDN reducen las cantidades totales de transferencia de los datos entre los servidores de caché de la CDN y el cliente. Tanto la latencia como el ancho de banda requerido se reducen cuando se reduce la cantidad total de datos transferidos. El resultado son cargas de página más rápidas y costos de ancho de banda más bajos. Dos componentes clave entran en esta reducción:
Minificación: es el proceso a través del cual los bloques de código se reducen en tamaño al eliminar todos los componentes que ayudan a los humanos a comprender lo que está sucediendo. Mientras que un ingeniero necesita separar ideas en nombres de variables sensibles, espacios y comentarios para hacer que los bloques de código sean legibles y fáciles de mantener, las computadoras pueden ejecutar código con éxito sin esos caracteres.
Este es el mismo bloque de código antes y después de la minificación:
Antes de la minificación, vemos ocho líneas de código
Después de la minificación, vemos una sola línea de código
Ahora que el fragmento de código se redujo de ocho líneas a una sola línea, también se ha reducido el tamaño total del archivo. Es decir, lleva menos tiempo transferir el archivo, lo que reduce la latencia y ayuda a cargar el contenido más rápido.
Compresión de archivos: la compresión de archivos es un componente integral para reducir la latencia y el consumo del ancho de banda necesarios al transferir datos a través de Internet. GZip es un método de compresión común y se considera la mejor práctica cuando se transfieren páginas web. Muchos proveedores de CDN tienen GZip habilitado por defecto. ¿Qué tan importante son los ahorros de la compresión GZip? Por lo general, los archivos comprimidos se reducirán entre un 50 % y un 70 % del tamaño inicial del archivo.
En cuanto a las optimizaciones de hardware de CDN, se obtiene un beneficio sustancial del uso de dispositivos de estado sólido (SSD) en comparación con las unidades de disco duro tradicionales (HDD). Los SSD pueden abrir archivos hasta un 30 % más rápido que la unidad de disco duro tradicional y son más resistentes y confiables.
De forma similar a un reproductor de discos, una unidad de disco duro tradicional consiste en un disco metálico circular giratorio con un revestimiento magnético que almacena los datos. Un cabezal de lectura/escritura en un brazo accede a la información cuando el disco gira debajo de él. Es un proceso mecánico que depende de la velocidad con la que gira el disco. Con la llegada de los SSD, el uso del modelo anterior de unidades de disco duro es poco común, aunque todavía se producen hoy en día y tienen una amplia circulación en muchos sistemas informáticos.
Un SSD también es una forma de almacenamiento persistente, pero funciona de manera mucho más similar a las unidades USB o a las tarjetas de memoria que se encuentran comúnmente en los dispositivos como las cámaras digitales; no hay piezas móviles. Si un disco duro normal está girando y el sistema es forzado, el disco duro podría omitirse, lo que provocará errores de lectura/escritura y un posible tiempo de inactividad. Otro beneficio importante de los SSD es acceder a los archivos fragmentados. La fragmentación de archivos es una situación en la que partes de un archivo se encuentran en diferentes ubicaciones del disco, lo que da como resultado un acceso más lento a las unidades de disco duro. Debido a que un SSD puede acceder de manera eficiente a ubicaciones de memoria no contiguas, la fragmentación no es una amenaza para el rendimiento.
En las primeras CDN, los datos se almacenaban en unidades de disco duro. Ahora, con algunos servicios de CDN, todo el almacenamiento en caché del lado del perímetro puede ocurrir en dispositivos SSD. La desventaja de los SSD es el gasto. Un SSD puede ser hasta 5 veces más costoso que los medios tradicionales. Por esta razón, algunos servicios CDN a menudo evitarán su uso y optarán por tecnología más antigua. La CDN de Cloudflare utiliza exclusivamente los SSD.