Google ha lanzado Google Cloud SQL, una esperada funcionalidad para todos los desarrolladores que usan Google App Engine. Al fin podremos usar una base de datos relacional en la nube de Google muy familiar a MySQL. Como siempre, la idea es que nos centremos en desarrollar nuestra aplicación y servicios sin la problemática de manejar, mantener y administrar complejas bases de datos relacionales.
Hasta ahora el único almacén de datos del que disponíamos en App Engine no era como una base datos tradicional, si no solamente con Google Datastore que usa un enfoque jerárquico orientado a objetos al estar basado en otra tecnología de Google, el Google Bigtable que es un sistema distribuido de almacenamiento de datos estructurados. objetos de datos se almacenaba en estructuras a las que accedíamos implementando las interfaces JDO/JPA de Java o la interfaz de datos de Python.
Con Google Cloud SQL dispondremos integrado en Google App Engine de un servicio de datos de alta disponibilidad donde nuestros datos se replicarán de forma sincronizada en múltiples data center. Así se escalará automáticamente sin que tengamos que preocuparnos de la carga en base de datos. Podremos usar JDBC para java y DB-API en Python para conectarnos desde nuestra aplicación. Para administrar las diferentes bases de datos existe una interfaz de gráfica.
Un aspecto a tener en cuenta es la posibilidad de exportar nuestra base de datos MySQL a la nube usando App Engine.
Cloud SQL está disponible en fase beta y de prueba, de momento en forma gratuita. Seguirá evolucionando y se avisará a los usuarios del precio al menos 30 días antes de cualquier cargo.
Características
GAE soporta de manera oficial los lenguajes de programación Python y Java de manera estable y en modo de beta testing en lenguaje de programación Go creado por ellos mismos. Al soportar Java, es posible además utilizar cualquier lenguaje JVM o lo que es lo mismo, cualquier lenguaje que pueda ejecutarse sobre una máquina virtual de Java, aunque eso si, con serias limitaciones. Entre dichos lenguajes se encuentran:
- Groovy
- JRuby
- Scala
- PHP
- Clojure
- Perl
En el siguiente enlace puedes encontrar un listado completo de implementaciones de diferentes lenguajes sobre JVM.
GAE soporta varios frameworks bajo Python como CherryPy, Pylons, Flask y Django 0.96 y 1.2. Además la misma Google ha desarrrollado un framework propio llamado —viva la originalidad que les caracteriza— webapp para aplicaciones web que van mejorando y actualizando. También existe un framework desarrollado específicamente para GAE y siguiendo —supuestamente— la filosofía de Django llamado GAE framework.
En cuanto a lo que respecta a Java, parece ser que es posible utilizar Grails de forma bastante sencilla y poco traumática utilizando para ello el Plugin para App Engine.
Restricciones
- Las aplicaciones solo tienen permisos de lectura a los archivos del sistema de archivos. Para almacenar datos y archivos en modo lectura y escritura es necesario utilizar un sistema de archivos virtual sobre el DataStore.
- Solo se puede ejecutar código a través de consultas HTTP
- Las aplicaciones Java solo pueden usar el conjunto considerado seguro de clases del JREestándar. ( Comprueba el Listado de clases)
- Las aplicaciones no pueden crear nuevos hilos de ejecución
- Los usuarios de Python pueden subir módulos para su uso en la plataforma pero no aquellos que están completamente desarrollados en C o Pyrex
- El soporte para SSL solo está disponible par dominios *.appspot.com
- Un proceso iniciado en el servicio para responder a una consulta no puede durar más de treinta segundos
- No soporta sesiones persistentes, solo sesiones replicadas a las que además se les aplican ciertos límites.
- No se pueden abrir sockets, por lo tanto, no se puede usar Twisted
Conclusión
La nube tiene sus ventajas e inconvenientes, el sistema de Plataforma como Servicio de Google App Engine tiene un nivel de abstracción tan alto que al utilizarlo solo tenemos que prestar atenciónal desarrollo de nuestra aplicación y no a infraestructuras, servicios y tecnologías como si ocurre por ejemplo con la nube de Amazon, donde somos nosotros los que debemos iniciar y parar los servicios que vamos a utilizar.
Los precios del App Engine son bastante asequibles y para la mayoría de las aplicaciones que podemos construir los mortales, es complicado que rebasaremos las cuotas gratuitas. Como todo en esta vida, puedes amar el servicio de App Engine u odiarlo con todas tus fuerzas, el caso es que está ahí para que lo uses o no y hoy en Genbeta Dev, hemos realizado una introducción al mismo.
No hay comentarios:
Publicar un comentario