Imagen ilustrativa para la entrada '¿Qué es un CDN y cuales son sus tipos?'Imagen ilustrativa para la entrada '¿Qué es un CDN y cuales son sus tipos?'

¿Qué es un CDN y cuales son sus tipos?

A estas alturas, y debido a la fama que están logrando alcanzar (y bastante merecida), es muy probable que hayas oido hablar del concepto de CDN.

El avance de las tecnologías nos ha convertido en seres muy impacientes, hasta el punto de que, si una página web no carga en menos de 2-3 segundos, la abandonamos sin tener piedad alguna.

Al fin y al cabo, en internet disponemos de casi todo, y podemos obtenerlo tan solo con un par de clicks, ¿para qué perder nuestro tiempo esperando a que una página web cargue?

Si eres un internauta, no deberías de preocuparte mucho si una página carga lento o rápido, al fin y al cabo, existen un sin fin de páginas en todo internet, pero, si la página que carga lento es de tu propiedad, seguramente esta situación si que te preocupe, y mucho.

CONTENIDO

¿Qué es un CDN?

Un CDN, de forma muy sencilla y resumida, es un conjunto de servidores que se encuentran distribuidos por todo el mundo, conectados entre sí a través de internet.

Quizás, dicho de esta forma, no se logre comprender exactamente lo que puede llegar a hacer, así que, ¿qué os parece si vemos como funciona un CDN de forma resumida?

  1. El usuario, desde su navegador, solicita un sitio web.
  2. El servidor recibe la solicitud y genera un fichero HTML, el cual será enviado de vuelta al navegador del usuario.
  3. Una vez que el navegador del usuario reciba el HTML, este comenzará a ser interpretado.
  4. A medida que el navegador va interpretando el HTML, este, normalmente, se encuentra con enlaces a ficheros (imágenes, videos, CSS, JS…) los cuales se encuentran alojados en un servidor remoto y no en el mismo servidor al que se le realizó la petición en primer lugar. Este servidor remoto es el CDN.
  5. Si no se usara un CDN, cuando nuestro navegador encuentre un enlace, hará la petición al mismo servidor para recibir el recurso.

La diferencia es que, usando un CDN, todas las peticiones hacia los recursos estáticos irán al propio CDN, y no a nuestro servidor, liberando a este de tener que responder a una gran cantidad de peticiones y haciendo, por ende, que el tiempo de carga de la web sea más rápido, entre otras cosas.

¿Cómo funciona un CDN?

Si analizas brevemente el proceso descrito anteriormente, podrás observar que gran parte del trabajo lo realiza el servidor donde está alojada nuestra web, lo cual, no es una buena practica, dado que, para que nuestro servidor sea lo más rápido y eficiente posible debería dedicarse únicamente a generar y entregar la página HTML a los navegadores que lo soliciten.

Antes de entrar en detalle y ver como funciona un CDN, nos gustaría contaoslo de forma esquemática:

  1. Disponemos de una red extensa de servidores conectados entre sí mediante internet alrededor del mundo.
  2. En estos servidores, se almacena una copia de todos los ficheros estáticos de nuestro servidor web.
  3. Cuando el navegador solicite uno de estos recursos, será el servidor CDN el que responda a la petición y no el servidor web.

Veamos cada apartado con más detalle:

Red de servidores

A pesar de que hasta ahora nos hemos referido al CDN de forma singular como si fuese un único elemento, en realidad, se trata de un conjunto de servidores repartidos por todo el mundo.

Gracias a esta característica, cuando un navegador solicita un recurso, le atenderá el servidor que esté mas próximo según su localización geográfica, reduciendo drásticamente el tiempo de envio y recepción de los datos. Recordad que la velocidad de carga de nuestro sitio es algo fundamental para el SEO

Almacenamiento local de los recursos.

En el CDN (sin importar en cual de sus servidores) se almacenarán los ficheros estáticos de nuestro sitio web. La razón es sencilla: si nuestro servidor web tuviera que responder a cada una de las peticiones para los recursos estáticos, esto afectaría negativamente al rendimiento del mismo.

Por defecto, la gran mayoría de los CDN´s actuales se encargan de realizar copias y de comprobar que los ficheros de recursos estén actualizados, por lo que no deberemos de preocuparnos en un principio por este punto.

Respuesta a las peticiones de los recursos.

