{"id":440,"date":"2012-07-11T17:10:27","date_gmt":"2012-07-11T17:10:27","guid":{"rendered":"http:\/\/www.palentino.es\/blog\/?p=440"},"modified":"2012-07-11T17:19:33","modified_gmt":"2012-07-11T17:19:33","slug":"que-es-un-app-engine-de-google-y-como-crea-un-app-en-2-minutos","status":"publish","type":"post","link":"https:\/\/www.palentino.es\/blog\/que-es-un-app-engine-de-google-y-como-crea-un-app-en-2-minutos\/","title":{"rendered":"\u00bf Qu\u00e9 es un App Engine de Google ? y c\u00f3mo crea un App en 2 minutos."},"content":{"rendered":"<p style=\"text-align: justify;\"><span style=\"text-align: justify;\">Seg\u00fan la pir\u00e1mide de los productos en la nube, <strong>Google App Engine<\/strong> se define como tecnolog\u00eda tipo <strong>PaaS<\/strong> (Platform As A Service) una plataforma como servicio, entre medias del SaaS (cima) y LaaS (pie de la pir\u00e1mide). Nos permite desplegar nuestra aplicaci\u00f3n sobre un servidor web de forma transparente en la\u00a0infraestructura\u00a0de Google. <\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"text-align: justify;\">Lema: &#8220;<strong>Nosotros hacemos la aplicaci\u00f3n y Google se encarga del resto<\/strong>.&#8221;<\/span><\/p>\n<p style=\"text-align: justify;\">La idea es construir una una aplicaci\u00f3n de forma f\u00e1cil y natural en un determinado lenguaje, que sea f\u00e1cil de mantener, desarrollar y de escalar, gracias a estar en la infraestructura de google.<\/p>\n<p style=\"text-align: justify;\">No es necesario preocuparse de aspectos de seguridad, nosotros disponemos de un servidor web en la nube, y los ingenieros de google lo administran.\u00a0Solamente\u00a0nos centraremos en la l\u00f3gica de la aplicaci\u00f3n.<\/p>\n<p style=\"text-align: justify;\"><!--more--><\/p>\n<p><strong>Lenguajes disponibles para programar en App Engine.<\/strong><\/p>\n<p>Hoy en dia, los App Engines se pueden programar en 3 lenguajes principalmente:<\/p>\n<p><strong>Java<\/strong>.<\/p>\n<p><strong>GO <\/strong>\u00a0(Experimental).<\/p>\n<p style=\"text-align: justify;\"><strong>Python<\/strong> en versiones 2.5.y 2.7. Este lenguaje recibe las nuevas funcionalidades antes que otros lenguajes.<\/p>\n<p><strong>Servicios que provee APP Engine.<\/strong><\/p>\n<p style=\"text-align: justify;\">&#8211; Podemos acceder a un conjunto de servicios de forma transparente, \u00a0natural y din\u00e1mica. Los tipos de servicios, tareas programas, almacenamiento de datos, cache, administraci\u00f3n de im\u00e1genes, mail, XMPP&#8230;<\/p>\n<p style=\"text-align: justify;\">En l\u00edneas generales servicios que afectan al ordenador, red, almacenamiento y servicios generales (API\u00b4s).<\/p>\n<p style=\"text-align: justify;\">Centr\u00e1ndonos en lenguaje JAVA, uno de los aspectos m\u00e1s interesantes de APP Engine desarrollado en este lenguaje, es su portabilidad. Las aplicaciones GAE\/J son totalmente portables.<\/p>\n<p style=\"text-align: justify;\">App Engine es una plataforma donde google libera funcionalidades nuevas cada 2 \u00f3 3 meses. Hoy en d\u00eda 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.<\/p>\n<p style=\"text-align: justify;\">Lo m\u00e1s interesante para la mayor\u00eda es que es <strong>gratis<\/strong>, 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\u00e1s recursos. Una vez sobrepasado los limites se puede habilitar una facturaci\u00f3n del excedente o sobrecarga.<\/p>\n<p style=\"text-align: justify;\">Lo primero para trabajar con cualquier APP Engine es entrar en la web. Lugar central donde se crean y gestionan todas las aplicaciones.<\/p>\n<p><a href=\"https:\/\/appengine.google.com\" target=\"_blank\">https:\/\/appengine.google.com<\/a><\/p>\n<p style=\"text-align: justify;\">Se pueden crear en principio 10 aplicaciones gratuitas, y extensiones gratuitas hasta lo que permite la cuota m\u00ednima.<\/p>\n<p style=\"text-align: justify;\">Una funcionalidad muy interesante es que de por si viene embebido con todo el sistema gmail.<\/p>\n<p style=\"text-align: justify;\">Posee un dashboard bastante potente a su vez que sencillo, permitiendo\u00a0gestionar\u00a0las aplicaciones en la nube en tiempo real.<\/p>\n<p style=\"text-align: justify;\">El formulario inicial para crear una aplicaci\u00f3n se completa en 30 segundos, requiere un Application Identifier o identificador de aplicaci\u00f3n, tiene que ser \u00fanico. Un nombre descriptivo para referenciar la aplicaci\u00f3n, opciones de autenticaci\u00f3n (google, un dominio determinado o usar Open ID para la gesti\u00f3n de usuarios). \u00a0Posee 2 opciones de almacenamiento, una m\u00e1s\u00a0econ\u00f3mica\u00a0(Master Slave) y alta Performance, los ingenieros recomiendan el \u00a0Performance por latencias y rendimiento.<\/p>\n<p style=\"text-align: justify;\"><strong>Creando una aplicaci\u00f3n Cloud o en la Nube en Java en 2 Minutos. Demo de Hola Mundo!.<\/strong><\/p>\n<p>Podemos usar un IDE como <a href=\"http:\/\/www.eclipse.org\/downloads\/\" target=\"_blank\">Eclipse<\/a>, con el <a href=\"https:\/\/developers.google.com\/appengine\/docs\/java\/tools\/eclipse\" target=\"_blank\">plugin App Engine<\/a> instalado.<\/p>\n<p>Al crear una APP nueva,\u00a0d\u00e1ndole\u00a0un nombre de proyecto, se crea la estructura y se desplega el entorno por defecto.<\/p>\n<p>Para ver en detalle el ejemplo y los pasos, haz clic en este<a title=\"Writing Java Hello World for Google app engine\" href=\"http:\/\/www.vineetmanohar.com\/2009\/04\/writing-java-hello-world-for-google-app-engine\/\"> enlace externo<\/a>.<\/p>\n<p style=\"text-align: justify;\">Como podemos apreciar, siguiendo los pasos establecidos, en poco tiempo, disponemos de una aplicaci\u00f3n desplegada en internet, en una infraestructura distribuida de google y de una manera totalmente\u00a0inocua, no fue necesario configurar\u00a0ning\u00fan\u00a0servidor, ni poseer conocimientos de administrador de sites.<\/p>\n<p style=\"text-align: justify;\">Una de las cosas m\u00e1s recomendables, es hacer uso del ambiente local. Es igual de f\u00e1cil de funcionar, pero nos permite probar de forma m\u00e1s veloz los cambios que hacemos. Este ambiente genera los \u00edndices que se subir\u00e1n a la nube. En definitiva ejecutar aplicaciones en local aprovechando la m\u00e1quina la velocidad de nuestro procesador, para luego subirlo. Uno de los principales errores de un desarrollador inicial es\u00a0obviar\u00a0el ambiente local, que genera configuraciones autom\u00e1ticas que sirven para la funcionalidad productiva.<\/p>\n<p style=\"text-align: justify;\">El servidor local o ambiente se genera en http:\/\/localhost:8888<\/p>\n<p style=\"text-align: justify;\">La consola de administraci\u00f3n local en http:\/\/localhost:8888\/_ah\/admin<\/p>\n<p style=\"text-align: justify;\">Con el Segundo bot\u00f3n del rat\u00f3n \u00a0(SBDR) desplegaremos el App Engine. Una vez completado el deploy la aplicaci\u00f3n se encuentra corriendo en un cluster de servidores de google distribuidos por todo el mundo, con load balancer, un Datastore distribuido, \u00a0sistema failsafe, etc.<\/p>\n<p style=\"text-align: justify;\">Permite obtener beneficios con muy poco esfuerzo.<\/p>\n<p style=\"text-align: justify;\">El coraz\u00f3n de una aplicaci\u00f3n App Engine es el archivo <strong>appengine-web.xml<\/strong>. Todos los permisos y configuraciones especiales se\u00a0efect\u00faan\u00a0en este archivo.<\/p>\n<p style=\"text-align: justify;\">Este es el archivo de configuraci\u00f3n de todas las herramientas GAE. Se encuentra en la carpeta war\/WEB-INF<\/p>\n<p style=\"text-align: justify;\">Los 2 atributos clave (obligatorios) son:<\/p>\n<p style=\"text-align: justify;\">&#8211; application: el id que identifica a su\u00a0aplicaci\u00f3n\u00a0en el ambiente de App engine. Valor GAE id<\/p>\n<p style=\"text-align: justify;\">&#8211; version: la instancia de su aplicaci\u00f3n que va a desplegar. Valor: fecha(dd-mm-aa)<\/p>\n<p style=\"text-align: justify;\">Ejemplo:<\/p>\n<pre lang=\"LANGUAJE\">gaei-101\r\n10-09-20120<\/pre>\n<p style=\"text-align: justify;\"><strong>Recapitulando lo visto:<\/strong><\/p>\n<p style=\"text-align: justify;\">Que necesitamos:<\/p>\n<p style=\"text-align: justify;\">&#8211; Crear el proyecto en <a href=\"https:\/\/appengine.google.com\" target=\"_blank\">https:\/\/appengine.google.com<\/a><\/p>\n<p style=\"text-align: justify;\">&#8211; Crear un proyecto GAE en Eclipse.<\/p>\n<p style=\"text-align: justify;\">&#8211; Configurar appengine-web.xml con nuestro Application ID y una versi\u00f3n<\/p>\n<p style=\"text-align: justify;\">&#8211; Desplegar.<\/p>\n<p style=\"text-align: justify;\">&#8211; Un proyecto GAE es una aplication web Java\u00a0est\u00e1ndar, cualquier persona que haya trabajado en JAVA, que programe en \u00a0Servlets, SPRING, va a poder reconocer y trabajar en App Engine incluso sin saber en muchos casos que lo esta haciendo.\u00a0Existir\u00e1n\u00a0carpetas LIB con librer\u00edas, y el web.xml.<\/p>\n<p style=\"text-align: justify;\">Esto es todo lo que hace falta para empezar a crear una aplicaci\u00f3n productiva.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Seg\u00fan la pir\u00e1mide de los productos en la nube, Google App Engine se define como tecnolog\u00eda tipo PaaS (Platform As A Service) una plataforma como servicio, entre medias del SaaS (cima) y LaaS (pie de la pir\u00e1mide). Nos permite desplegar nuestra aplicaci\u00f3n sobre un servidor web de forma transparente en la\u00a0infraestructura\u00a0de Google. Lema: &#8220;Nosotros hacemos la aplicaci\u00f3n y Google se encarga del resto.&#8221; La idea es construir una una aplicaci\u00f3n de forma f\u00e1cil y natural en un determinado lenguaje, que sea f\u00e1cil 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.\u00a0Solamente\u00a0nos centraremos en la l\u00f3gica de la aplicaci\u00f3n.<\/p>\n","protected":false},"author":1,"featured_media":472,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,7],"tags":[54,669,57,21,56,44,55],"class_list":["post-440","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programacion","category-software","tag-app-engine","tag-google","tag-java","tag-nube","tag-paas","tag-programacion-2","tag-software-2"],"_links":{"self":[{"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/posts\/440","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/comments?post=440"}],"version-history":[{"count":27,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/posts\/440\/revisions"}],"predecessor-version":[{"id":477,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/posts\/440\/revisions\/477"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/media\/472"}],"wp:attachment":[{"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/media?parent=440"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/categories?post=440"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/tags?post=440"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}