Macklus.Net

Fastly, la CDN basada en varnish

background_fastly

Una CDN (o red de distribución de contenidos ) es una red de computadores dedicada a distribuir los contenidos de sus clientes. Al tener las CDN servidores en muchas localizaciones distintas, siempre sirven a los clientes desde el servidor más cercano, siendo así más rápido que hacerlo de la forma normal.

Además, la CDN es capaz de guardar el contenido durante el tiempo que nosotros queramos, lo que nos permite reducir la carga de nuestros servidores, ya que no es necesario generar todo el contenido con cada nueva petición.

Alguna de las soluciones CDN más conocidas son:

Si bien cada CDN tiene características que les distingue de las demás, en general el funcionamiento (e incluso la forma de trabajo) es muy similar entre ellas, por lo que elegir una u otra dependerá de las características del proyecto que vayamos a implementar.

Aunque no es la más conocida, Fastly es una de las CDN más potentes con la que he podido trabajar. Si bien puede ser muy compleja de configurar (dependiendo de lo que queramos hacer) la flexibilidad y potencia que nos ofrece la convierte en una opción muy profesional a la hora de llevar a cabo proyectos a cualquier escala.

Las características de Fastly

Las principales características de Fastly son:

Si bien para mi la principal características de Fastly es su configuración con VCL, que permite que cualquier persona que conozca Varnish pueda pasar a usar Fastly sin problemas, además de muchas otras ventajas como usar un lenguaje autoexplicativo, sencillo de leer y entender, potente, que simplifica el uso de configuraciones y condiciones casi ilimitadas y que permite gestionar todos los puntos de la petición de forma muy simple.

El lado malo de Fastly

Aunque Fastly es un producto muy potente, también tiene características que podemos considerar como negativas, como por ejemplo:

El lado más potente de Fastly

La auténtica potencia de Fastly se observa cuando programamos un sitio con soporte ESI, y un tiempo de caché ilimitado. ESI es un sistema de etiquetas que nos permite dividir una página web en distintas partes (por ejemplo encabezado, menú, pie, contenido, menú derecho, etc). Cada uno de esos trozos puede llevar un tiempo de caché distinto, y podemos eliminar de la caché solo el trozo que hayamos cambiado.

Es decir, si solo cambiamos el contenido de un menú lateral, no tiene sentido volver a generar y enviar todo el contenido de nuevo, sino solo el contenido que ha cambiado. Fastly es capaz de gestionar tanto ESI (dividir la web en trozos) como los tiempos de caché (el tiempo que guarda un trozo antes de volver a pedirlo al servidor), y solo nos va a pedir aquellos contenidos que han caducado o han ido cambiando, por lo que la carga contra el servidor es muy baja.

A modo de ejemplo, actualmente gestiono un medio online con Fastly que sirve más de 2 millones y medio de páginas, de una aplicación muy pesada, con solo 1 servidor frontal, que sirve entre 10 y 20 peticiones por minuto, aunque desde la CDN se estén sirviendo más de 1000 peticiones por minuto. Como además el purgado de Fastly es casi inmediato, podemos mantener una caché infinita e ir avisando a Fastly de los elementos que han cambiado, para que los refresque de nuevo. El coste total de tráfico y peticiones en la CDN no supera los 100$, que para un proyecto empresarial es un coste totalmente aceptable.

Si queréis probar esta CDN, podéis registraros y usar gratis hasta 50$ para ver su funcionamiento.