Llegados a este punto, disponemos de una red de servidores, distribuidos por todo el mundo, conectados entre si mediante internet y con una copia de todos nuestro ficheros de recursos estáticos.

Sin embargo, actualmente todas las direcciones hacia estos recursos siguen con la dirección hacia nuestro servidor web, por lo que, si queremos que los navegadores descargen nuestros ficheros desde el CDN, deberemos modificar estas direcciones para que apunten a nuestros servidores del CDN.

Probablemente te hayas asustado al leer lo anterior mencionado, y te preguntes «entonces, ¿tengo que cambiar todas las direcciones de mis imágenes etc?». En un principio, si, pero si utilizas WordPress no hay porque preocuparse pues, como para la grandísima mayoría de los casos, existen plugins que se encargarán de esta tarea de forma rápida y sencilla.

Modos de funcionamiento de un CDN

En esta ocasión, nos enfocaremos principalmente en como hacerlo en WordPress. Para ello contamos con dos alternativas sencillas y rápidas:

Utilizando un plugin CDN para WordPress

Como mencionabamos anteriormente, podremos usar un plugin para realizar esta acción. Normalmente, el plugin es proporcionado por el mismo proveedor del CDN, aunque pueden existir casos en los que esto no ocurra.

Su funcionamiento es sencillo: modificar las direcciones web que se encuentren en el código HTML de las páginas para hacer que los ficheros apunten a la copia que tenemos en nuestro CDN.

En general, tan solo tendremos que instalar y configurar el plugin, una vez realizada esta acción, el proceso para cambiar las direcciones web es totalmente automático y transparente.

Utilizando el Servidor CDN como Proxy

En este caso, las direcciones web no varían, sino que son los servidores los que atienden directamente a estas direcciones, como si fueran el servidor web original.

De esta forma, cuando al servidor le solicitan un recurso, si tiene copia, la entregará al momento, pero en el caso de que no disponga de copia, redireccionará la petición al servidor web para que este le atienda.

Utilizando esta modalidad, nuestro servidor web siempre estará detrás del CDN, brindando así una capa más de seguridad, y no solo eso, sino que también al disponer de la posibilidad de almacenar una copia estática de nuestra web, se comporta como un servidor de caché.

¿Para qué sirve un CDN?

Bien, ya sabemos que es un CDN y como funciona, ¿no es así? Así que, ¿qué os parece si vemos que servicios es capaz de entregarnos un CDN?

Almacenamiento y entrega de recursos estáticos

Su principal y casi su razón de ser es almacenar y entregar recursos estáticos tales como imágenes y ficheros CSS y JS.

Como hemos comentado ya varias veces a lo largo del artículo: al disponer de una copia local de los recursos estáticos liberaremos al servidor web de tener que enviar los recursos cuando accedan a nuestra página.

Caché de los recursos dinámicos

Un recurso dinámico es aquel que es generado cada vez que se visita el sitio web.

Un ejemplo sería las páginas de WordPress, las cuales son generadas cada vez que un usuario solicita una de ellas. Esto provoca que el rendimiento del servidor web se vea afectado si la cantidad de visitantes es elevada al tener que generar cada una desde cero.

Para evitarlo, podemos configurar un CDN en WordPress para que almacene una copia estática de las páginas dinámicas y actúe como caché.

Tened en cuenta que, no todos los CDN para WordPress ofrecen este tipo de servicio, y que, en la gran mayoría de los casos, esta opción suele ser de pago.

Respuesta rápida sin importar el país

Normalmente, cuando un usuario envía una petición a nuestro servidor web, la enviará a un único servidor que está alojado en un lugar en concreto del mundo, siendo la distancia entre el cliente y el servidor uno de los principales determinantes de la velocidad de carga y el principal en cuanto al tiempo de respuesta.

Sin embargo, al utilizar un CDN y al contar con varios servidores al rededor del mundo, será el servidor más cercano siempre el que responderá la petición, garantizando de esta forma que los tiempos de respuesta y por ende de carga sean los más optimos posibles.

Optimización de los recursos del servidor web

¿Recordáis lo que comentabamos al principio del artículo sobre como era el proceso de generación y descarga de una web?

Pues ahora, al tener los recursos estáticos alojados en nuestro CDN, el servidor web podrá ser libre de estas tareas y así disponer de más potencia disponible para realizar otro tipo de trabajos, como por ejemplo, responder una mayor cantidad de peticiones.

Capa de protección contra ataques extra

