Elige un entorno de App Engine

Puedes ejecutar tus aplicaciones en App Engine mediante el entorno flexible o el entorno estándar. También puedes optar por usar simultáneamente ambos entornos para tu aplicación y permitir que tus servicios aprovechen los beneficios individuales de cada entorno.

Los entornos de App Engine

App Engine es muy adecuado para aplicaciones diseñadas con una arquitectura de microservicio, especialmente si decides usar ambos entornos. Usa las siguientes secciones para aprender y comprender qué entorno satisface mejor las necesidades de tu aplicación.

Cuándo elegir el entorno estándar

Las instancias de la aplicación se ejecutan en una zona de pruebas mediante el entorno de ejecución de un lenguaje compatible que se enumera a continuación. Aplicaciones que necesitan lidiar con escalamiento rápido. El entorno estándar es óptimo para aplicaciones con las siguientes características:

  • El código fuente está escrito en versiones específicas de los lenguajes de programación compatibles: Python 2.7, Python 3.7, Python 3.8 y Python 3.9, Java 8, Java 11, Node.js 8, Node.js 10, Node.js 12 y Node.js 14, PHP 5.5, PHP 7.2, PHP 7.3 y PHP 7.4,  Ruby 2.5, Ruby 2.6 y Ruby 2.7, Go 1.11, Go 1.12, Go 1.13, Go 1.14 y Go 1.15.
  • Diseñado para ejecutarse de forma gratuita o a un costo muy bajo: pagas solo por lo que necesitas y cuando lo necesitas. Por ejemplo, tu aplicación puede escalar a 0 instancias cuando no hay tráfico.
  • Experimenta picos repentinos y extremos de tráfico que requieren escalamiento inmediato.

Cuándo elegir el entorno flexible

Las instancias de aplicación se ejecutan dentro de contenedores Docker en máquinas virtuales (VM) de Compute Engine. Las aplicaciones que reciben tráfico coherente, que experimentan fluctuaciones de tráfico regulares o que cumplen los parámetros para escalar gradualmente.
El entorno flexible es óptimo para aplicaciones con las siguientes características: 
  • El código fuente está escrito en una versión de alguno de los lenguajes de programación compatibles: PythonJavaNode.jsGoRubyPHP o .NET
  • Se ejecuta en un contenedor de Docker que incluye un entorno de ejecución personalizado o código fuente escrito en otros lenguajes de programación.
  • Usa o depende de frameworks que incluyen código nativo.
  • Accede a los recursos o servicios de tu proyecto de Google Cloud que se encuentran en la red de Compute Engine.

Compara características de alto nivel

La siguiente tabla resume las diferencias entre los dos entornos:

Función Entorno estándar Entorno flexible
Tiempo de inicio de instancia Segundos Minutos
Tiempo de espera máximo de una solicitud Depende del entorno de ejecución y el tipo de escalamiento. 60 minutos
Hilos en segundo plano Sí, con restricciones
Procesos en segundo plano No
Depuración de SSH No
Escalamiento Manual, Básico, Automático Manual, Automático
Escala a cero No, mínimo 1 instancia
Escritura en disco local
  • Java 8, Java 11, Node.js, Python 3, PHP 7, Ruby, Go 1.11 y Go 1.12+ tienen acceso de lectura y escritura al directorio /tmp.
  • Python 2.7 y PHP 5.5 no tienen acceso de escritura al disco.
Sí, efímero (disco inicializado en cada inicio de VM)
Modificación del entorno de ejecución No Sí (a través de Dockerfile)
Tiempo de implementación Segundos Minutos
Parches de seguridad automáticos en el lugar Sí (excluye el entorno de ejecución de la imagen del contenedor)
Acceso a las API y los servicios de Google Cloud, como Cloud Storage, Cloud SQL, Memorystore, Tasks y otros.
WebSockets No
Java 8, Python 2 y PHP 5 proporcionan una API de Sockets propia (Beta), pero la API no está disponible en entornos de ejecución estándar más recientes.
Admite la instalación de binarios de terceros
  • Sí, para Java 8, Java 11, Node.js, Python 3, PHP 7, Ruby, Go 1.11 y Go 1.12+.
  • No para Python 2.7 y PHP 5.5.
Ubicación América del Norte, Asia-Pacífico o Europa América del Norte, Asia-Pacífico o Europa
Precios Basado en horas de instancia Basado en el uso de CPU virtual, memoria y discos persistentes

Compara el entorno flexible con Compute Engine

El entorno flexible de App Engine tiene las siguientes diferencias con Compute Engine:

  • Las instancias de VM del entorno flexible se reinician semanalmente. Durante los reinicios, los servicios de administración de Google aplican todas las actualizaciones necesarias del sistema operativo y de seguridad.

  • Siempre tienes acceso raíz a las instancias de VM de Compute Engine. De forma predeterminada, el acceso SSH a las instancias de VM en el entorno flexible está inhabilitado. Si lo deseas, puedes habilitar el acceso raíz a las instancias de VM de tu aplicación.

  • Las implementaciones de código pueden llevar más tiempo, ya que las imágenes de contenedor se crean mediante el servicio Cloud Build.

  • La región geográfica de una instancia de VM del entorno flexible está determinada por la ubicación que especifiques para la aplicación de App Engine de tu proyecto de Cloud. Los servicios de administración de Google garantizan que las instancias de VM estén ubicadas de forma conjunta para un rendimiento óptimo.