Google Compute / App Engine se perfila como la tercera gran plataforma de cloud computing

Google App EngineEste Google I/O no sólo ha sido el de la catarsis de anuncios sobre productos y servicios web, también la puesta de largo de Google Compute Engine que pasa a estar en abierto para cualquier desarrollador, confirmando la apuesta de infraestructura como servicio de Google.

Con los web services de Amazon y Azure de Microsoft, Google Compute / App Engine es la tercera gran plataforma de cloud computing. Es interesante observar como Amazon ha demostrado tener la mayor visión de los tres, empezando por la infraestructura para luego ir construyendo servicios sobre ella… justo el camino contrario que recorrido sus competidores.

Del trío el que parece menos enfocado es Google, está llegando más tarde a todo y eso se ejemplifica en que su anuncio más celebrado es el soporte de PHP en App Engine ¡en 2013!. En todo caso tienen sus fortalezas – los servicios que ofrecen en el propio App Engine relacionados con su modelo de datos no estructurados (BigQuery y cía) y la marca Google, claro.

Relacionados: Azure añade infraestructura como servicio (y promete guerra de precios), Hacia el fin del data center de la empresa, persistencia en Amazon EC2

Java en Google App Engine

Google App EngineEl anuncio de soporte de Java en el Google App Engine ejemplifica las luces y las sombras de las plataformas como servicio dentro de lo que se ha venido denominando Cloud computing. Por un lado tenemos un movimiento razonable para facilitar el desembarco de muchas empresas que ya tienen aplicaciones empresariales en Java y, sobre todo, mucho «know how» alrededor de la tecnología de Sun y mucho invertido en el ecosistema Java. Además se beneficia de la integración con muchas herramientas diseñadas para desarrollar en Java, desde Eclipse hasta Ant.

Pero además de ser un movimiento razonable, muestra claramente como apostar por plataformas como servicio del tipo Google App Engine también tiene sus «peros»: un entorno en el que se te dan muchas cosas dadas, pero poco flexible y en el que todo está acotado y decidido previamente por la plataforma. En el anuncio dejan claro que no se soporta Java Enterprise Edition por completo, entre otras cosas porque debajo de App Engine no hay bases de datos relacionales, así que hay que olvidarse de JDBC o Hibernate, pero también de JMX, EJBs o de Struts. ¿Traducido para no desarrolladores? Un entorno que escala muy bien, a bajo coste, pero muy controlado para que no se «desmadre» basado sobre todo en librerías estándares, de las que también faltan algunas muy significativas.

En general, Google App Engine está todavía muy lejos de ser un producto maduro. Este soporte de Java puede atraer desarrolladores, sobre todo porque los hostings económicos que soporten Java escasean, pero difícilmente lo hará con empresas hasta que evolucione bastante. Como producto se sigue perfilando como un entorno muy controlado y limitado, lejos de la flexibilidad – y mayor complejidad – de las soluciones tipo «infraestructura como servicio» que ofrecen los web services de Amazon.

Para solicitar entrar en el beta test, appengine.google.com. Qué entra y qué no, en el grupo oficial. También lo comenta Nube blog.

debug_mode=ON comunidad y desarrollo software

debug mode=ON

Hace tiempo que recibí una invitación para conocer debug_mode=ON una comunidad sobre del desarrollo software y otras áreas de la informática y las telecomunicaciones (administración de sistemas, telecomunicaciones). Toda vez que debug_mode=ON se ha construido sobre Google App Engine, las limitaciones de éste han impuesto que no esté accesible cada vez que iba a probarlo. Como plataforma incluye la posibilidad de subir artículos añadiendo si lo deseas tu AdSense para llevarte ingresos (a lo Knol) y los grupos que actúan a modo de categoría para los contenidos y los foros asociados.

El desarrollo software es una de las áreas más difíciles de abordar editorialmente, es muy difícil dar con buenos contenidos que interesen a la mayor parte del público potencial, que suele gustar más de nichos especializados: el que desarrolla en Java casi siempre encuentra una mejor relación señal/ruido en Javahispano que en un sitio que abarque otros muchos temas. La separación en grupos/categorías que hacen sitios como debug_mode=ON puede ayudar, pero cada vez que en WeblogsSL nos hemos planteado un blog sobre desarrollo software acabamos en el mismo laberinto: dar con un enfoque que pueda interesar a un público potencial suficiente.

Tiene cosas interesantes debug_mode=ON, la idea de conectar gente respecto a temas más de nicho tiene potencial y trabajándola para mejorar la experiencia de usuario en esa relación señal/ruido parece un camino interesante a explorar. Eso sí, yo le quitaría el estigma de «red social»… con buen criterio, lo social ocupa un lugar secundario.

La era de las plataformas como servicio

