Antes de iniciar el proyecto, no tenía experiencia con Python, aunque tomarlo fué más que nada acostumbrarse a la sintaxis y relacionar el tipo de error con lo que estaba sucediendo. Recomiendo los cursos de edx.org, es impresionante la diferencia en el tiempo que se adquiere el conocimiento con un guía que sólo leyendo libros.

Ya una vez dominado esto, hubo que conocer la plataforma de Google App Engine, al inicio se ve muy atractiva, ya que en un mismo anfitrión, se cuenta con control de versiones, versión de prueba de tu sistema en otro sub-dominio, CDN integrado y una base de datos no-sql administrada llamada datastore.

Además de esto Google crea una capa de aplicación, en la que crean en automático las instancias que atienden el servicio, por lo que uno puede despreocuparse de tener que estar preparado para una alta carga en cualquier momento.

Pero ahora las desventajas, el problema son los límites, los procesos tienen un límite de memoria, que en caso de superarlo, provocan el reinicio de la instancia. El tiempo de ejecución esta limitado a un minuto. Ambas restricciones, son razonables en un servicio que no exige muchos recursos, pero ocasionalmente se requiere hacer procesos que entreguen reportes o acciones que toman tiempo y recursos, por lo que hay que buscar sacar la vuelta a las limitaciones.

Sobre el uso de memoria, me dí cuenta que hay que cuidar mucho el uso de las variables, en un intento por reducir el uso de memoria, empecé a comentar partes de un procedimiento, pero me llevé la sorpresa que la parte que más memoria consume son las variables y más cuando se usan dentro de un ciclo. Yo esperaba que el garbage collector liberara estas memoria, pero estas variables se multiplicaban en memoria después de cada ciclo.

Así también el apoyarse en IDEs como PyCharm, te ayuda a prevenir los errores de sintaxis, los cuales son una pérdida de tiempo muy grande , ya que toda la plataforma deja de funcionar, si se carga así los programas.

En conclusión, es una plataforma robusta y confiable y muy conveniente si se desea reducir costos de la aplicación y disminuir la carga de trabajo en el monitoreo y mantenimiento de servidores.

Leave a Comment