¿Cuál es la diferencia entre Google App Engine y Google Compute Engine?
Me preguntaba cuál es la diferencia entre App Engine y Compute Engine. ¿Alguien puede explicarme la diferencia?
App Engine es una plataforma como servicio. Significa que simplemente implementas tu código y la plataforma hace todo lo demás por ti. Por ejemplo, si su aplicación tiene mucho éxito, App Engine creará automáticamente más instancias para manejar el mayor volumen.
Leer más sobre App Engine
Compute Engine es una infraestructura como servicio. Tienes que crear y configurar tus propias instancias de máquina virtual. Le brinda más flexibilidad y generalmente cuesta mucho menos que App Engine. El inconveniente es que usted mismo debe administrar su aplicación y sus máquinas virtuales.
Leer más sobre Compute Engine
Puedes combinar App Engine y Compute Engine, si es necesario. Ambos funcionan bien con las otras partes de Google Cloud Platform .
EDITAR (mayo de 2016):
Una distinción más importante: los proyectos que se ejecutan en App Engine pueden reducirse a cero instancias si no llegan solicitudes. Esto es extremadamente útil en la etapa de desarrollo, ya que puedes pasar semanas sin sobrepasar la generosa cuota gratuita de horas de instancia. El tiempo de ejecución flexible (es decir, "VM administradas") requiere que al menos una instancia se ejecute constantemente.
EDITAR (abril de 2017):
Cloud Functions (actualmente en versión beta) es el siguiente nivel de App Engine en términos de abstracción: ¡sin instancias! Permite a los desarrolladores implementar fragmentos de código pequeños que se ejecutan en respuesta a diferentes eventos, que pueden incluir solicitudes HTTP, cambios en Cloud Storage, etc.
La mayor diferencia con App Engine es que las funciones tienen un precio por 100 milisegundos, mientras que las instancias de App Engine se cierran sólo después de 15 minutos de inactividad. Otra ventaja es que Cloud Functions se ejecuta inmediatamente, mientras que una llamada a App Engine puede requerir una nueva instancia, y el inicio en frío de una nueva instancia puede tardar unos segundos o más (según el tiempo de ejecución y su código).
Esto hace que Cloud Functions sea ideal para (a) llamadas raras: no es necesario mantener activa una instancia en caso de que algo suceda, (b) cargas que cambian rápidamente donde las instancias a menudo giran y se cierran, y posiblemente para más casos de uso.
Lea más sobre las funciones de la nube
La diferencia básica es que Google App Engine ( GAE ) es una plataforma como servicio ( PaaS ) , mientras que Google Compute Engine ( GCE ) es una infraestructura como servicio ( IaaS ) .
Para ejecutar su aplicación en GAE solo necesita escribir su código e implementarlo en GAE, sin ningún otro dolor de cabeza. Dado que GAE es totalmente escalable, adquirirá automáticamente más instancias en caso de que el tráfico aumente y disminuirá las instancias cuando el tráfico disminuya. Se le cobrará por los recursos que realmente utilice , es decir, se le facturarán las horas de instancia , los datos transferidos , el almacenamiento , etc., que su aplicación realmente utilizó. Pero la restricción es que puede crear su aplicación solo en Python, PHP, Java, NodeJS, .NET, Ruby y **Go .
Por otro lado, GCE le proporciona una infraestructura completa en forma de máquina virtual . Tiene control total sobre el entorno y el tiempo de ejecución de esas máquinas virtuales, ya que puede escribir o instalar cualquier programa allí. En realidad, GCE es la forma de utilizar los centros de datos de Google de forma virtual. En GCE, debe configurar manualmente su infraestructura para manejar la escalabilidad mediante Load Balancer .
Tanto GAE como GCE son parte de Google Cloud Platform .
Actualización: en marzo de 2014, Google anunció un nuevo servicio en App Engine llamado Managed Virtual Machine . Las máquinas virtuales administradas ofrecen a las aplicaciones del motor de aplicaciones un poco más de flexibilidad sobre la plataforma de la aplicación, la CPU y las opciones de memoria. Al igual que GCE, puede crear un entorno de ejecución personalizado en estas máquinas virtuales para la aplicación del motor de aplicaciones. Las máquinas virtuales realmente administradas de App Engine desdibujan hasta cierto punto la frontera entre IAAS y PAAS.