Google App Engine (también conocido como GAE o App Engine ) es una plataforma de computación en la nube que se utiliza como servicio para desarrollar y alojar aplicaciones web . Las aplicaciones se ejecutan en entornos aislados (sandboxes ) en varios servidores administrados por Google. [ 2 ] GAE admite el escalado automático para aplicaciones web, asignando más recursos a la aplicación a medida que aumenta el número de solicitudes. [ 3 ] Se lanzó como versión preliminar en abril de 2008 y se lanzó oficialmente en septiembre de 2011.
Las aplicaciones escritas en Go , PHP , Java , Python , Node.js , .NET y Ruby son compatibles con App Engine, y se puede admitir otros lenguajes con un costo adicional. [ 4 ] La versión gratuita del servicio ofrece un entorno estándar con recursos limitados. Se aplican cargos por almacenamiento adicional, ancho de banda u horas de instancia. [ 5 ]
Características
Google App Engine admite principalmente aplicaciones Go , PHP , Java , Python , Node.js , .NET y Ruby , aunque también puede admitir otros lenguajes a través de "tiempos de ejecución personalizados". [ 4 ]
Los frameworks web de Python que se ejecutan en Google App Engine incluyen Django , CherryPy , Pyramid , Flask y web2py, así como un framework de aplicaciones web escrito por Google y varios otros diseñados específicamente para la plataforma que se crearon después de su lanzamiento. [ 6 ] Cualquier framework de Python que admita WSGI mediante el adaptador CGI puede usarse para crear una aplicación, y el framework puede cargarse junto con la aplicación desarrollada. También se pueden cargar bibliotecas de terceros escritas en Python. [ 7 ] [ 8 ]
La versión 1.2.2 del SDK agregó soporte para descargas masivas de datos usando Python. [ 9 ]
La base de datos integrada Google Cloud Datastore de App Engine tiene una sintaxis similar a SQL llamada " GQL " ( Google Query Language ). GQL no admite la instrucción JOIN . [ 10 ] En cambio, las relaciones de uno a muchos y de muchos a muchos se pueden lograr usando ReferenceProperty(). [ 11 ]
Google Cloud Firestore es el sucesor de Google Cloud Datastore y reemplaza GQL con un método de consulta basado en documentos que trata los objetos almacenados como colecciones de documentos. Firestore se lanzó en octubre de 2017. [ 12 ]
Sistemas de backend
En Google I/O 2011, Google anunció los backends de App Engine , que podían ejecutarse de forma continua y consumir más memoria. [ 13 ] [ 14 ] La API de backend quedó obsoleta el 13 de marzo de 2014, en favor de la API de módulos. [ 15 ] La API de módulos introdujo un control más preciso sobre el escalado, el versionado y la asignación de recursos, lo que permitió a los desarrolladores ejecutar diferentes partes de una aplicación con configuraciones de rendimiento distintas. [ 16 ]
Google Cloud SQL
En octubre de 2011, Google presentó una base de datos SQL sin mantenimiento, compatible con JDBC y DB-API. [ 17 ] Este servicio permite crear, configurar y usar bases de datos relacionales con aplicaciones de App Engine. Google Cloud SQL es compatible con MySQL 8.0, 5.7 y 5.6. [ 18 ]
Restricciones
- Los desarrolladores tienen acceso de solo lectura al sistema de archivos en App Engine. Las aplicaciones solo pueden usar sistemas de archivos virtuales.
- App Engine solo puede ejecutar código llamado desde una solicitud HTTP (las tareas programadas en segundo plano permiten solicitudes HTTP que se llaman a sí mismas).
- Los usuarios pueden subir módulos Python arbitrarios, pero solo si están escritos íntegramente en Python. No se admiten módulos C ni Pyrex .
- Las aplicaciones Java solo pueden usar un subconjunto (la lista blanca de clases de JRE) de las clases de la edición estándar de JRE. [ 19 ] Esta restricción no existe con el entorno de ejecución Java8 estándar de App Engine.
- Un proceso iniciado en el servidor para responder a una solicitud no puede durar más de 60 segundos (con la versión 1.4.0, esta restricción ya no se aplica a los trabajos en segundo plano).
- No admite sesiones persistentes (también conocidas como afinidad de sesión); solo se admiten sesiones replicadas, lo que incluye una limitación en la cantidad de datos que se serializan y en el tiempo para la serialización de la sesión.
Alojamiento de aplicaciones
Mientras que otros servicios permiten a los usuarios instalar y configurar prácticamente cualquier software compatible con *NIX, App Engine exige a los desarrolladores que utilicen únicamente sus lenguajes, API y marcos de trabajo compatibles . Las API actuales permiten almacenar y recuperar datos de la base de datos orientada a documentos Google Cloud Datastore , realizar solicitudes HTTP, enviar correos electrónicos, manipular imágenes y almacenar en caché. Google Cloud SQL [ 20 ] se puede utilizar para aplicaciones de App Engine que requieran un backend de base de datos relacional compatible con MySQL . [ 21 ]
Las cuotas diarias y por minuto imponen restricciones al ancho de banda y al uso de la CPU, al número de solicitudes atendidas, al número de solicitudes simultáneas y a las llamadas a las distintas API. Las solicitudes individuales se cancelan si tardan más de 60 segundos o devuelven más de 32 MB de datos.
Preocupaciones sobre la portabilidad
Los desarrolladores temen que las aplicaciones no sean portátiles desde App Engine y queden atrapados en la tecnología. [ 22 ] En respuesta, existen varios proyectos para crear back-ends de código abierto para las diversas API propietarias/cerradas de App Engine, especialmente el almacén de datos.
AppScale implementa y escala automáticamente aplicaciones de Google App Engine sin modificar en sistemas de nube públicos y privados populares, así como en clústeres locales. [ 23 ] Puede ejecutar aplicaciones de Python, Java, PHP y Go en EC2, Google Compute Engine, Azure y otros proveedores de nube.
El framework web Web2py ofrece migración entre bases de datos SQL y Google App Engine; sin embargo, no admite varias características específicas de App Engine, como transacciones y espacios de nombres. [ 24 ]
Kubernetes es un sistema de control de tareas de código abierto inventado por Google para abstraer la infraestructura, de modo que las aplicaciones en contenedores de código abierto (por ejemplo, Docker) puedan ejecutarse en muchos tipos de infraestructura, como Amazon Web Services , Microsoft Azure y otras.
Cuotas de uso
Google App Engine requiere una cuenta de Google para comenzar, y una cuenta puede permitir al desarrollador registrar hasta 25 aplicaciones gratuitas y un número ilimitado de aplicaciones de pago. [ 25 ]
Google App Engine define cuotas de uso para las aplicaciones gratuitas. Se pueden solicitar extensiones de estas cuotas y los autores de las aplicaciones pueden pagar por recursos adicionales. [ 26 ]
Véase también
Referencias
- ↑ "Presentamos Google App Engine + nuestro nuevo blog" . Blog de Google App Engine . 7 de abril de 2008. Consultado el 3 de diciembre de 2019 .
- ↑ "Entorno de ejecución de Python - Google App Engine - Google Code" . 22 de febrero de 1999. Consultado el 14 de febrero de 2012 .
- ↑ Sanderson, Dan (2009). Programación de Google App Engine: Creación y ejecución de aplicaciones web escalables en la infraestructura de Google . O'Reilly Media . ISBN 978-0-596-52272-8.
- 1 2 "Documentación de Google App Engine | Documentación de App Engine" . Google Cloud . Consultado el 3 de diciembre de 2019 .
- ↑ "Cuotas - Google App Engine - Google Code" . 22 de febrero de 1999. Consultado el 14 de febrero de 2012 .
- ↑ "AppEngineFrameworks - tipfy - El pequeño y poderoso framework para Google App Engine - Google Project Hosting" . Consultado el 14 de febrero de 2012 .
- ↑ "¿Qué es Google App Engine? - Google App Engine - Google Code" . 22 de febrero de 1999. Consultado el 14 de febrero de 2012 .
- ↑ "Descripción general de la aplicación web - Google App Engine - Google Code" . 22 de febrero de 1999. Consultado el 14 de febrero de 2012 .
- ↑ "Carga y descarga de datos - Google App Engine - Google Code" . 22 de febrero de 1999. Consultado el 14 de febrero de 2012 .
- ↑ "Campfire One: Presentación de Google App Engine (parte 3)" . 7 de abril de 2008 – vía YouTube.
- ↑ "Modelado de relaciones entre entidades - Google App Engine — Google Developers" . 26 de junio de 2012. Consultado el 17 de julio de 2012 .
- ↑ "Google lanza Cloud Firestore, una nueva base de datos de documentos para desarrolladores de aplicaciones" . TechCrunch . 3 de octubre de 2017. Consultado el 16 de julio de 2018 .
- ↑ Google I/O 2011: Backends de App Engine en YouTube
- ↑ "Descripción general de la API de Python para backends: entorno estándar de App Engine para Python - Google Cloud Platform" . Google Cloud Platform .
- ↑ "Descripción general de la API de Python para backends: entorno estándar de App Engine para Python - Google Cloud Platform" . Google Cloud Platform .
- ↑ "Uso de la API de módulos | Documentación del entorno estándar de Google App Engine" . Google Cloud . Consultado el 16 de febrero de 2025 .
- ↑ "Google Cloud SQL: tu base de datos en la nube - El blog oficial de Google Code" . 6 de octubre de 2011.
- ↑ "Características de Cloud SQL - Documentación de Cloud SQL - Google Cloud Platform" . Google Cloud Platform .
- ↑ "Lista blanca de clases JRE - Google App Engine - Google Developers" . 22 de febrero de 1999. Archivado del original el 20 de marzo de 2015. Consultado el 14 de junio de 2013 .
- ↑ "Bases de datos SQL de Google Cloud - Cloud SQL - Google Cloud Platform" . Google Cloud Platform .
- ↑ "Uso de Google Cloud SQL - Entorno estándar de App Engine para Java - Google Cloud Platform" . Google Cloud Platform .
- ↑ Gallagher, Sean (9 de abril de 2008). "Análisis: Google App Engine es atractivo, será difícil escapar" . Ars Technica . Recuperado el 17 de julio de 2012 .
- ↑ AppScale se lanza como una alternativa de código abierto a Google App Engine para copias de seguridad . TechCrunch (24 de junio de 2013). Consultado el 18 de septiembre de 2013.
- ↑Archivado el 20 de febrero de 2010 en Wayback Machine .
- ↑ "Preguntas generales sobre Google App Engine" . Google Developers . Consultado el 18 de junio de 2015 .
- ↑ "Comprender las cuotas de las aplicaciones con Google App Engine" . Consultado el 16 de abril de 2010 .
Bibliografía
- Sanderson, Dan (26 de octubre de 2012), Programación de Google App Engine (2.ª ed.), O'Reilly Media , pág. 536, ISBN 978-1449398262
- de Jonge, Adriaan (31 de octubre de 2011), Essential App Engine: Building High-Performance Java Apps with Google App Engine (1.ª ed.), Addison-Wesley Professional , pág. 304, ISBN 978-0-321-74263-6
- Guermeur, Daniel; Unruh, Amy (24 de noviembre de 2010), Desarrollo de aplicaciones Java y GWT con Google App Engine (1.ª ed.), Packt Publishing , pág. 480, ISBN 978-1-84969-044-7
- Roche, Kyle; Douglas, Jeff (31 de diciembre de 2009), Introducción a Java Google App Engine (1.ª ed.), Apress , pág. 375, ISBN 978-1-4302-2553-9
- Sanderson, Dan (23 de noviembre de 2009), Programación de Google App Engine (1.ª ed.), O'Reilly Media , pág. 400 , ISBN 978-0-596-52272-8
- Severance, Charles (22 de mayo de 2009), Uso de Google App Engine (1.ª ed.), O'Reilly Media , pág. 262 , ISBN 978-0-596-80069-7
- Ciurana, Eugene (2 de febrero de 2009), Desarrollo con Google App Engine (1.ª ed.), Apress , pág. 164, ISBN 978-1-4302-1831-9
Enlaces externos
- Página oficial de marketing
- Sitio web oficial
- Blog oficial de Google Cloud Platform
- Notas de la versión
- Google App Engine: Ejecuta tus aplicaciones web en la infraestructura de Google : una charla técnica del ingeniero de Google Guido van Rossum en la Universidad de Stanford . ( Archivo de vídeo en línea )
- Beneficios de adoptar Google App Engine. Archivado el 2 de febrero de 2017 en Wayback Machine .
- Uso de una base de datos externa con Google App Engine. Archivado el 6 de agosto de 2017 en Wayback Machine .
- Marcos de trabajo y bibliotecas de Java compatibles
- Libro Web2py -- documentación en línea -- receta de implementación en Google App Engine
- Proyectos de ejemplo de Google Cloud SQL
- Google Cloud es compatible con Node.js.
- Appmd : Proyecto de ejemplo para desarrollo en Python. App Engine/Django/Google Closure/Endpoints/Material Design
- Servicios de Google
- Plataformas en la nube
- computación sin servidor
- Propiedades de Internet establecidas en 2008