Desarrollo Web

Qué es un CDN y cómo funciona

¿Quieres saber qué es un CDN? En este artículo te lo contamos, además de para qué sirve, cómo funciona, sus beneficios y los mejores CDN que puedes elegir.

Publicado el 23 de Julio de 2021
Compartir

Sabemos que detrás de un gran invento, casi siempre hay una gran historia. Algunas veces esa historia es similar a un cuento de hadas, mientras otras veces es una historia trágica, pero que trajo consigo algo positivo, una nueva oportunidad.

Antes de entrar en el tema central del artículo, me gustaría contarles la trágica historia de Daniel Lewin y cómo ésta contribuyó indirectamente al éxito de las CDN como las conocemos hoy. Puedo adelantarles que CDN es un acrónimo de Content Delivery Network, red de entrega de contenidos en español.

Una pequeña historia de las CDN

En 1998 Daniel Lewin junto a F. Thomson Leighton, Randall Kaplan y Jonathan Seelig fundaron Akamai Technologies, una compañía que en general ha contribuido significativamente al desarrollo y crecimiento del Internet, y que actualmente es una de las compañías más importantes del mercado de CDN.

La gran intuición de Lewin y sus compañeros los llevó a crear un algoritmo muy sofisticado capaz de obtener la máxima velocidad y capacidad de transporte en la entrega de contenido modelando flujos de bits en la red. El algoritmo que desarrollaron tenía como objetivo optimizar los flujos de datos y limitar la sobrecarga de los servidores centrales cuando, por ejemplo, muchos usuarios de diferentes partes del mundo solicitaban el mismo contenido web de forma simultánea.

A pesar de que la idea de Lewin y sus compañeros era innovadora, inclusive desarrollaron su algoritmo mucho antes de que el resto de compañías enfocadas en el desarrollo del Internet siquiera pensaran en ello, tuvieron dificultades para despegar, ya que los enormes gastos de investigación estaban poniendo a Akamai Technologies en problemas.

Lewin creía en el poder de su proyecto tecnológico y sabía que podía cambiar el mundo de la tecnología. Por eso, el 11 de septiembre de 2001, se disponía a presentarlo a unos clientes potenciales de Akamai Technologies en la ciudad de Los Ángeles, sin embargo, esas reuniones no se pudieron realizar porque ocurrió la trágica casualidad de que Lewin iba a bordo del vuelo 11 de American Airlines, el primer avión en estrellarse en el World Trade Center de Nueva York en aquel atentado terrorista que marcó la historia del mundo y del Internet, en un período cuando el algoritmo de Lewin y sus compañeros comenzaba a conocerse de manera más precisa con el nombre de Content Delivery Network (CDN).

A pesar de que Lewin nunca llegó a la ciudad de Los Ángeles, sus ideas si lo hicieron y la compañía recibió la respuesta que merecía y necesitaba. De hecho, el ataque a las Torres Gemelas puso a prueba las capacidades de la red de Internet como nunca antes se había visto, lo que fue un punto de inflexión para Akamai Technologies y para su propuesta innovadora. Después del atentado del 11 de septiembre, millones de usuarios en diferentes partes del mundo buscaron de forma simultánea información en Internet sobre lo que había sucedido. Esto causó de forma constante tiempos de inactividad y fallas en diferentes sitios web de todo tipo, pero principalmente en los de noticias, causados por picos de solicitudes que los servidores donde estaban alojados estos sitios web, no podían manejar por completo.

En la actualidad, las CDN administran el 90% del tráfico de Internet lo que nos permite a los usuarios experimentar tiempos de espera reducidos cuando consultamos información en la web optimizando el tamaño de ficheros multimedia como imágenes, video y audio, y por otro lado reduciendo las sobrecargas de los servidores web.

Qué es un CDN

Una Red de Entregas de Contenidos, es una red de computadoras distribuidas en diferentes centros de datos en diferentes regiones geográficas, que trabajan juntos para proporcionar una entrega rápida de contenido en Internet, de manera transparente a los usuarios finales, según la proximidad de este usuario. Veamos de forma individual cada uno de estos componentes:

Red

La Red en un CDN se compone de un grupo de computadoras y servidores que trabajan en conjunto para enviar el “contenido” al cliente.

Existen proveedores de CDN que tienen su red distribuida en cientos de países, los cuales están sincronizados para brindar tiempos de carga rápidos. Algunos de los principales son AWS CloudFront, Akamai, Fastly, CloudFlare CDN, Microsoft Azure CDN y Google Cloud CDN.

Es esta red la responsable de entregar el contenido a los usuarios.

Entrega

Entrega es lo que se genera al trasladar el contenido desde su origen al dispositivo del usuario, considerando qué tan rápido puede llegar allí. Es decir, un CDN debe proporcionar una entrega rápida de contenido a quién lo solicita a través de Internet, independientemente de lo que solicite y del lugar donde se encuentre.

Contenido

El contenido puede ser cualquier cosa que solicitamos a través de una página o servicio web, sin importar su formato, como páginas HTML, ficheros CSS, ficheros Javascript, ficheros multimedia como imágenes, videos, canciones, etc.

