¿Para qué se utiliza Google App Engine?

Google App Engine es una plataforma como servicio.

Los servidores normales en la nube (como Amazon AWS) le ofrecen un servidor virtual en la nube. Obtiene una abstracción de una máquina física, y tiene que hacer todo lo demás usted mismo. Para construir un sitio web aquí, necesitaría instalar un sistema operativo (como Linux), luego instalar un servidor web (como Apache), luego agregar un intérprete para su idioma preferido en el servidor web (como modpython para Python) e instalar una base de datos (como MySQL). Por supuesto, si desea utilizar múltiples servidores o múltiples bases de datos o múltiples servidores web para la escalabilidad, está completamente solo. Y, paga por servidor por mes.

Un nivel más alto que este son jugadores como Heroku o Webfaction. Tienen instalado el sistema operativo, tienen instalado el servidor web, tienen instalado el intérprete y tienen instalada la base de datos. Solo necesita escribir su aplicación y conectar todas las piezas anteriores juntas. Como antes, si desea utilizar múltiples servidores o múltiples bases de datos o múltiples servidores web para la escalabilidad, está completamente solo. Por lo general, en dichos hosts compartidos, paga por el “número de instancias” que tiene ejecutando cualquier aplicación, y el tamaño de cada una (en términos de memoria o ancho de banda consumido).

Google AppEngine es un nivel más alto que esto. Aquí, no está expuesto al servidor web ni a la base de datos. Simplemente obtienes una plataforma donde comienzas a escribir código Python o Java (o ahora se admiten muchos otros idiomas), y hay una API de almacenamiento de datos que utilizas directamente sin preocuparte por la base de datos en la que está almacenada. Lo mejor de todo es que AppEngine se encarga de la escalabilidad, manejando automáticamente la distribución de su aplicación entre servidores web y bases de datos. Y aquí, paga por separado cada recurso consumido (como memoria, ancho de banda, GB de almacenamiento, MB de datos en la base de datos, número de correos electrónicos enviados, etc.).

La ventaja de AppEngine es que si su aplicación cumple con sus limitaciones, no tiene que preocuparse por nada. Todo está arreglado. La desventaja es que si sus requisitos no coinciden exactamente con lo que proporcionan, hacer algo diferente es muy difícil, si no imposible.

Además de lo que Navin mencionó en su respuesta, GAE también proporciona un conjunto de servicios que son útiles para construir aplicaciones web más rápido.

  1. OAuth: lo ayuda a implementar la autenticación en minutos si desea usar OAuth (por ejemplo, iniciar sesión con la cuenta de Google).
  2. Multi-arrendamiento: es fácil de compartimentar sus datos de Google App Engine.
  3. Cola de tareas: para ejecutar algunos trabajos en segundo plano.
  4. Búsqueda: Indice, consulte y responda la respuesta: todo utilizando algunas API simples.
  5. Almacenamiento en caché: Memcache como servicio.

Puede consultar la documentación de GAE para obtener la lista completa.

Recomendaría GAE si es un desarrollador de aplicaciones (o un equipo de programadores) que construye un sitio web / aplicación web / back-end para una aplicación móvil y espera algunos millones de solicitudes por mes al principio.

Pero si está creando algo realmente grande (Quora, Twitter, Linkedin o Groupon), entonces AWS es lo que debe elegir.


Otros dos hilos útiles sobre el mismo tema:

1. ¿Google App Engine es bueno?
2. ¿Cuáles son las diferencias entre Google App Engine y Amazon Web Services?