Programacion · web · rendimiento
Que es una CDN?
Una CDN (content delivery network, red de distribucion de contenido) es un conjunto de servidores repartidos por muchas ubicaciones que guardan copias de tu contenido estatico - imagenes, CSS, JavaScript, fuentes, videos - y sirven a cada visitante desde un servidor geograficamente cercano. El objetivo es simple: acortar la distancia que debe recorrer una peticion, para que las paginas carguen mas rapido y tu servidor principal trabaje menos. Si tu sitio esta alojado en una sola ciudad, un visitante al otro lado del planeta ya no tiene que cruzar el mundo para cada archivo.
El problema que resuelve
Cuando tu sitio vive en un solo servidor, cada peticion - de cada pais - tiene que llegar a esa unica maquina y volver. La distancia cuesta tiempo: cuanto mas lejos esta el visitante, mas latencia se acumula, y mas cargado queda tu servidor a medida que crece el trafico. Una CDN responde a ambos problemas colocando copias de tus archivos mas cerca de la gente y quitando la mayor parte de la carga de peticiones de tu origen.
Servidores edge y puntos de presencia
Los servidores que una CDN usa para cachear y servir contenido suelen llamarse servidores edge, situados en el "borde" (edge) de la red, cerca de los usuarios, en lugar de en tu origen central. Grupos de estos se colocan en centros de datos por todo el mundo, a veces llamados puntos de presencia (PoP). Cuando alguien pide un archivo, la CDN lo dirige a un servidor edge cercano en lugar de a tu origen. Como ese servidor esta cerca, el viaje de ida y vuelta es mas corto y la entrega mas rapida.
Cache hit, cache miss y el origen
El mecanismo central de una CDN es la cache. La primera vez que se le pide a un servidor edge un archivo que no tiene, eso es un cache miss: el edge obtiene el archivo desde tu servidor de origen, lo envia al visitante y guarda una copia. El siguiente visitante en ese mismo edge obtiene un cache hit - el archivo ya esta ahi y se sirve de inmediato, sin tocar el origen en absoluto.
peticion -> servidor edge mas cercano
cache HIT -> sirve la copia guardada (rapido, origen intacto)
cache MISS -> obtiene del origen, sirve, luego guarda para la proxima Por eso una CDN acelera la entrega y descarga el origen: una vez que el contenido esta cacheado en el edge, la mayoria de las peticiones se atienden sin llegar nunca a tu servidor. Ante un pico de trafico, la red edge absorbe el grueso de la carga.

TTL e invalidacion: mantener la cache al dia
Una copia en cache no puede vivir para siempre, o los visitantes seguirian viendo una version antigua tras actualizar un archivo. Dos mecanismos se encargan de esto:
- TTL (time to live): a cada elemento cacheado se le da una vida util, normalmente definida por cabeceras de cache HTTP como
Cache-Control. Cuando el TTL expira, el edge trata el elemento como caducado y vuelve a comprobar el origen antes de servirlo de nuevo. - Invalidacion (purga): cuando despliegas un cambio y no puedes esperar al TTL, le dices a la CDN que descarte archivos concretos de la cache, de modo que la siguiente peticion obtenga la version fresca desde el origen. Un truco comun que evita cualquier purga es el cache busting - cambiar el nombre del archivo o anadir una version como parametro, por ejemplo
style.abc123.css, para que se pida una URL nueva y fresca.
Contenido estatico vs contenido dinamico
Las CDN brillan con el contenido estatico: archivos iguales para todos y que cambian poco, como imagenes, hojas de estilo, scripts y descargas. Se cachean limpiamente y pueden servirse desde el edge durante mucho tiempo. El contenido dinamico - un panel personalizado, o una respuesta que depende de quien haya iniciado sesion - es mas dificil de cachear, porque la respuesta difiere en cada peticion. Las CDN modernas aun ayudan aqui con funciones como la reutilizacion de conexion y ejecutar pequenos fragmentos de logica en el edge, pero la ganancia clasica y mayor sigue siendo cachear los recursos estaticos cerca de los usuarios.
Que mas hace una CDN habitualmente
Ademas del cache, la mayoria de las CDN incluyen extras utiles. Suelen terminar el TLS (HTTPS) en el edge y aplicar compresion para que los archivos viajen mas pequenos y cifrados. Muchas tambien anaden proteccion frente a avalanchas de trafico y absorben la carga que de otro modo golpearia tu origen. Entre las CDN reales y muy usadas estan Cloudflare, Fastly y Akamai; para bibliotecas de codigo abierto, CDN publicas como jsDelivr sirven paquetes directamente desde una red edge global.
Donde encaja una CDN con tu hosting
Una CDN no reemplaza tu hosting - se coloca delante de el. Tu servidor o VPS sigue siendo el origen que guarda los archivos reales y ejecuta tu aplicacion; la CDN cachea y entrega copias de las partes cacheables. Tambien encaja de forma natural con un proxy inverso delante de tu app: el proxy enruta y termina el TLS en tu origen, mientras la CDN gestiona la capa edge global. Aun asi necesitas un hosting de origen solido debajo de todo.
FAQ
Reemplaza una CDN a mi hosting? No. Tu hosting es el origen que almacena los archivos reales y ejecuta tu app. Una CDN cachea y sirve copias de las partes estaticas cacheables desde servidores cercanos a tus visitantes. Necesitas ambos: un origen fiable mas la capa edge delante de el.
Cual es la diferencia entre un cache hit y un cache miss? Un hit significa que el servidor edge ya tiene el archivo pedido en cache y lo sirve de inmediato. Un miss significa que no lo tiene, asi que obtiene el archivo desde tu origen, lo sirve y guarda una copia para que la siguiente peticion sea un hit.
Que es el TTL? Time to live: cuanto tiempo se considera fresco un elemento cacheado, normalmente definido por cabeceras de cache HTTP. Cuando el TTL expira, el edge vuelve a comprobar el origen antes de servir el elemento de nuevo, de modo que las actualizaciones acaban llegando a todos.
Puede una CDN cachear contenido dinamico? En parte. El contenido que difiere segun el usuario es dificil de cachear directamente, pero las CDN aun lo aceleran con reutilizacion de conexion, compresion y logica en el edge. La ganancia mayor y mas simple sigue siendo cachear recursos estaticos como imagenes, CSS y JavaScript cerca de los usuarios.
El servidor de origen detras de tu CDN
Una CDN cachea copias de tu contenido, pero aun necesita un servidor de origen real que guarde los archivos fuente y ejecute tu app. Infomaniak - un proveedor suizo respetuoso con la privacidad - ofrece VPS y servidores cloud que puedes usar como ese origen, y luego pones una CDN delante para servir los recursos estaticos desde el edge.
Ver Infomaniak Cloud →Enlace de afiliado - ayuda a mantener estas guias gratuitas.