Usando el SDK de Google Apps Engine

El lunes pasado comentaba que me había llegado mi invitación para crear mi cuenta en Google Apps Engine (GAE), y tenía la duda sobre que aplicación desarrollar. He decidido en éste post hablar brevemente sobre como desarrollar una aplicación básica para GAE haciendo uso del SDK que ofrece Google de manera gratuita.

Si alguien planea usar GAE como plataforma para desarrollar una aplicación de producción, pues es bueno hacer ciertas aclaraciones para que nadie luego se sienta sorprendido, en lo personal creo que GAE es una gran iniciativa, pero ciertamente tiene sus inconveniente, aquí los más importantes:

  •  El único lenguaje de programación soportado actualmente es Python, se espera en un futuro ofrecer algunos otros.
  • No existe un motor de base de datos relacional, la única forma de almacenar información es en grande tablas que reciben el nombre de "datastore" (almacenes de datos), aunque Google ofrece la posibilidad de hacer queries en una sintaxis parecida a un SELECT de SQL, en realidad sólo ofrece eso, todas las escrituras o ediciones de datos deben ser hechas usando las funciones que provee Google para el datastore.
  • Las aplicaciones una vez que son levantadas a la red de Google no pueden ser borradas, así que cuidado con que es lo que subimos a GAE.
  •  Nuestra aplicación una vez desarrollada es automáticamente escalable, ya que GAE es el que se encarga de proveer la redundancia y distribución de la data a través de toda la red de Google, lo cuál es bueno poque reduce al mínimo la inversión en hardware, pero hay un inconveniente. Las aplicaciones desarrolladas para GAE, sólo correran en GAE. No hay forma de hacer un back up de la data y copiar los archivos de la aplicación para luego moverla un servidor web fuera de la red de Google, estamos ante una arquitectura cerrada.
  • Los datos que almacenemos en el datastore, estan en poseción de Google y por lo tanto Google puede indexarlos para que estén su motor de búsqueda. Así que cuidado con la información que se pone en el datastore, poque cualquiera podría tener acceso a ella.

Teniendo claro los puntos anteriores ya sabemos que podemos y que no podemos hacer con GAE, por lo tanto ya queda a nuestro criterio la naturaleza de la aplicación que desarrollemos. Comencemos ahora con éste breve tutorial que trata de explicar como instalar y correr una aplicación GAE mínima usando el SDK que puede ser descargado libremente desde la red de Google.

Lo primero que debemos hacer es descargar el SDK de GAE desde esta pagina web (en mi caso particular lo hare usando la versión Linux):

http://code.google.com/appengine/downloads.html

Los que tengan Linux or Mac pueden comenzar el proceso de instalación del SDK inmediatamente porque usualmente Python 2.5 ya está instalado, pero los usuarios de Windows deben de descargar e instalar Python desde aquí:

http://www.python.org/download/

Cuando se ha descargado el ZIP file de la versión Linux debemos tipear los siguientes comandos para instalarlo (asumiendo que usan Ubuntu):

$ unzip google_appengine_1.0.1.zip
$ sudo mv google_appengine /usr/local/appengine

Ya estamos listos para desarrollar nuestro primer ejemplo entonces. Para ello basta con que creemos un directorio llamado "holamundo", y luego entraremos a dicho directorio, para hacerlo usaremos los siguientes comandos:

$ cd ~
$ mkdir holamundo
$ cd holamundo

Ahora debemos de crear dos archivos uno llamado "holamundo.py" y otro llamado "app.yaml". El contenido de dichos archivos debe ser el siguiente:

holamundo.py:

print ‘Content-Type: text/html’
print »
print ‘hola mundo!!!’

app.yaml:

application: holamundo
version: 1
runtime: python
api_version: 1

handlers:
– url: /.*
  script: holamundo.py

Como es obvio el primer archivo holamundo.py es el programa que contiene nuestra aplicación y app.yaml le informa a GAE como procesar nuestra aplicación. holamundo.py no requiere mayor comentario pues es obvio por su sintaxis que lo único que hara la aplicación sera mostrar las palabras "hola mundo!!!" en el navegador, todo el trabajo de configuración se realiza en app.yaml, aquí una explicación detallada línea por línea:

application: holamundo
Como su nombre lo indica esta cláusula le da
nombre a nuestra aplicación
version: 1 Es la versión de nuestra aplicación, para nuestro
ejemplo esta es la primera versión que hacemos
de nuestro programa
runtime: python El lenguaje de programación que se usará para
ejecutar nuestra aplicación por el momento sólo
python esta disponible, pero se espera que otros
pronto.
api_version: 1 La versión del API que estamos usando, puesto
que esta es la primera verisón disponible, lo
indicamos en ésta claúsula pues depende de la
versión del API las funciones a las que tenemos
acceso, muchas funciones pueden añadirse o
eliminarse, con esta cláusula GAE sabe que
versión de API utilizar para ejecutar nuestra
aplicación.
handlers: Con ésta cláusula indicamos como debe GAE
de procesar los requerimientos POST/GET de
los clientes.
 – url: /.* Con ésta cláusula le decimos a GAE que debe hacer
con toda solicitud a nuestra aplicación ".*" es una
expresión regular que significa toda cadena de texto
de un caracter o más
 script: holamundo.py Cumplida la condición anterior, GAE ejecutará el
script "holamundo.py", que es nuestra aplicación.

Ahora que ya tenemos creados los dos archivos básicos que componen nuestra aplicación debemos de inciar el servidor web que viene en el SDK para poder probarla y ver que tal nos quedo, para ello debemos de ejecutar el siguiente comando (en Linux):

$ /usr/local/appengine/dev_appserver.py ~/holamundo

Es muy importante que tomemos en cuenta de que debemos dar la base del directorio y no el archivo de nuestra aplicación, luego de que demos el comando anterior el servidor de prueba local nos preguntará si deseamos de que busque los últimos updates, a lo que debemos responder que sí. Luego de eso debemos ver una serie de mensajes como éstos:

INFO     2008-05-08 17:18:27,431 appcfg.py] Checking for updates to the SDK.
INFO     2008-05-08 17:18:27,563 appcfg.py] The SDK is up to date.
WARNING  2008-05-08 17:18:27,563 datastore_file_stub.py] Could not read datastore data from /tmp/dev_appserver.datastore
WARNING  2008-05-08 17:18:27,563 datastore_file_stub.py] Could not read datastore data from /tmp/dev_appserver.datastore.history
INFO     2008-05-08 17:18:27,565 dev_appserver_main.py] Running application holamundo on port 8080: http://localhost:8080

Eso nos indicará que ya tenemos corriendo el webserver en el puerto 8080 que nos permitirá ver como luciría nuestra aplicación en GAE, para ver nuestra aplicación sólo debemos de abrir nuestro navegador y apuntar a: http://localhost:8080

Si todo esta bien debemos de ver una página como ésta:

Hola Mundo

Ahora que ya tenemos un SDK instalado, y sabemos lo básico sobre él, podemos comenzar a experimentar con las funciones incluídas en él.

Espero que éste mini-tutorial les haya sido de utilidad y espero sus comentarios.

Un comentario en «Usando el SDK de Google Apps Engine»

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.