Uno de los principales beneficios de una CDN es su capacidad de entregar contenido de forma rápida y eficiente. Las optimizaciones de rendimiento de la CDN pueden dividirse 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íbase a theNET, el resumen mensual de Cloudflare sobre las ideas más populares de Internet.
Copiar 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 diferentes redes. Estos puntos de intercambio de Internet (IXP) son las ubicaciones principales donde los diferentes proveedores de Internet se conectan entre sí para que cada uno de ellos tenga acceso al tráfico que se origina en sus diferentes redes. Además de los IXP, una CDN colocará servidores en centros de datos situados por todo el mundo, en zonas de tráfico elevado y ubicaciones estratégicas para agilizar el tráfico lo más rápido posible.
Uno de los principales beneficios de una CDN es su capacidad de entregar contenido de forma rápida y eficiente. Las optimizaciones de rendimiento de una CDN pueden dividirse en tres categorías:
Para entender las ventajas de utilizar una CDN, analizaremos cómo es una transferencia de datos cliente/servidor normal sin una CDN.
Imaginemos que alguien en Nueva York necesita acceder a un sitio web alojado en un servidor de Singapur. La separación física entre estas ubicaciones es sustancial, con una distancia de aproximadamente 15.320 kilómetros.
Si el servidor que aloja el contenido del sitio web (servidor de origen) se encuentra en Singapur, cada solicitud de cada activo de la página web debe viajar de Nueva York a Singapur y volver de nuevo. Al igual que sucede con un vuelo internacional con muchas conexiones, cada solicitud debe atravesar una serie de enrutadores a lo largo del recorrido desde el punto A al punto B.
Si quieres ver un ejemplo real de cuántas conexiones diferentes (saltos) realiza tu equipo para llegar a un servicio web determinado desde tu ubicación actual, echa un vistazo a traceroute en un ordenador de sobremesa.
La solicitud de Nueva York a Singapur tiene que pasar por todos los lugares donde se encuentran los enrutadores, lo que se traduce en un aumento de la cantidad de tiempo (latencia), tanto por la distancia total como por 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 ha realizado, devuelve la información a través de una secuencia similar de enrutadores antes de que llegue a Nueva York. La medición de este viaje de ida y vuelta total se conoce en telecomunicaciones como tiempo de recorrido de ida y vuelta (RTT). Sin tener en cuenta de momento el ancho de banda disponible y la posible sobrecarga de la red, veamos un ejemplo de los factores relacionados con la latencia.
A título ilustrativo, supongamos:
Veamos aproximadamente cuánto tardará en cargarse la página web:
En este sencillo ejemplo, el tiempo total de tránsito para que la página web se cargue es de aproximadamente 3.000 ms.
Como puedes ver, cada vez que se realiza una solicitud y se envía una respuesta, se recorre toda la ruta entre el cliente de Nueva York y el origen en Singapur. A medida que aumenta el contenido de los sitios web y necesitan un mayor número de activos, se incrementa la latencia entre el punto A y el B.
Repasemos el ejemplo de contenido alojado en Singapur servido a un cliente web en Nueva York, pero ahora el sitio de Singapur utiliza una CDN con un servidor en Atlanta que contiene una copia almacenada en caché del sitio web estático:
Veamos aproximadamente cuánto tardará en cargarse la página web usando 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 todo el tráfico necesario debe recorrer, cada usuario del sitio web ahorra una cantidad de tiempo de carga. Teniendo en cuenta que los usuarios comienzan a abandonar el sitio (rebote) muy rápido cuando aumentan los tiempos de espera, esta mejora ofrece una experiencia del usuario superior y un mayor tiempo de permanencia en la página.
Como ya hemos mencionado, normalmente cuando un cliente solicita un archivo desde un servidor de origen, la solicitud debe transmitirse a ese servidor y volver de nuevo. Una CDN mejora la latencia gracias a la extracción de archivos de contenido estático del servidor de origen en la red distribuida de la CDN, en un proceso llamado almacenamiento en caché. Algunas CDN también cuentan con funciones avanzadas que permiten el almacenamiento en caché selectivo 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 CDN más cercano.
Después de que se haya realizado un protocolo de enlace TCP, el equipo cliente realiza una solicitud HTTP a la red de la CDN. Si el contenido aún no se ha almacenado en caché, la CDN descargará primero el contenido desde el origen, realizando una solicitud adicional entre el servidor de origen y el servidor perimetral de la CDN.
Estos son los 4 pasos de 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 haya realizado la solicitud inicial al servidor de origen. Una vez que los datos del servidor de origen se han almacenado en la memoria caché de la red de la CDN, las solicitudes posteriores del cliente solo tienen que ir hasta el servidor en el perímetro más cercano. Así, si el servidor en el perímetro más cercano está a menor distancia que el servidor de origen, la latencia se reduce y el contenido se sirve mucho más rápido.
Es importante tener en cuenta que no hemos incluido la cantidad de tiempo necesario para descargar activos y procesar solicitudes y respuestas. Hasta ahora solo se ha calculado 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 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 la cantidad total de transferencia de datos entre los servidores de caché de la CDN y el cliente. Tanto la latencia como el ancho de banda necesario se reducen cuando la cantidad total de datos transferidos disminuye. Todo ello reduce el tiempo de carga de página y los costes de ancho de banda. En esta reducción intervienen dos componentes clave:
Minificación: es el proceso por el cual los bloques de código se reducen en tamaño mediante la eliminación de todos los componentes que permiten a los humanos entender la situación. Mientras que un ingeniero necesita separar las ideas en nombres de variables adecuados, espacios y comentarios para que los bloques de código sean legibles y fáciles de mantener, los ordenadores pueden ejecutar código correctamente 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 solo una línea de código
Ahora que el fragmento de código se ha reducido de ocho líneas a una sola línea, el tamaño total del archivo también es menor. De esta manera, se tardará menos tiempo en transferir el archivo, lo que reduce la latencia y permite 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 de ancho de banda necesarios para transferir datos a través de Internet. GZip es un método común de compresión y se considera la mejor práctica a la hora de transferir páginas web. Muchos proveedores de CDN tienen GZip habilitado de forma predeterminada. ¿Qué conseguimos con la compresión GZip? Los archivos comprimidos se reducen normalmente entre un 50 % y un 70 % con respecto a su tamaño inicial.
En lo que respecta a las optimizaciones de hardware de las CDN, un beneficio sustancial proviene del uso de dispositivos de estado sólido (SSD) frente a los discos duros tradicionales (HDD). Los SSD pueden abrir archivos hasta un 30 % más rápido que los discos duros tradicionales y son más resistentes y fiables.
De forma similar a un reproductor de discos, una unidad de disco duro tradicional consiste en un disco de metal 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 este. Es un proceso mecánico que depende de la velocidad con la que gira el disco. Con la llegada de los SSD, se ha reducido el uso del antiguo modelo de discos duros, aunque todavía se fabrican y están en amplia circulación en muchos sistemas informáticos.
Un SSD también es una forma de almacenamiento persistente, pero funciona de manera más similar a las memorias USB o a las tarjetas de memoria que se encuentran habitualmente en dispositivos como las cámaras digitales. No hay componentes móviles. Si un disco duro normal está girando y el sistema se atasca, el disco duro puede saltar, lo que genera errores de lectura/escritura y un posible tiempo de inactividad. Otro beneficio importante de los SSD es el acceso a 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 ralentiza el acceso a las unidades de disco duro. Como un SSD puede acceder a ubicaciones de memoria no contiguas de forma eficiente, la fragmentación no es una amenaza para el rendimiento.
En las primeras CDN, los datos se almacenaban en discos duros. Ahora, con algunos servicios de CDN, todo el almacenamiento en caché en el perímetro puede realizarse en dispositivos SSD. El inconveniente que tienen es el gasto. Un SSD puede ser hasta 5 veces más caro que los soportes tradicionales. Por eso, algunos servicios de CDN suelen evitar su uso y optan por la tecnología más antigua. La CDN de Cloudflare utiliza exclusivamente SSD.