¿Cómo funciona un CDN? ¿Qué problema está tratando de resolver?

¿Qué es el CDN?

Una red de entrega de contenido ( CDN ) es un sistema de servidores distribuidos (red) que entregan páginas y otro contenido web a un usuario, en función de las ubicaciones geográficas del usuario, el origen de la página web y el servidor de entrega de contenido.

  • Akamai y Limelight son el proveedor líder de servicios de red de entrega de contenido (CDN) para la entrega de medios y software, y soluciones de seguridad en la nube.
  • Las empresas de medios y comercio electrónico, como Netflix y Facebook, utilizan el CDN para acercar el contenido al consumidor. Por lo tanto, el consumidor utilizará los datos proporcionados por CDN en nombre del proveedor original (por ejemplo, Facebook)

¿Qué problema está tratando de resolver?

La idea principal detrás de CDN es acercar el contenido al consumidor para un acceso más rápido.

Antes de que CDN surgiera, la solicitud del consumidor debe realizar un viaje completo de ida y vuelta desde la fuente al servidor original. Esto agrega una latencia considerable para un solo paquete (en realidad, se requieren múltiples intercambios de ida y vuelta para recibir un contenido, especialmente si se va a cifrar a través de un túnel IPSec o TLS). Todas las solicitudes deben ir a ese único servidor.

Este arreglo enfrenta los siguientes problemas:

  1. Mayor dificultad para proporcionar garantía de QoS para todos los clientes
  2. Disminución de la probabilidad de disponibilidad en caso de ataque DDoS.

CDN ha aparecido para remediar los problemas anteriores.

¿Cómo se entregan los contenidos a través de CDN?

  • Supongamos que un consumidor emite una solicitud para el recurso http://www.netflix.com/WiPlayer?…. El navegador de ese consumidor primero se pondrá en contacto con su solucionador de DNS local para obtener la dirección IP de www.netflix.com para que luego pueda solicitar el contenido.
  • Un proxy basado en DNS (enrutador de recursos) en el servidor CDN redirigirá dicha consulta DNS a las cachés de borde apropiadas . Request Router tiene en cuenta otros factores además de la ubicación geográfica del consumidor (que se identifica mediante la dirección IP de origen de la consulta); También considera la carga de los servidores de caché perimetrales existentes, y probablemente algunos otros criterios de selección patentados. Después de identificar un caché de borde apropiado, el Enrutador de solicitud devuelve su dirección IP correspondiente al resolutor local del cliente.
  • Luego, el navegador del consumidor se pone en contacto con el caché de borde para el contenido. Para el navegador, no hay diferencia entre buscar contenido de este caché o del productor original.
  • Si la memoria caché perimetral necesita contactar al productor original por algún motivo, por ejemplo, si la identidad del cliente necesita ser verificada y su acceso al contenido solicitado necesita ser autorizado, el servidor de memoria caché perimetral se comunicará con el servidor productor apropiado para obtener esta información o realizar estos controles. Para Akamai, estas solicitudes a menudo son atendidas por lo que se llama HyperCache, una “infraestructura de almacenamiento en caché HTTP común para el operador, el cliente del operador y el contenido OTT”.

Ventaja de usar CDN

  1. Distribución de tráfico
  2. Reducción de la latencia de recuperación de contenido.
  3. Se incrementa la experiencia general del usuario del cliente
  4. Seguridad
  5. Mayor rendimiento
  6. Costo y complejidad reducidos.
  7. Escalabilidad ilimitada

Nota:

Cachés de borde: los nodos cerca de los consumidores se denominan comúnmente cachés de borde, ya que almacenan en caché el contenido cerca de los consumidores o más bien en el borde de la red.

Content Delivery Networks nació de una idea simple: mutualizar la infraestructura de entrega y ofrecerla como un servicio. En ese sentido, aunque pocas personas lo han notado, los CDN son el primer servicio en la nube. Mi analogía favorita es que los CDN son para la entrega de contenido digital, lo que FedEx, UPS o DHL (o ahora Amazon) son para la entrega de bienes reales. Todas estas compañías han implementado una logística mundial para asegurar la entrega.

La logística de entrega de CDN se compone principalmente de 3 componentes:

  • Almacenamiento en caché: miles de servidores proxy-cache distribuidos por todo el mundo.
  • Enrutamiento: generalmente el enrutamiento DNS de GeoIP o Anycast que ayuda a un usuario a realizar su solicitud al servidor de almacenamiento en caché más cercano.
  • Red: capacidad de ancho de banda reservada en múltiples operadores e ISP para garantizar una alta velocidad entre un servidor de almacenamiento en caché y el usuario, el origen u otro servidor de almacenamiento en caché (consulte la arquitectura jerárquica a continuación).

