Según la pirámide de los productos en la nube, Google App Engine se define como tecnología tipo PaaS (Platform As A Service) una plataforma como servicio, entre medias del SaaS (cima) y LaaS (pie de la pirámide). Nos permite desplegar nuestra aplicación sobre un servidor web de forma transparente en la infraestructura de Google.
Lema: “Nosotros hacemos la aplicación y Google se encarga del resto.”
La idea es construir una una aplicación de forma fácil y natural en un determinado lenguaje, que sea fácil de mantener, desarrollar y de escalar, gracias a estar en la infraestructura de google.
No es necesario preocuparse de aspectos de seguridad, nosotros disponemos de un servidor web en la nube, y los ingenieros de google lo administran. Solamente nos centraremos en la lógica de la aplicación.
Lenguajes disponibles para programar en App Engine.
Hoy en dia, los App Engines se pueden programar en 3 lenguajes principalmente:
Java.
GO (Experimental).
Python en versiones 2.5.y 2.7. Este lenguaje recibe las nuevas funcionalidades antes que otros lenguajes.
Servicios que provee APP Engine.
– Podemos acceder a un conjunto de servicios de forma transparente, natural y dinámica. Los tipos de servicios, tareas programas, almacenamiento de datos, cache, administración de imágenes, mail, XMPP…
En líneas generales servicios que afectan al ordenador, red, almacenamiento y servicios generales (API´s).
Centrándonos en lenguaje JAVA, uno de los aspectos más interesantes de APP Engine desarrollado en este lenguaje, es su portabilidad. Las aplicaciones GAE/J son totalmente portables.
App Engine es una plataforma donde google libera funcionalidades nuevas cada 2 ó 3 meses. Hoy en día existen mas de 100.000 desarrolladores por mes y 300.000 aplicaciones por semana. Mas de 2.000.000.000 millones de vistas por dia.
Lo más interesante para la mayoría es que es gratis, excelente para practicar para un emprendedor o estudiante, ya que se puede empezar con un set de funcionalidades gratuitas, con una cuota gratuita diaria, de unos 5.000 visitas al mes. En caso de crecimiento de cuota, es posible pagar por más recursos. Una vez sobrepasado los limites se puede habilitar una facturación del excedente o sobrecarga.
Lo primero para trabajar con cualquier APP Engine es entrar en la web. Lugar central donde se crean y gestionan todas las aplicaciones.
Se pueden crear en principio 10 aplicaciones gratuitas, y extensiones gratuitas hasta lo que permite la cuota mínima.
Una funcionalidad muy interesante es que de por si viene embebido con todo el sistema gmail.
Posee un dashboard bastante potente a su vez que sencillo, permitiendo gestionar las aplicaciones en la nube en tiempo real.
El formulario inicial para crear una aplicación se completa en 30 segundos, requiere un Application Identifier o identificador de aplicación, tiene que ser único. Un nombre descriptivo para referenciar la aplicación, opciones de autenticación (google, un dominio determinado o usar Open ID para la gestión de usuarios). Posee 2 opciones de almacenamiento, una más económica (Master Slave) y alta Performance, los ingenieros recomiendan el Performance por latencias y rendimiento.
Creando una aplicación Cloud o en la Nube en Java en 2 Minutos. Demo de Hola Mundo!.
Podemos usar un IDE como Eclipse, con el plugin App Engine instalado.
Al crear una APP nueva, dándole un nombre de proyecto, se crea la estructura y se desplega el entorno por defecto.
Para ver en detalle el ejemplo y los pasos, haz clic en este enlace externo.
Como podemos apreciar, siguiendo los pasos establecidos, en poco tiempo, disponemos de una aplicación desplegada en internet, en una infraestructura distribuida de google y de una manera totalmente inocua, no fue necesario configurar ningún servidor, ni poseer conocimientos de administrador de sites.
Una de las cosas más recomendables, es hacer uso del ambiente local. Es igual de fácil de funcionar, pero nos permite probar de forma más veloz los cambios que hacemos. Este ambiente genera los índices que se subirán a la nube. En definitiva ejecutar aplicaciones en local aprovechando la máquina la velocidad de nuestro procesador, para luego subirlo. Uno de los principales errores de un desarrollador inicial es obviar el ambiente local, que genera configuraciones automáticas que sirven para la funcionalidad productiva.
El servidor local o ambiente se genera en http://localhost:8888
La consola de administración local en http://localhost:8888/_ah/admin
Con el Segundo botón del ratón (SBDR) desplegaremos el App Engine. Una vez completado el deploy la aplicación se encuentra corriendo en un cluster de servidores de google distribuidos por todo el mundo, con load balancer, un Datastore distribuido, sistema failsafe, etc.
Permite obtener beneficios con muy poco esfuerzo.
El corazón de una aplicación App Engine es el archivo appengine-web.xml. Todos los permisos y configuraciones especiales se efectúan en este archivo.
Este es el archivo de configuración de todas las herramientas GAE. Se encuentra en la carpeta war/WEB-INF
Los 2 atributos clave (obligatorios) son:
– application: el id que identifica a su aplicación en el ambiente de App engine. Valor GAE id
– version: la instancia de su aplicación que va a desplegar. Valor: fecha(dd-mm-aa)
Ejemplo:
gaei-101 10-09-20120 |
Recapitulando lo visto:
Que necesitamos:
– Crear el proyecto en https://appengine.google.com
– Crear un proyecto GAE en Eclipse.
– Configurar appengine-web.xml con nuestro Application ID y una versión
– Desplegar.
– Un proyecto GAE es una aplication web Java estándar, cualquier persona que haya trabajado en JAVA, que programe en Servlets, SPRING, va a poder reconocer y trabajar en App Engine incluso sin saber en muchos casos que lo esta haciendo. Existirán carpetas LIB con librerías, y el web.xml.
Esto es todo lo que hace falta para empezar a crear una aplicación productiva.