Google App Engine es el movimiento más importante en tecnologías de la información en lo que llevamos de año. Y lo es no porque se haya inventado un modelo ni porque haya sido Google (aunque esto pese), sino porque plantea las plataformas como servicio de una forma pasmosamente sencilla y entra en dicho mercado insinuando una reducción considerable de precios. Las plataformas como servicio vienen a suponer que el desarrollador de aplicaciones web se olvida de almacenaje de ficheros, de gestión de la base de datos, de balanceo entre máquinas, de ancho de banda, de escalabilidad, de picos de demanda, de estabilidad, de tocar una máquina servidor… en definitiva, la plataforma sobre la que construyes tu aplicación web ya no es cosa tuya, es del servicio que contratas y que pagas religiosamente.

Concentrarte en tu aplicación y ahorrar costes, son las dos ventajas inmediatas de las plataformas como servicio. No sólo porque vendan almacenamiento y ancho de banda más barato que un pequeño proveedor, sino porque también adquirir el conocimiento para montar arquitecturas que escalen cuesta mucho dinero (o muchos años de esfuerzo, aunque el rol de administrador de sistemas va a cambiar mucho si se impone como tendencia). Por supuesto tienen sus peros, como comentamos en «tu aplicación sobre web services«: depender de un único proveedor (algo con lo que tener mucho cuidado, diseñando la aplicación para tener poco acoplamiento y probándola también siempre en un servidor de toda la vida) y comerte también sus caídas, aunque se antoja improbable que por uno mismo se consiga la disponibildiad de Amazon o Google.

El movimiento de estos dos gigantes de la web (en el mercado de las aplicaciones como servicio también está Salesforce con Force.com o Joyent) es una lucha por el rol por el que siempre ha apostado Microsoft con todas sus fuerzas: ser la plataforma sobre la que otros construyen sus aplicaciones, tanto en el escritorio como en el lado del servidor. De hecho, aunque la estructura de costes suponga un ahorro considerable respecto a mantener tu propia infraestructura y administradores, el modelo se asemeja, en lugar de pagar licencias y/o mantenimiento, se cobrará por recursos consumidos mensualmente. ¿Significa esto que Redmon está fuera de juego? Probablemente no, siempre han hecho por llegar a los mercados más tarde que sus competidores y aprovechar su capacidad de integración con el resto de su universo (que en el caso del mundo de los desarrolladores es brutal). Algo sacarán y competirán también en el cloud computing, aunque la batalla se juega en el terreno rival y me da que esta vez es Google quien asemeja cada vez más a los gigantes que han dominado épocas de la tecnología de la información como han sido IBM y la propia Microsoft.

Sobre Google App Engine y las plataformas como servicio se ha escrito ya bastante e interesante. Muy recomendable el post de Víctor, «El futuro es distribuido» y la aproximación más técnica de Gallir. En inglés, me quedo con las reflexiones de Dan Faber, a quien he robado el título del post.

Google App Engine frente a los web services de Amazon

Google App EngineHora de mirar un poco más a fondo Google App Engine y de analizar su propuesta de valor como alternativa a los Amazon Web Services. Como explicamos, Google App Engine plantea la infraestructura (el hosting, el procesamiento y la base de datos) como servicio, aunque con algunos matices que lo hacen diferente a la propuesta de Amazon.

  • Google App Engine es un paquete indisoluble. Mientras que de los web services de Amazon podías escojer unos y pasar de otros, Google no da esa opción.
  • De momento sólo se puede usar Python, pero en el futuro se abrirá a otros lenguajes. Me da que Python se va a popularizar bastante, los programadores que no hemos llegado a los lenguajes dinámicos vamos a tener que actualizarnos.
  • Para bases de datos ofrecen BigTable frente a Simple Db. Como era de esperar nada de bases de datos relacionales. Para hosting dan GFS frente a S3.
  • Un punto en el que Google App Engine gana es en la eliminación de la barrera de entrada: probarlo es gratis y lo seguirá siendo para usos básicos (500 MB de espacio de almacenamiento, 200 millones de megaciclos de CPU por día y 10 GB de transferencia diarios). Además no precisa de preparar las máquinas virtuales que exige Amazon EC2 (más flexible pero también más complejo), escala automáticamente. Estos dos puntos creo que son un gran punto a favor de Google.
  • Google aprovecha para ligar la plataforma al resto de sus productos: el resto de APIs y las cuentas de GMail. Al integrar ambas a tope favorece la adopción de otros servicios de la compañía a Google App Engine obtiene un retorno indirecto que le permite competir en precios de forma muy agresiva.

Amazon y el resto de actores de las plataformas como servicio tienen motivos para preocuparse. Google entra en el terreno de juego, con algunos puntos muy buenos a pesar de que se trata de una beta que tiene todavía que crecer mucho. Como empresa, hoy más que nunca, Google se asemeja cada vez más a los gigantes que han dominado épocas de la tecnología de la información como han sido IBM y Microsoft.

