La razón por la que hacen esto es debido a que a menor contenido para hospedar en sus servidores, menos carga tendrán y mientras más contenido puedan almacenar cerca del usuario, más rápida será la descarga. El CDN más famoso es probablemente Akamai, quienes casi que corren su propia internet paralela. Akamai y otros proveedores de CDN cuestan mucho dinero, así que no son para nosotros los mortales.

Pero gracias a Google, cualquier persona puede correr su propio CDN de forma gratuita en los servidores de Google. Es realmente fácil de configurar y guardar archivos para descargas, hojas de estilos, etc. En Google en lugar de tu propio sitio, además que toma la carga fuera de los servidores (y por lo tanto consume menos ancho de banda en tu cuenta de hosting) aumentando la velocidad para los usuarios finales.

Es una situación ganar-ganar y además es realmente bueno! Si estás interesado en más información sobre como obtener un desempeño máximo para tu sitio web, te recomiendo que leas este excelente post Despeño por unos centavos en 24ways.

¿Qué es el Google App Engine?

google app engineUtilizando el Google App Engine, puedes ejecutar aplicaciones web en los servidores de Google. Esto significa que puedes beneficiarte de la gigante granja de servidores de Google y también significa que es muy fácil escalar e integrar con otras aplicaciones de Google (por ejemplo, utilizar la autenticación de Google para tus aplicaciones).

Actualmente debes escribir tus aplicaciones en Python (no te preocupes: no hace falta codificar para nada si utilizarás Google App Engine como CDN, sigue leyendo), pero esperamos que pronto se expandan a otros lenguajes (personalmente yo quisiera correr PHP y CodeIgniter en Google App Engine!).

El App Engine es la respuesta de Google a los muy exitosos servicios de Amazon S3 (para almacenamiento) y EC2 (para ejecución). Los servicios de Amazon son muy poderosos, pero requieren un nivel de conocimiento técnico más profundo para utilizar que con Google App Engine.

Actualmente Google App Engine es un Preview Release (=beta), pero es gratuito para cualquier persona para registrarse, todo lo que necesitas es una cuenta de Google y un número celular (más sobre esto luego, en particular si no cuentas con un número de Estados Unidos). Lo que obtienes son 500mbs de almacenamiento gratuito y alrededor de 5 millones de páginas vistas gratis al mes.

Si usas más hay un costo bajo (mira el Google App Engine blog para más detalles). El costo para estos recursos extras es casi el mismo que el de Amazon Web Services, y con lo que ya ofrecen gratis y la facilidad de uso que tiene Google App Engine es una ganga.

Cómo configurar tu propio CDN

Para utilizar Google App Engine como tu propio CDN personal necesitas instalar algunas cosas en tu computadora y editar unos archivos de configuración. Todo este trabajo se realiza una sola vez y luego lo que necesitas es correr un simple programa para subir los archivos a Google.

Siento decir que estos scripts que debes bajar son para Windows únicamente, si estás en Mac o usando Linux entonces tendrás que hacer tu propio script que realice las acciones que tiene deploy_digitalistic_cdn.bat (y si lo haces por favor agrega un comentario a esta nota para que todos lo podamos usar).

1. Ya que el motor de Google App solo funciona con el lenguaje de programación Python, necesitas descargar e instalar Python en tu computadora. Si estas corriendo Mac o Linux, es muy probable que ya cuentes con Python instalado, así que puedes saltar este paso.

Descarga el archivo correcto de instalación para tu sistema operativo para Python 2.5.2 de http://www.python.org/download/ e instala. Usa la configuración por default, excepto instalarlo bajo “Archivos de Programa” en lugar de directamente en el disco C (O instalarlo donde quieras, pero luego tendrás que asegurarte de modificar los scripts a continuación.

2. Descarga el SDK del motor de Google APP desde http://code.google.com/appengine/downloads.html e instalo. Durante la instalación del SDK va a revisar que tengas instalado Python o no, así que si tienes algún problema con la instalación de Python lo sabras en este paso. El Google App Engine SDK es necesario para escribir y subir aplicaciones a Google. Solo utiliza las opciones ya establecidas cuando instales el SDK.

3. Regístrate para el Google App Engine en appengine.google.com. Para esto crear una cuenta de Google (tu dirección de Gmail por ejemplo y si no tienes es gratis crear una).