Por ejemplo, cuando en el head de una página web vemos, líneas como las siguientes:

<!-- Bootstrap -->
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js" 
integrity="sha384-B4gt1jrGC7Jh4AgTPSdUtOBvfO8shuf57BaghqFfPlYxofvL8/KUEfYiJOMMV+rV" 
crossorigin="anonymous"></script>

<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" 
integrity="sha384-JcKb8q3iqJ61gNV9KGb8thSsNjpSL0n8PARn9HuZOnIxN0hoP+VmmDGMN5t9UJ0Z" 
crossorigin="anonymous">

<!-- Google Fonts / Open Sans -->
<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@300&display=swap" 
rel="stylesheet">

Básicamente, estamos pidiendo, las librerías CSS y Javascript de Bootstrap directamente desde el CDN de Bootstrap para poder utilizarlas en el diseño de la página web y por otro lado, el archivo de la fuente Open Sans directamente al CDN de Google Fonts que nos permitirá presentar el texto de la web con este tipo de fuente.

Imagen 0 en Qué es un CDN y cómo funciona

Cómo funciona un CDN

Hemos visto que una CDN es una red de servidores interconectados que tienen el objetivo principal de entregar contenido de la manera más rápida y segura posible. Para mejorar la velocidad de entrega, una CDN colocará servidores en los puntos de intercambio de Internet (IXP), puntos donde los proveedores de Internet se interconectan de manera que puedan proporcionar acceso a sus diferentes redes.

Ya que un proveedor de CDN puede conectarse a estas IXP, las cuales están altamente interconectadas, puede reducir los costos y los tiempos de tránsito en la entrega de datos a una alta velocidad y disponibilidad.

Mejorando los tiempos de carga con un CDN

Uno de los casos de uso más comunes de una CDN es la mejora en el tiempo de carga (entrega) de una página web. Usemos una tienda de comercio electrónico como ejemplo para comprender cómo una CDN ayuda a mejorar el tiempo de carga de la página.

Imagina que has desarrollado una tienda e-commerce muy chula y que has contratado un servicio de alojamiento que tiene sus servidores en España. Todos los archivos necesarios para el funcionamiento de tu tienda están almacenados en uno de esos servidores. Es decir, cuando un usuario accede a tu tienda para realizar una compra, todo lo que se carga en su navegador proviene de este servidor.

Ahora, un usuario de Estados Unidos (EEUU), está intentando acceder al sitio web y piensa realizar una compra. Cuando este usuario coloca en su navegador la URL de nuestra tienda e-commerce, para cada recurso que se carga en el sitio web (ficheros HTML, JavaScript, CSS, imágenes, etc.), se realizan múltiples solicitudes que recorren miles de kilómetros de distancia, que van desde el dispositivo del usuario en EEUU hasta los servidores donde están almacenados todos los archivos de la tienda en España.

Sin considerar todos los demás factores que pueden estar involucrados en una comunicación como la que he descrito, esta distancia entre el cliente (EEUU) y el servidor (España) es responsable de agregar unos cientos de milisegundos en el tiempo de carga de cada uno de los recursos de la página web.

Podrás imaginar que esos milisegundos crecerán de forma exponencial según la cantidad de recursos que necesita el sitio web para desplegarse correctamente, lo que hace que el tiempo de carga de la tienda sea muy lento, lentitud que puede causar que el usuario se canse o aburra de esperar y no termine comprando nada, e incluso afecta cómo los buscadores califican tu sitio web, penalizando el ranking en que aparecerá si alguien realiza una búsqueda basada en las palabras claves que has establecido para tu negocio.

Aquí es donde entraría en acción un CDN. Como se mencionó anteriormente, un CDN es una red distribuida globalmente de servidores que almacenan en “caché” parte o todo el contenido del sitio web. Cada uno de estos servidores en la red de la CDN se denomina punto de presencia (PoP) o servidor de borde.

Para mejorar los tiempos de carga de nuestra tienda en EEUU, en lugar de entregar los recursos desde el servidor donde están alojados los archivos de la tienda, los recursos son entregados a través de un PoP que está ubicado en EEUU, en una locación cercana a donde se ha realizado la petición de carga de la página web por parte del usuario. Como nota importante, un CDN puede tener distintos PoP presentes en múltiples ubicaciones en EEUU.

Ahora, cada vez que un usuario en EEUU accede a nuestra tienda e-commerce, en lugar de obtener los recursos del servidor desde España, el usuario los obtiene desde el servidor CDN que está más cerca de él en EEUU. Geográficamente, el usuario y el servidor CDN que responde a la solicitud del usuario están ahora a solo unos pocos kilómetros de distancia, lo que reduce significativamente el tiempo necesario para cargar cada recurso que necesita la página web para ser desplegada.

En resumen, gracias a la CDN:

  • La página web, nuestro e-commerce, se carga más rápido, ya que las solicitudes de contenido navegan a través de un Internet menos obstruido.
  • Los usuarios/clientes están más contentos y satisfechos al poder completar su compra sin demoras.
  • El negocio de comercio electrónico es más rentable. Gracias a la mejorada disponibilidad de la tienda, las ventas comienzan a aumentar.