Desde el punto de vista de la arquitectura, hay 2 tipos de CDN.

  • Básico: (1) el usuario identifica el servidor más cercano a través de DNS. (2) el usuario solicita el contenido al servidor más cercano. (3) si el servidor no tiene el contenido en su caché, lo descarga desde el origen, lo almacena en caché y lo devuelve al usuario. Esta arquitectura básica funciona bien para contenido estático con alta demanda en la misma ubicación con una entrega rápida de última milla si la proporción de aciertos es alta.
  • Jerárquico: (1) el usuario identifica el servidor más cercano a través de DNS. (2) el usuario solicita el contenido al servidor más cercano. (3) si el servidor no tiene el contenido en su caché, lo descarga del servidor más cercano al origen, lo almacena en caché (o no) y se lo devuelve al usuario (4) si el servidor cercano al origen no tener el contenido en su caché, lo descarga desde el origen, lo almacena en caché (o no) y lo devuelve al servidor exigente. Esta arquitectura jerárquica funciona bien para contenido estático y dinámico porque se beneficia de la última milla rápida como en la arquitectura básica; rápido último y medio millas rápidas si el contenido se solicita a menudo incluso si era de diferentes ubicaciones; y rápidas últimas y rápidas millas medias y rápidas primeras millas incluso para contenido dinámico.

Las CDN resuelven dos problemas técnicos con alto impacto comercial:

  • Disponibilidad: gracias a la infraestructura mutualizada, los CDN tienen miles de servidores para cumplir con las solicitudes. Como resultado, la entrega puede resistir la interrupción de múltiples servidores sin afectar la entrega. Las CDN también ayudan a resistir grandes picos de tráfico a medida que descargan los servidores de origen. Esta es la primera razón del éxito de CDN porque ayuda a las compañías de medios a resistir eventos como el 11 de septiembre y las compañías de comercio electrónico a resistir las ventas y el período de fin de año sin un exceso de capacidad de planificación.
  • Alto rendimiento: los CDN también ayudan a reducir la latencia para entregar contenido. Hay toneladas de estudios de Google, Amazon y Yahoo que dicen que el rendimiento web afecta la experiencia del usuario, la participación del usuario y los ingresos. En WebPerf IO (la startup de inteligencia de rendimiento web que cofundé), hemos medido en un gran sitio web de comercio electrónico que los usuarios con un tiempo de carga promedio de 8 segundos convierten 2 veces menos que los usuarios con un tiempo de carga de página de 4 segundos. Sin embargo, tenga en cuenta que los CDN son solo una clave del sitio web rápido (para un sitio web nacional con un proveedor de alojamiento bien conectado, seguir las mejores prácticas de codificación, canalización de activos y contenido de terceros es más barato y mucho más eficiente).

¿Qué es un CDN y qué problema intenta resolver?

  1. CDN, que significa Content Delivery Network, esencialmente está tratando de resolver los problemas de Internet utilizando diversos enfoques.
  2. Para empezar, hace mucho tiempo, cuando la “World Wide Web (internet)” acababa de llegar al mundo, podríamos anticipar un problema mucho mayor que surgiría, que es la “World Wide Wait”.
  3. Hay muchos otros problemas de Internet que surgen de los protocolos en los que trabaja Internet, es decir, BGP (protocolo de enrutamiento), TCP (protocolo que establece la comunicación) y HTTP (protocolo que realmente se utiliza para transferir datos).
  4. BGP (Border Gateway Protocol) no es un protocolo de enrutamiento óptimo, ya que no considera la condición del tráfico al identificar la ruta y solo tiene en cuenta la cantidad mínima de saltos. Esto solo significa que la ruta decidida por BGP puede tomar más tiempo en el proceso de comunicación a pesar de que los conteos de saltos son mínimos.
  5. TCP (Protocolo de control de transmisión) es un protocolo de inicio lento y no comienza a usar la capacidad de carga máxima de la red para comenzar, sino que aumenta gradualmente su capacidad para utilizar la capacidad de carga. Existe un concepto de tamaño de ventana de congestión TCP que se puede leer para comprender más al respecto.
  6. HTTP es un protocolo que funciona sobre BGP y TCP y para representar una página HTML al final del usuario, se necesitan múltiples transacciones HTTP que solo resaltan el problema de la composición.
  7. En resumen, un protocolo de enrutamiento subóptimo, un protocolo de transmisión lenta y un navegador web hablador que utiliza múltiples transacciones HTTP para representar una página solo agrega un efecto compuesto que degrada la experiencia del usuario.
  8. Hay muchos otros problemas de internet (y todavía puedo seguir y seguir) de los que no estaría hablando en profundidad ya que es un tema de discusión separado en sí mismo.