4. Una vez que hayas ingresado al servicio, crear una aplicación, así que pulsa el botón de “Create an application” y dale a la aplicación un nombre (llamado “application identifier”). Este nombre tiene que ser único dentro de todas las aplicaciones de usuarios, así que puedes tardar un rato en encontrar un nombre único. En mi caso utilicé “digitalisticcdn”.

Guarda la nueva aplicación. Luego de que hayas creado esta primera aplicación, necesitas especificar tu número de teléfono. Google te enviará un mensaje de texto SMS con un código para ingresar al sitio. Esto confirma que eres el dueño de la cuenta de Google App Engine (así que no la uses para enviar spam).

Nota importante para usuarios en Latinoamérica: No se aceptarán números locales, por lo que recomendamos utilizar un servicio como SkypeIn que permite obtener un número de teléfono en Estados Unidos para así tener un número que pueda recibir el mensaje de texto y validar la cuenta.

5. Descarga el archivo http://digitalisticcdn.appspot.com/files/digitalisticcdn.zip (alojado en mi CDN privado!) y descomprímelo en tu disco duro. Si quieres puedes cambiarle el nombre del directorio de “digitalisticcdn” al nombre que quieras, por ejemplo el de tu propia aplicación. No importa realmente y solo te facilita el mantener un registro para el futuro.

6. Utiliza un editor de texto para editar el archivo app.yaml que se encuentra en el directorio de digitalisticcdn. Cambia “application:digitalisticcdn” a “application:el identificador de tu aplicación” y guarda el archivo. Esto le dirá a Google App Engine que aplicación debe utilizar para cargar archivos.

7. Ahora es tiempo de agregar todas las imágenes, hojas de estilo, archivos, vídeos, etc. que quieras subir a Googleen los folders de digitalisticcdn. Incluye las imágenes en el folder /images, etc. Puedes crear cualquier número de subfolders dentro de imágenes, archivos, hojas de estilo, etc. (Por ejemplo /images/webhostninja.com/ninja.gif). Puedes agregar más archivos en cualquier momento, así que si sólo quieres configurar la aplicación para que funcione puedes saltar este paso. Ya existe una imagen en el folder de /images para que puedas comprobar que está funcionando como debería.

8. Descarga http://digitalisticcdn.appspot.com/files/deploy_digitalistic_cdn.bat y edítalo con un editor de texto. Este archivo debe apuntar a tu instalación de Python, tu instalación de Google App Engine y tu directorio digitalisticcdn. Si has instalado Google App Engine SDK en el directorio original y Python en C:/Program Files/ entonces no tienes que preocuparte por esta configuración. Solo cambia la última parte del archivo para apuntarlo a tu directorio de digitalisticcdn. Ten en cuenta que todas las rutas que tienen espacios tienen que estar encerradas entre comillas.

9. Doble click en el archivo recientemente actualizado deploy_digitalist_cdn.bat para subir todos los archivos dentro del directorio digitalisticcdn hacia Google. La primera vez que hagas esto deberás especificar tu usuario y password de Google.

10. Ahora ya tienes tu propio CDN privado! Ve a (nombre de aplicacion).appspot.com/images/ninja.gif (en mi caso digitalisticcdn.appspot.com/images/ninja.gif) para ver si funciona.

Cómo utilizar tu propio CDN privado

Para usar los archivos que has subido a tu CDN de Google App Engine solo tienes que utilizar el URL hacia el archivo en tu sitio. Si quieres utilizar la imagen de un cool ninja de WebHostNinjna.com deberías utilizar únicamente digitalisticcdn.appspot.com/images/ninja.gif como el IMG source en tu códigmo HTML. Lo mismo para hojas de estilo, archivos para descargar o cualquier otra cosa que quieras compartir en tu CDN.

En cualquier momento puedes agregar nuevos archivos a tu subdirectorio digitalisticcdn (/images, /stylesheets, etc.) y correr el deploy_digitalistic_cdn.bat para subirlos a Google. Si remueves archivos de tu directorio y luego lo ejecutas, estos serán eliminados de tu aplicación en Google.

Puedes revisar las estadísticas de tu aplicación en Google en appengine.google.com/. Por ejemplo, tu puedes ver cuanto ancho de banda y espacio en disco estás utilizando. Tomará muchos archivos y utilización para que te pases de los recursos que tienes gratuitamente, pero si tienes un sitio súper popular será importante revisar ocasionalmente.

Este artículo fue escrito originalmente en inglés y traducido con permiso del autor al español por Christian Van Der Henst S.