Beneficios de usar un CDN

Los beneficios de usar una CDN pueden variar según las necesidades de nuestro proyecto web, sin embargo podemos mencionar 4 beneficios principales que probablemente apliquen en todas las aplicaciones de un CDN:

  1. Tal y como vimos en nuestro ejemplo anterior, a través de un CDN mejoramos los tiempos de carga de cualquier sitio web, ya que distribuimos la carga del contenido a través de puntos que estén mucho más cerca de donde se realizó la petición, dónde se encuentra el usuario. Esto puede tener como consecuencia que los usuarios pasen más tiempo en el sitio y se obtengan más ventas, etc.

  2. El beneficio anterior trae como consecuencia una reducción de los costos de ancho de banda que contratamos a nuestro proveedor de hosting, ya que al aprovechar el almacenamiento en caché y otras optimizaciones que obtenemos con una CDN, también reducimos la cantidad de datos que esperamos desde el servidor principal o de origen, reduciendo significativamente los costes de alojamiento a los propietarios de un sitio web.

  3. El almacenamiento en caché que nos proporciona un CDN, nos permite un aumento de la disponibilidad y la redundancia del contenido, permitiendo mayor cantidad de tráfico y evitando fallas de hardware que puedan interrumpir el funcionamiento normal del sitio web.

  4. Una CDN está optimizada para mejorar la seguridad de los sitios web y su contenido al proporcionar mitigación de DDoS (Distributed Denial Of Service o ataque de denegación de servicio distribuido), mejoras en los certificados de seguridad, entre otros. Dado que existen muchos servidores en distintas ubicaciones, si un servidor se ve afectado por un ataque DDoS, los otros servidores de respaldo entrarán en acción y atenderán a los clientes en esa región, haciendo más difícil o incluso impidiendo la sobrecarga del servidor principal.

Además de todo lo que he mencionado, las CDN son cruciales para proporcionar servicios de computación en la nube, para la seguridad de los datos y la disponibilidad del servicio de Internet.

Hoy en día, gracias a numerosas pruebas y mejoras continuas, el trabajo realizado por el algoritmo de Lewin se volvió muy importante para la red de Internet. Las empresas por sí solas no pueden reproducir la misma eficiencia en la entrega de contenido y replicar toda la infraestructura que proveen las CDN, ya que costaría demasiado.

Inconvenientes de usar un CDN

No existen muchos inconvenientes a la hora de utilizar un CDN, sin embargo al ser un proveedor quién nos ofrece el servicio, debemos confiar en que cuentan con todo lo necesario para que su servicio esté disponible y que nuestro sitio web no se vea afectado. Por otro lado, siempre existe el aspecto de los costos que debemos evaluar a la hora de contar con este tipo de servicios del cual depende la disponibilidad de nuestro negocio.

Mejores CDN

Un proveedor de CDN debe:

  • Permitir el acceso a una red de PoP geográficamente dispersa en varios centros de datos.
  • Ayudar a los sitios web a acceder a esta red para entregar contenido a los visitantes del sitio web en un tiempo óptimo.
  • Ofrecer servicios diseñados para mejorar el rendimiento del sitio web.
  • Proporcionar asignaciones de ancho de banda de Internet escalables de acuerdo con las necesidades del sitio web.
  • Mantener la disponibilidad de los centros de datos de los servidores para reducir la posibilidad de sobrecargar las instancias individuales.

Basados en estas características, hoy en día y como en todas las tecnologías de la web, existen un gran número de proveedores de CDN, no obstante, me gustaría mencionar los 5 proveedores de CDN que considero más populares en la actualidad, cada uno con sus propias ventajas y desventajas que, como en todos los casos, elegir entre uno y otro va a depender de tus propias necesidades y lo que consideres más valioso para tu proyecto:

  1. Cloudflare
  2. Fastly
  3. KeyCDN
  4. Akamai
  5. Amazon CloudFront

Para terminar, entender todo lo que involucra el mundo de las CDN en un solo artículo es casi imposible, sin embargo, espero haber podido darte una idea mejor de que son las CDN y para que son utilizadas, de manera que a partir de este momento puedas seguir investigando si te interesa conocer mucho más respecto a ellas.


Compartir este post

También te puede interesar...

La transformación del frontend con Web Components

La transformación del frontend con Web Components

37 minutos y 49 segundos · Taller

Aprende a fondo la estructura, el uso y las ventajas de usar los Web Components en desarrollo frontend moderno.

  • Desarrollo Web
Aspectos legales del desarrollo web

Aspectos legales del desarrollo web

41 minutos y 21 segundos · Empresas

En este taller analizaremos los aspectos legales que conciernen al desarrollo web para poder elaborar los diferente textos cumpliendo el actual marco normativo.

  • Desarrollo Web
Tecnología

Instalación y despliegue de un servidor LAMP

28 Diciembre 2020 Miguel Parada
Artículos
Ver todos