PD: Por cierto, a poco que uno desarrolle un poco y se mueva con soltura en estos entornos, ya tenemos un hosting básico y gratuito para todo lo que hagamos en Python. Compañías de hosting, un ojo a esto.

PPD: ¿Merece la pena desarrollar tu aplicación web en este tipo de plataformas? Creo que este post sobre la de Amazon sigue siendo vigente.

Más información en code.google.com/appengine.

Google App Engine y la identificación de usuarios: GMail hacia Passport.

GMailSigo mirando esto del Google App Engine y el tema que más me ha interesado/preocupado es como proponen la identificación de usuarios a quienes desarrollen aplicaciones sobre él: uso de las cuentas Google (cuentas GMail) o cuentas de Google Apps. La idea es que, por tanto, otras aplicaciones utilicen los identificadores de Google, redirigiendo para registrarse o identificarse a la página de Google y pudiendo acceder al nick y a la cuenta de correo una vez que el usuario esté identificado. En ningún momento accederían a la contraseña, gestionándose el proceso mediante auth (su versión alternativa al estándar abierto Oauth).

Decepcionante como Google parece querer configurarse en el nuevo Passport (para quien no lo recuerde, era la plataforma de Microsoft de identificación que ya sólo se usa en sus sistemas y tenía vocación se single sign on para toda la web), extendiendo y promocionando un sistema que les tiene como único proveedor de identidad. ¿Qué le hubiese gustado a uno encontrar en este Google App Engine? Partiendo que ofrecer un sistema de identificación es una buena manera de ofrece más valor que los Amazon Webg Services, lo ideal hubiese sido dar soporte directo a OpenId (aunque las aplicaciones se pueden desarrollar para utilizarlo, claro).

Preocupante cuando menos que volvamos a tener que asistir a un intento de que un sólo proveedor se postule como identificador universal en la web.

Más información en la FAQ de GAE.

Relacionado: Infocards como metasistema de identidad Windows Vista.

Google App Engine, tu aplicación web con Google

Google App EngineGoogle App Engine supone la entrada de Google en el negocio de los web services, ofreciendo una solución para construir aplicaciones web sobre su infraestructura. Google App Engine supone posicionarse como alternativa a los Amazon Web Services y empieza hoy como beta cerrada y gratuita, limitada a 10.000 desarrolladores. He intentado registrarme en el sitio oficial y parece que he llegado tarde, quedando en «lista de espera».

Actualización: me ha llegado ya la invitación, apenas media hora después de haberla solicitado y ya estoy creando mi primera aplicación con Google App Engine.

Hace poco comentábamos la posibilidad de que Google entrara en el mercado de los web services como finalmente ha hecho. Siguiendo los pasos de Amazon, Google App Engine supone la apuesta por aprovechar todo el conocimiento y la infraestructura desarrollados en escalabilidad de aplicaciones y ponerlo a disposición de terceros. De todos sus intentos anteriores, Google App Engine me parece el más serio a la hora de querer diversificar ingresos y no depender sólo de la publicidad (aunque de momento no hay tarifas y durante la beta será gratuito).

Tiempo habrá para mirar con lupa este Google App Engine. De momento, la documentación está en code.google.com, además del SDK descargable. También han creado un blog propio y tenemos el anuncio oficial. Sin duda, uno de los movimientos más importantes en lo que llevamos de año.

Google Web Services

Unos hipotéticos Google Web Services es con lo que especula Dave Winer. Sería una plataforma de servicios web análogos a la oferta de Amazon Web Services y el propio Winer se atreve a sostener que deberían ser gratuitos. La tesis es que los Google Web Services harían que los desarrolladores y compañías tuviesen más experiencia en uso de tecnologías Google y por tanto se reducirían los procesos de aprendizaje/adaptación en caso de contratación o compra, amén de que Google suele entrar en los mercados apostando por la gratuidad.

Al margen de que unos hipotéticos Google Web Services tendrían mucho sentido, en Google tienen la infraestructura y creen en el cloud computing, no veo muy claro que esta vez la gratuidad sea la opción más interesante para ellos. Con Google Apps lo que intentan es diversificar ingresos, no seguir siendo una compañía exclusivamente dependiente de la publicidad. Aunque la aparición de los Google Web Services tenga que venir acompañada de una propuesta que mejore lo que Amazon ya da (sea en precio, en potencia o en ambas), no veo nada claro que Google pueda tener un retorno satisfactorio al ceder gratis sus infraestructuras a terceros y que le convenga hacerlo, los Google Web Services sí que pueden ser una opción más que interesante de ingresos alternativos a la publicidad.

Actualización 08/04/08: Ya ha visto la luz, Google App Engine, tu aplicación web con Google.