
Como ya la mayoría de ustedes saben Google puso a dispocisión, de nosotros los desarrolladores de software, la infraestructura en la que corren aplicaciones como Gmail, Google Apps y hasta el mismo Blogger. El anuncio se hizo en un evento cerrado llamado el campfire hace unas semanas atrás. El producto/servicio se llama Google App Engine y consiste en un sandbox en los servidores virtuales de Google más un SDK para hacer pruebas locales, todo utilizando el lenguaje de programación Python, con la promesa de soportar otros lenguajes en el futuro (java tal vez?).
Este anuncio implica como dirían muchos la introducción del cloud computing a las masas y nos quitaría a nosotros desarrolladores y administradores de sistemas muchas responsabilidades y conocimientos técnicos, en su mayoría ortogonal a la lógica de la aplicación y su funcionalidad; en cuanto a escalabilidad, tolerancia a fallas, rendimiento, instrumentación, entre otros.
Luego de varios días de ver que había llegado demasiado tarde el día del anuncio y ya se habían repartido las invitaciones, me llegó un correo referente de Google I/O para "ir practicando" para las sesiones (al menos 9). Así que decidí intentar y quitarme el miedo de estrellarme contra otro nuevo lenguaje, contra otro nuevo framework, contra otra nueva plataforma.
A continuación les cuento mis impresiones.
Lo bueno
- El deploy: Despues de haber tenido muchos problemas en mi vida pasada de desarrollador Java y PHP con versiones de librerías de diferentes versiones que hacen conflicto, configuración errada de los data source, nombres JNDI mal puestos, PHP compilado de manera errada, etc, siento que el proceso de deploy es bastante simple y fácil con el appengine, se restringe a la ejecución de un comando.
- La interfaz de administración: Me parece impresionante la vista unificada de las métricas de la aplicación, la consulta de mensajes del logger, etc.
- Integración con Google Accounts y Google Apps: El manejo de usuarios basados en las cuentas de google es bastante fácil. Además la posibilidad de restringir el uso de la aplicación dentro de uno o varios dominios me parece muy amigable para las organizaciones que cuenten con Google Apps.
- Django: Todo lo bueno que había oido de Django es más que cierto. Es un framework muy inteligentemente hecho y permite de manera simple hacer cosas bastante complejas.
- El datastore: El sólo hecho de no tener que correr scripts de inicialización a la base de datos o de no preocuparse por cambios estructurales al modelo, da una sensación de poder enorme.
- Las restricciones: Google limita el runtime de python en una gran medida. Por ejemplo no permite ninguna modificación al file-system, quita el acceso a las funciones de C, a paquetes de networking, a estructura de modulos propios, etc.
- Mejores prácticas: No he podido encontrar ningún consejo, recomendación o mejor práctica para la estructura de los directorios, módulos, paquetes dentro de la aplicación. Pareciera que en la comunidad de python no hubiera newbies y muchas veces la falta de un sitio central donde conseguir documentación quita impulso.
- Recursos: Viniendo del mundo Java donde hay librerías para todo y donde el tiempo es oro y nadie se reinventa la rueda es duro no poder encontrar fácilmente (por ejemplo) una librería para utilizar el formato JSON, no quiero pensar cuando necesite algo como acegi o hibernate o tenga un problema raro.
hay gente con habilidades extraordinarioas que pueden ayudar casi con cualquier problema. Espero que para la segunda aplicación, ya con el ambiente unificado y probado el ciclo de desarrollo se demore mucho menos. En unos días les cuento como me fue terminando el proyecto.
Nota: todavía faltan cosas importantes como la generación de pdf sobre la cual espero escribir después.


7 comentarios:
Hola david, navegando por ahi por la blogosfera tope con tu blog y me alegre mucho al ver que eras colombiano, yo soy de la Universidad Distrital, en cuanto a la desventajas que mencionas, python es tan pero tan hermoso, que esas no son realmente desventajas solo cierta falta de informacion, en cuanto a las buenas practicas, el simple hecho de desarrollar con django te da buenas enseñanzas, pero si quieres consejos respecto a la sintaxis
python te recomiendo este enlace: http://chrisarndt.de/talks/rupy/2008/output/slides.html.
Y en cuanto a JSON, una busqueda en google es suficiente no??? estoy en el grupo de django-es en google y alli hablan bastante de JSON, python se comunica casi con cualquier cosa y JSON no iba a ser la excepcion.
Espero esta informacion te ayude y podamos estar en contacto, yo tambien tengo una cuenta en GAE pero no he tenido tiempo de desarrollar, si necesitas ayuda con python escribeme no se mucho pero ya llevo 4 años trabajando con él.
Hola Diego,
Gracias primero que todo por tomarte el tiempo de leer mi blog y segundo por tomarte el tiempo de escribir los comentarios.
Puede que lo que me dices acerca de las buenas prácticas sea cierto, puede que entre más me "case" con django la estructura de mi aplicación sea más consistente; el problema es que no encontré en el momento un patrón más o menos estándar en cuanto al uso de paquetes/modulos/carpetas, en Java hasta el hola mundo explica eso.
En cuanto al problema de las librerías para JSON, no soy el único que lo dice, hace falta una librería estándar que simplemente siga al pie de la letra la especificación JSON ni más ni menos. En fin, estoy usando json-py y ha servido bien hasta ahora.
Anímate a escribir una aplicación en GAE, para que sigamos discutiendo...yo voy a empezar proximamente un nuevo proyecto Open Source que integre GAE con Apps, estas bienvenido de una vez a participar.
PD: Gracias por el link y chevere la gente de la distrital(le dan duro al GIS, no?) además mi novia estudia allá.
Suerte
Hola David, estoy intentando probar el app engine de google, una pregunta cómo se hace para que Google le envie el código SMS de verificación a un movil Colombiano (código de pais y eso?),
Gracias
No tengo ni idea venom_neko, la verdad se muy poco del tema movil. De todos modos el app engine solo soporta accesos usando HTTP por el puerto 80, si eso es suficiente para mandar un SMS estás listo
Yo también tengo el mismo problema... Quiero probar el Google App Engine, pero no consigo que se me envie el SMS de verificación a un movil colombiano.
Que bueno sería si alguien en Colombia ya lo hubiera hecho y nos indique como hacerlo.
Hola. Por favor alguien sabe como inscribirse en Google App Engine desde Colombia, tengo entendido que no tenemos niguna empresa de telefonos capaz de recibir un sms de google, paso indispensable para poder inscribirse en tal servicio.
Publicar un comentario en la entrada