Google introdujo ya hace un par de años (es increíble como el tiempo transcurre) el servicio App Egine que permite desplegar aplicaciones web sobre la infraestructura de Google, lo cual permite escalar fácilmente las aplicaciones desarrolladas. Por el momento sólo dos leguajes son soportados por el servicio Python y Java, lo cuál tal vez ignora a la mayor de todas las comunidades PHP, pero eso es otro tema. Hoy quiero centrarme en los frameworks Python que permiten trabajar con este servicio de Google, que permite a todo desarrollador web desplegar una aplicación sobre una de las infraestructuras de red más grandes del planeta.
El primer framework sobre el quiero comentar es tipfy, este es un framework orientado a trabajar con Google App Engine, lo cual es criticado por muchos como su punto débil debido a que las aplicaciones creadas con él no pueden ser corridas independientemente. He encontrado un muy interesante post en el blog de Ian Lewis titulado "Una introducción al Framework Tipfy para AppEngine", si seguimos las instrucciones indicadas en este post podremos tener corriendo una aplicación básica en menos de diez minutos.
Otro framework que deseo mencionar es flask, que se define a sí mismo como un micro-framework para Python que permite el uso del sistema de templates Jinja2, a diferencia de tipfy, los desarrolladores de flask lo diseñaron para correr sobre múltiples servidores web, siempre y cuando estos soporten WSGI, lo que significa que podrá correr sobre Google App Engine, CherryPy o Tornado. He encontrado el post titulado "Volando con Flask y en Google App Engine" de Francisco de Souza muy útil y lleno de tips de como poner a trabajar flask en App Engine, debido a que usa como ejemplo el desarrollo de una aplicación para bloguear 100% funcional, aunque básica.
Ahora quiero comentarles sobre mi favorito, Bottle. Es el más pequeño de todos, el framework entra en un sólo archivo de 73KB. Una de sus ventajas es que al igual que flask en adición a poder funcionar en App Engine, este framwork también puede funcionar de manera independiente o dentro de otros servidores web que soporten WSGI, así que si uno es un paranoico y cree que Google puede ir fuera de servicio, este framework nos permite desplegar la aplicación en servidores propios. Aunque el sistema de templates que usa por defecto es muy simple, eso no quita que sea ultra versátil, pero si se desea algo más sofisticado este framework puede integrarse con otros sistemas de templates como mako, Jinja2 o cheetah. Un muy buen tutorial que explica como crear y desplegar una aplicación en Google App Engine lo he encontrado en el blog de Rutwick Gangurde, el post se titula "Use el framework Python Bottle con Google App Engine", del cual estoy pensando hacer una traducción porque me parece muy didáctico y ayudaría a muchos a empezar a desarrollar aplicaciones en App Engine.
Finalmente, pero no por ello menos importante, tenemos al Django-norel que es una versión de Django que puede correr en bases de datos no relacionales como es el caso del Big Table que Google usa en App Engine. Django es mucho más que un framework es casi un CMS, el único problema que le veo es su tamaño. Un buen tutorial sobre como correr las aplicaciones Django puras en Google App Engine puede encontrarse aquí.