![]() | This article'sfactual accuracy may be compromised due to out-of-date information. Please help update this article to reflect recent events or newly available information.(July 2024) |
![]() | |
Developer(s) | |
---|---|
Initial release | April 7, 2008; 16 years ago (2008-04-07)[1] |
Type | Platform as a service |
Website | cloud |
Google App Engine (also referred to asGAE orApp Engine) is acloud computingplatform used as a service for developing and hostingweb applications. Applications aresandboxed and run across multiple Google-managed servers.[2] GAE supports automatic scaling for web applications, allocating more resources to the web application as the amount of requests increases.[3] It was released as apreview in April 2008 and launched officially in September 2011.
Applications written inGo,PHP,Java,Python,Node.js,.NET, andRuby are supported by the App Engine, and other languages can be supported at an additional cost.[4] The free version of the service offers a standard environment with limited resources. Fees are charged for additional storage,bandwidth, or instance hours.[5]
Google App Engine primarily supportsGo,PHP,Java,Python,Node.js,.NET, andRuby applications, although it can also support other languages via "custom runtimes".[4]
Python web frameworks that run on Google App Engine includeDjango,CherryPy,Pyramid,Flask, andweb2py as well as a Google-written web app framework and several others designed specifically for the platform that was created after the release.[6] Any Python framework that supports theWSGI using the CGI adapter can be used to create an application, and the framework can be uploaded with the developed application. Third-party libraries written in Python may also be uploaded.[7][8]
SDK version 1.2.2 added support for bulk downloads of data using Python.[9]
App Engine's integratedGoogle Cloud Datastore database has aSQL-like syntax called "GQL" (Google Query Language). GQL does not support thejoin statement.[10] Instead, one-to-many and many-to-many relationships can be accomplished usingReferenceProperty()
.[11]
Google Cloud Firestore is the successor to Google Cloud Datastore and replaces GQL with a document-based query method that treats stored objects as collections of documents. Firestore was launched in October 2017.[12]
InGoogle I/O 2011, Google announcedApp Engine Backends, which were allowed to run continuously and consume more memory.[13][14] The Backend API was deprecated as of March 13, 2014, in favor of the Modules API.[15] The Modules API introduced finer control over scaling, versioning, and resource allocation, allowing developers to run different parts of an application with distinct performance settings.[16]
In October 2011, Google previewed a zero-maintenance SQL database, which supports JDBC and DB-API.[17] This service allows creating, configuring, and using relational databases with App Engine applications. Google Cloud SQL supports MySQL 8.0, 5.7, and 5.6.[18]
While other services let users install and configure nearly any *NIX compatible software, App Engine requires developers to use only itssupported languages, APIs, and frameworks. Current APIs allow storing and retrieving data from the document-orientedGoogle Cloud Datastore database, making HTTP requests, sending e-mail, manipulating images, and caching. Google Cloud SQL[20] can be used for App Engine applications requiring a relationalMySQL compatible database backend.[21]
Per-day and per-minute quotas place restrictions on bandwidth and CPU use, number of requests served, number of concurrent requests, and calls to the various APIs. Individual requests are terminated if they take more than 60 seconds or return more than 32MB of data.
Developers worry that the applications will not be portable from App Engine and fear being locked into the technology.[22] In response, there are a number of projects to create open-source back-ends for the various proprietary/closed APIs of the app engine, especially the datastore.
AppScale automatically deploys and scales unmodified Google App Engine applications over popular public and private cloud systems and on-premises clusters.[23] It can run Python, Java, PHP, and Go applications on EC2, Google Compute Engine, Azure, and other cloud vendors.
TheWeb2py web framework offers migration between SQL Databases and Google App Engine, however, it doesn't support several App Engine-specific features such as transactions and namespaces.[24]
Kubernetes is an open-source job control system invented by Google to abstract away the infrastructure so that open-source (e.g. Docker) containerized applications can run on many types of infrastructure, such asAmazon Web Services,Microsoft Azure, and others.
Google App Engine requires a Google account to get started, and an account may allow the developer to register up to 25 free applications and an unlimited number of paid applications.[25]
Google App Engine defines usage quotas for free applications. Extensions to these quotas can be requested, and application authors can pay for additional resources.[26]