Servicio de alojamiento de aplicaciones web basado en la nube
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 almacenan en un entorno aislado y se ejecutan en varios servidores administrados por Google. [2] GAE admite el escalado automático de aplicaciones web, asignando más recursos a la aplicación web a medida que aumenta la cantidad de solicitudes. [3] Se lanzó como vista previa en abril de 2008 y se lanzó oficialmente en septiembre de 2011.
App Engine admite aplicaciones escritas en Go , PHP , Java , Python , Node.js , .NET y Ruby , y se puede admitir otros lenguajes por un costo adicional. [4] La versión gratuita del servicio ofrece un entorno estándar con recursos limitados. Se cobran tarifas 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 del lanzamiento. [6] Cualquier framework de Python que admita WSGI mediante el adaptador CGI se puede utilizar para crear una aplicación, y el framework se puede cargar 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 de Google Cloud Datastore de App Engine tiene una sintaxis similar a SQL llamada " GQL " ( lenguaje de consulta de Google ). GQL no admite la declaración de unión . [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 a 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]
Backends
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 a partir del 13 de marzo de 2014, en favor de la API de módulos. [15]
SQL en la nube de Google
En octubre de 2011, Google presentó una versión preliminar de una base de datos SQL que no requiere mantenimiento y que es compatible con JDBC y DB-API. [16] Este servicio permite crear, configurar y utilizar bases de datos relacionales con aplicaciones de App Engine. Google Cloud SQL es compatible con MySQL 8.0, 5.7 y 5.6. [17]
Restricciones
- Los desarrolladores tienen acceso de solo lectura al sistema de archivos de 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 en segundo plano programadas permiten solicitudes HTTP autollamadas).
- Los usuarios pueden cargar módulos Python arbitrarios, pero solo si son Python puro. 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. [18] Esta restricción no existe con el entorno de ejecución Java8 de App Engine Standard.
- Un proceso iniciado en el servidor para responder 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, incluida la limitación de la cantidad de datos que se serializan y 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 requiere que los desarrolladores 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 [19] se puede utilizar para aplicaciones de App Engine que requieran un backend de base de datos relacional compatible con MySQL . [20]
Las cuotas por día y por minuto imponen restricciones sobre el uso de ancho de banda y CPU, la cantidad de solicitudes atendidas, la cantidad de solicitudes simultáneas y las llamadas a las distintas API. Las solicitudes individuales se terminan si demoran más de 60 segundos o devuelven más de 32 MB de datos.
Preocupaciones sobre la portabilidad
Los desarrolladores se preocupan de que las aplicaciones no sean portables desde App Engine y temen quedar atrapados en la tecnología. [21] En respuesta, hay una serie de proyectos para crear back-ends de código abierto para las diversas API cerradas/propietarias del motor de aplicaciones, 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 y en clústeres locales. [22] Puede ejecutar aplicaciones Python, Java, PHP y Go en EC2, Google Compute Engine, Azure y otros proveedores de nube.
El marco web Web2py ofrece migración entre bases de datos SQL y Google App Engine, sin embargo, no admite varias funciones específicas de App Engine, como transacciones y espacios de nombres. [23]
Kubernetes es un sistema de control de trabajos 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 otros.
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 una cantidad ilimitada de aplicaciones pagas. [24]
Google App Engine define cuotas de uso para aplicaciones gratuitas. Se pueden solicitar extensiones de estas cuotas y los autores de aplicaciones pueden pagar por recursos adicionales. [25]
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 .
- ^ "Python Runtime Environment - 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.
- ^ ab "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 .
- ^ Google Developers (7 de abril de 2008). "Campfire One: Introducción a Google App Engine (parte 3)" – 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 de backends: entorno estándar de App Engine para Python: Google Cloud Platform". Google Cloud Platform .
- ^ "Descripción general de la API de Python de backends: entorno estándar de App Engine para Python: Google Cloud Platform". Google Cloud Platform .
- ^ "Google Cloud SQL: tu base de datos en la nube - El blog oficial de Google Code". 6 de octubre de 2011.
- ^ "Funciones 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. Consultado el 14 de junio de 2013 .
- ^ "Bases de datos de Google Cloud SQL - 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 y será difícil escapar de él». Ars Technica . Consultado el 17 de julio de 2012 .
- ^ AppScale se lanza como un equivalente de código abierto de Google App Engine para copias de seguridad. TechCrunch (24 de junio de 2013). Consultado el 18 de septiembre de 2013.
- ^ [1] 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 .
- ^ "Entender las cuotas de 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), Google App Engine Java and GWT Application Development (1.ª ed.), Packt Publishing , pág. 480, ISBN 978-1-84969-044-7
- Roche, Kyle; Douglas, Jeff (31 de diciembre de 2009), Beginning 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: ejecute sus aplicaciones web en la infraestructura de Google: charla técnica a cargo del ingeniero de Google Guido van Rossum en la Universidad de Stanford . (Archivo de videos 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 .
- Bibliotecas y marcos de Java compatibles
- Libro Web2py - documentación en línea - receta de implementación de Google App Engine
- Proyectos de muestra de Google Cloud SQL
- Google Cloud es compatible con node.js
- Appmd: proyecto de ejemplo de desarrollo de Python. App Engine/django/Google Closure/Endpoints/Material Design