Sobretodo contra ataques de Denegación de Servicio, los cuales consisten en  realizar un alto número de accesos de forma simultánea al servidor con el objetivo de saturarlo y que así no pueda atender a las peticiones de los usuarios legítimos.

Normalmente, los servidores CDN disponen de mecanismos para detectar a tiempo este tipo de ataques y así poder contrarrestrarlos.

Sin embargo, y dicho esto, no se debe de utilizar un CDN como herramienta principal para protegernos de este tipo de ataques, puesto que, nuestro servidor web seguirá estando accesible y los atacantes podrán dar con el.

¿Solo puedo utilizar un CDN en WordPress?

Que WordPress sea el gestor de contenidos mas utilizado no significa que el uso de un CDN sea exclusivo de este, aunque, si que es verdad, que los proveedores de este tipo de servicio suelen dedicar más esfuerzos en ofrecer soluciones que se adapten a las webs creadas con WordPress, además de plugins para integrar sus servidores con el nuestro.

Sin embargo, si no usas WordPress o tu proveedor CDN no dispone de algún plugin, siempre puedes contactar con el servicio técnico y preguntar si existe una alternativa que sea viable y de fácil implantación.

¿Cómo puedo instalar un CDN en WordPress?

Debido a que existen un sin fin de gestores de contenido, en esta ocasión hablaremos únicamente de como realizar la instalación de un CDN únicamente en WordPress.

En general, este proceso no presenta muchas dificultades gracias a los plugins, aunque cada proveedor es un mundo, y cada plugin tendrá sus propias peculiaridades a la hora de ser instalado y configurado.

A continuación, veremos las diferentes formas que existen para instalar un CDN en WordPress:

Redireccionar las URLs de los recursos

Para esta modalidad y de forma general, deberemos de realizar dos pasos, aunque estos pueden variar según el proveedor:

  1. Obtener una cuenta en una plataforma CDN y activar el sitio web que utilizará el CDN. Normalmente, a este apartado se le asgina el nombre de «zona», aunque puede variar. A esta «zona» se le asociará una URL.
  2. Instalar el plugin del CDN y configurarlo. Para ello bastará con añadir la URL de la «zona» y aplicar los cambios. Si todo ha salido bien, el plugin se encargará de redireccionar todos los recursos al CDN.

Un ejemplo que trabaje bajo esta modalidad sería AWS CloudFront el cual ofrece un periodo gratuito (durante un año), aunque pasado este, nos pedirá que nos suscribamos a algún plan de pago de los que dispone.

Otro ejemplo sería KeyCDN, el cual no ofrece periodo de prueba gratuito como en el caso anterior, pero si precios muy competentes y unas buenas características.

Servidor CDN como Proxy

Para utilizar esta modalidad, deberemos de realizar, al menos, los siguientes dos pasos:

  1. Obtener una cuenta en una plataforma CDN y activar el sitio web. Una vez finalizado el proceso, nos proporcionarán servidores de nombre para el dominio de nuestro sitio web.
  2. Modificar los servidores de nombres para que apunten a los servidores de nombres del CDN. Una vez modificado, cualquier acceso a nuestro sitio web se hará siempre y de forma exclusiva a través de los servidores.

En esta modalidad, no es necesario la instalación de un plugin de CDN para WordPress, puesto que, con las modificaciones indicadas anteriormente todo funcionará correctamente.

Un ejemplo de proveedores que ofrezcan este tipo de servicio puede ser CloudFlare, el cual ofrece un plan gratuito sin límite de tiempo y con una serie de características más que suficientes para sitio pequeños y medianos.

Conclusión

Pueden ser múltiples las razones que nos lleven a plantearnos usar un CDN, desde la optimización de nuestro sitio hasta la de añadir una capa extra de seguridad contra atacantes.

Pese a la complejidad técnica que hay realmente detrás de este tipo de servicio, los proveedores han sabido crear herramientas de fácil instalación y configuración para la mayoría de los gestores de contenido, entre ellos WordPress.

Un CDN no tiene porque ser caro, es más, existen planes totalmente gratuitos, aunque estos suelen disponer de limite de tiempo, tráfico o visitas, incluso ambas.

¿Y tú?, ¿te animas a probar un CDN? Dejanos en los comentarios tu opinión sobre estos o cualquier duda que tengas, estaremos encantados de responderte siempre.

 

Cómo realizar una auditoría a nuestro sitio web BEM: La mejor forma de organizar tus clases en CSS