¿Cómo funciona un CDN?

  1. CDN esencialmente trabaja para mejorar la experiencia del usuario al hacer que Internet sea más rápido.
  2. Las CDN utilizan algo llamado servidores perimetrales que se encuentran entre el usuario final y la infraestructura de origen (infraestructura del cliente). Estos servidores están muy bien distribuidos geográficamente (también conocidos como puntos de presencia, POP) y también, se hacen esfuerzos para garantizar que estos servidores estén más cerca de los usuarios finales.
  3. En estos servidores perimetrales, el contenido estático se almacena en caché y se entrega a los usuarios finales cuando lo solicitan, lo que significa que el rendimiento es mucho mejor debido a la distancia reducida que la solicitud de un usuario necesita viajar para obtener datos. Además, proporciona la descarga del cliente para su infraestructura de origen, ya que se sirve una gran cantidad de contenido directamente desde los servidores perimetrales (que son administrados por CDN).
  4. ¿Qué pasa con el contenido dinámico? ¿Tiene CDN alguna función para optimizar la entrega de contenido dinámico? Sí, y puedo hablar sobre Akamai, hay características para contrarrestar el desafío impuesto por BGP, lo que significa un mejor rendimiento incluso si necesitamos conectarnos al origen. Supongo que otros CDN también tienen su propia solución para el mismo problema.
  5. En Akamai, también hay funciones de optimización de TCP, disponibles para optimizar el problema de inicio lento.
  6. Hay muchas otras características que puede ofrecer un CDN y simplemente no se trata de contenido estático, que es una percepción extremadamente errónea.

Espero que ayude y brinde a cada lector una visión general de alto nivel 🙂

Gracias por el A2A!

Un CDN resuelve varios problemas, o al menos evita que algunas cosas se conviertan en un problema. Los aspectos de rendimiento y disponibilidad están cubiertos en las otras respuestas, pero quiero enfatizar la importancia o la disponibilidad global.

Solía ​​ejecutar un sitio web alojado en el Reino Unido que recibía un número bastante elevado de visitantes de la India, interesados ​​en los temas sobre los que escribí. Además, los visitantes de la India hicieron una cantidad de comentarios por encima del promedio.

Como ya sabrás, Google tiene en cuenta los tiempos de carga cuando se trata de las clasificaciones de los motores de búsqueda. Al final resultó que, mi sitio funcionó bastante bien en la India debido a la CDN en la que se estaba ejecutando. India todavía no tiene las instalaciones de alojamiento más óptimas, por lo que mi sitio fue en muchos casos más rápido que los sitios alojados localmente.

Es importante que consulte el mapa de red de Puntos de presencia (POP) para asegurarse de que un proveedor de CDN tenga presencia (servidores o incluso su propio centro de datos) en el país al que desea dirigirse, o al menos cerca. Asia es difícil, por ejemplo, hay una gran cantidad de distancia entre todas las ciudades principales).

Además, no es raro que se caiga un POP completo, especialmente con proveedores baratos o gratuitos. Eso no es un problema cuando hay muchos COP adyacentes como en los EE. UU. O Europa, pero en Asia esto podría conducir a tiempos de carga lentos serios cuando la cobertura es mínima.

Los proveedores de CDN más grandes están bien cubiertos en todo el mundo, pero también son más caros que los más pequeños. Cada proveedor debe tener un mapa POP en su sitio, así que asegúrese de revisarlo.

Content Deliery Networks ayuda con varias cosas, pero dos de las más importantes son la latencia y el costo.

Si las personas de todo el mundo usan su servicio web, las personas más cercanas a sus servidores tendrán la latencia más baja cuando se carguen sus páginas web, y las personas más alejadas experimentarán más latencia debido a la distancia física y la cantidad de dispositivos que necesita el contenido. saltar para alcanzarlos.

Puede mitigar ese problema ejecutando servidores en múltiples ubicaciones, por supuesto. O puede contratar un servicio de entrega de contenido para que lo haga por usted. Aquí es donde el costo comienza a ponerse interesante.

Si lo hace usted mismo, debe implementar servidores en varias ubicaciones, comprar ancho de banda de proveedores de red en cada ubicación, etc. Como cliente (relativamente) pequeño, pagará más por todo que una empresa que ya tiene muchos servidores y ancho de banda, como un CDN, por ejemplo.

Es muy probable que puedan hacer un mejor trabajo que usted, y a un costo menor, porque ya tienen instalaciones ubicadas en todo el mundo (arrendadas a grandes precios) y mucho ancho de banda (comprado a grandes precios) y sistemas para clone su contenido y distribúyalo a través de su red (perfeccionado durante años de experiencia con sus otros clientes) y personas que son muy hábiles para mantener esos sistemas (nuevamente, con años de experiencia en distribución de contenido).

