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
    • Java 8, Java 11 (Beta)
    • Node.js 8, Node.js 10
    • PHP 5.5, PHP 7.2 y PHP 7.3 (Beta)
    • Ruby 2.5 (Beta)
    • Go 1.9, Go 1.11 y Go 1.12
  • 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:

  • Código fuente escrito en una versión de cualquiera de los lenguajes de programación compatibles:
    Python, Java, Node.js, Go, Ruby, PHP o .NET
  • Se ejecuta en un contenedor Docker que incluye un entorno de ejecución personalizado o código fuente escrito en otros lenguajes de programación.
  • Usa o depende de marcos de trabajo que incluyen código nativo.
  • Accede a los recursos o servicios de tu proyecto de Google Cloud Platform que residen 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 60 segundos - Más información 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 (Beta), Node.js, Python 3.7, PHP 7.2, PHP 7.3 (Beta), Ruby 2.5 (Beta), Go 1.11 y Go 1.12 tienen acceso de lectura y escritura al directorio/tmp.
  • Python 2.7, Go 1.9 y PHP 5.5 no tienen acceso de escritura al disco.
Sí, efímero (disco inicializado en cada startup 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 servicios de App Engine, como NDB, API de Usuarios, Memcache, API de Imágenes y otros.
  • Sí para Python 2.7, Go 1.9, PHP 5.5 y Java 8
  • No para Java 11 (Beta), Node.js, Python 3.7, PHP 7.2, PHP 7.3 (Beta), Ruby 2.5 (Beta), Go 1.11 y Go 1.12
No
Acceso a la red
  • Sí, para Java 8, Java 11 (Beta), Node.js, Python 3.7, PHP 7.2, PHP 7.3 (Beta), Ruby 2.5 (Beta), Go 1.11 y Go 1.12.
  • Python 2.7, Go 1.9 y PHP 5.5 (habilitado para facturación): Solo a través de los servicios de App Engine (incluye sockets salientes).
Admite la instalación de binarios de terceros
  • Sí, para Java 8, Java 11 (Beta) Node.js, Python 3.7, PHP 7.2, PHP 7.3 (Beta), Ruby 2.5 (Beta), Go 1.11 y Go 1.12.
  • No para Python 2.7, Go 1.9 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

Para una comparación en profundidad de los entornos, consulta la guía de tu lenguaje: Python, Java, Go o PHP.

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 App Engine de tu proyecto de GCP. Los servicios de administración de Google garantizan que las instancias de VM estén ubicadas conjuntamente para un rendimiento óptimo.

Migra del entorno estándar al flexible

Si tienes una aplicación en el entorno estándar, es posible que desees mover algunos servicios al entorno flexible. Si quieres obtener asesoramiento, consulta las recomendaciones para Python, Java, Go y PHP.

Si quieres migrar servicios específicos, consulta las instrucciones para Python, Java, Go y PHP.

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Documentación de App Engine