Es un ejemplo clásico de “economía de escala”. El costo de crear un CDN global es $ X. El costo de agregar un cliente más a un CDN existente que ya atiende a un grupo de clientes es una pequeña fracción de $ X.

Por lo tanto, puede elegir entre hacerlo usted mismo por $ X o contratar a alguien para que lo haga por una pequeña fracción de $ X.

No es ciencia de cohetes, hay un montón de compañías que son buenas en eso, y todas compiten por su negocio, y todas pueden darle una latencia más baja por un costo menor que si lo hiciera usted mismo. Y el costo de ejecutar su servicio en realidad podría disminuir cuando contrata el CDN, porque las demandas de ancho de banda para su servicio disminuirán cuando el CDN se haga cargo de la distribución de los recursos estáticos.

Los archivos de su sitio se almacenan en un servidor en un centro de datos. Cuando un navegador solicita una página, se conecta al servidor web, generalmente a través de muchas otras máquinas como enrutadores y conmutadores, que enviarán al navegador los archivos necesarios. Si el navegador está cerca del servidor, los archivos no tardarán mucho en atravesar Internet. Si el navegador está en una computadora al otro lado del mundo, o incluso al otro lado del país, puede llevar un tiempo relativamente largo. El navegador tiene que enviar solicitudes al servidor, y el servidor tiene que enviar datos al navegador, un proceso que se repite muchas veces para cada solicitud de página.

Como se puede imaginar, cuanto más separados estén el navegador y el servidor, más tardará en obtener los archivos. Para largas distancias, la latencia puede ser considerable, creando una experiencia menos que ideal para un visitante o comprador.

Uno de los trabajos de una red de entrega de contenido es reducir esa latencia a un nivel aceptable. Un CDN es una red de servidores en muchos centros de datos diferentes en todo el mundo. Los archivos de su sitio se replican en cada uno de estos servidores, y cuando los visitantes solicitan una página de su sitio, son redirigidos al servidor más cercano en la CDN. Los servidores de la CDN se denominan nodos de borde. Para obtener un poco más de información, mire esta publicación reciente del blog de mi empresa: ¿Cómo una red de distribución de contenido hace que su sitio sea más rápido?

Una red de entrega de contenido ( CDN ) es un sistema de servidores distribuidos (red) que entregan páginas web y otro contenido web a un usuario en función de las ubicaciones geográficas del usuario, el origen de la página web y un servidor de entrega de contenido.

http://wpseer.com/best-cdn-wordp

En términos más simples,

Ejemplo

Un usuario de Asia intenta acceder a un archivo MP3 alojado en un servidor en EE. UU.

Un CDN servirá ese archivo MP3 al usuario desde un servidor más cercano al usuario, posiblemente uno en Asia.

¿Cómo ayuda esto?
Reduce la carga en el servidor de EE. UU.

Aumenta la velocidad a la que el usuario obtiene su archivo.

¡Todos están felices!

Es más fácil obtener un café si hay varios puestos alrededor de la ciudad que venden el mismo café en lugar de ir a la sede para obtener el café.

Las CDN resuelven una serie de desafíos. Aquí hay un resumen:
Rendimiento : los CDN tienen que ver con la velocidad y la entrega rápida de contenido. La forma en que lo logran es almacenar en caché el contenido en todo el mundo y acercarlo lo más posible a los usuarios. Un usuario final será enrutado al siguiente punto de presencia disponible (POP) basado en IP Anycast, GeoIP y otras tecnologías.
Escalabilidad : los picos de tráfico se pueden gestionar fácilmente con un CDN. Por ejemplo, una actualización de software puede requerir una gran cantidad de ancho de banda en un corto período de tiempo. Algunos servidores no pudieron manejar eso, pero con un CDN se aprovechará la carga.
Disponibilidad : los CDN están diseñados para la mejor confiabilidad. Si un servidor deja de funcionar, las solicitudes se enrutarán automáticamente al siguiente servidor disponible. El usuario no notará nada.
Costo : administrar y operar docenas de servidores es un desafío. Las empresas a menudo llegan al punto, donde necesitan enfocarse en su negocio principal y no vale la pena construir su propia red de entrega de contenido.
Seguridad : los CDN a menudo ofrecen características de seguridad adicionales también para ofrecer protección adicional.

¿Sabes cuando ves youtube? Si está sentado en Londres, lo más probable es que le sirva los videos desde un centro de datos del Reino Unido …
Si estás en Tokio, es probable que Youtube te muestre esos videos de un centro de datos en Japón.
La tecnología que se encarga de enviarlo a la ubicación con el mejor rendimiento (generalmente la más cercana a usted) se basa en un CDN, y es lo que debería alimentar a todo Internet.
Actualmente, solo ~ 6% de todos los sitios web tienen una tecnología similar a CDN que ayuda a mejorar la experiencia del usuario.