This article contains content that is written like an advertisement. Please help improve it by removing promotional content and inappropriate external links, and by adding encyclopedic content written from a neutral point of view. (August 2008) (Learn how and when to remove this message)
This article may require copy editing for grammar, style, cohesion, tone, or spelling. You can assist by editing it. (April 2024) (Learn how and when to remove this message)
Initial releaseApril 7, 2008; 16 years ago (2008-04-07)[1]
TypePlatform as a service

Google App Engine (also referred to as GAE or App Engine) is a cloud computing platform used as a service for developing and hosting of web applications. Applications are sandboxed 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 a preview in April 2008, and launched officially in September 2011.

Applications written in Go, PHP, Java, Python, Node.js, .NET, and Ruby are supported by the App Engine, and other languages can be supported with 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]

Supported features/restrictions

Runtimes and framework

Google App Engine primarily supports Go, PHP, Java, Python, Node.js, .NET, and Ruby applications, although it can also support other languages via "custom runtimes".[4]

Python web frameworks that run on Google App Engine include Django, CherryPy, Pyramid, Flask, web2py, and webapp2,[6] as well as a Google-written webapp framework and several others designed specifically for the platform that were created after the release.[7] Any Python framework that supports the WSGI 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.[8][9]

Google App Engine supports many[quantify] Java standards and frameworks. Servlet 2.5 using the open-source Jetty Web Server allow these to be supported,[10] along with accompanying technologies such as JSP. JavaServer Faces operates with some workarounds. A newer release of App Engine Standard Java in Beta supports Java8, Servlet 3.1, and Jetty9.

The integrated database, Google Cloud Datastore, is accessed and supported with JPA, JDO, and by the simple low-level API.[11] There are alternative libraries and frameworks that can model and map data to the database such as Objectify,[12] Slim3,[13] and Jello framework.[14]

The Spring Framework works with GAE, however, the Spring Security module (if used) requires workarounds. Apache Struts 1 is supported, and Struts 2 runs with workarounds.[15]

The Django web framework and applications running on it can be used on App Engine with modification. Django-nonrel[16] aims to allow Django to work with non-relational databases, and the project includes support for App Engine.[17]

Bulk downloading

SDK version 1.2.2 adds support for bulk downloads of data using Python.[18] The open source Python projects gaebar,[19] approcket,[20] and gawsh[21] also allow users to download and back up App Engine data. No method for bulk downloading data from GAE using Java currently exists.


Major differences

Differences with other application hosting

While other services let users install and configure nearly any *NIX compatible software, App Engine requires developers to use only its supported languages, APIs, and frameworks. Current APIs allow storing and retrieving data from the document-oriented Google Cloud Datastore database, making HTTP requests, sending e-mail, manipulating images, and caching. Google Cloud SQL[24] can be used for App Engine applications requiring a relational MySQL compatible database backend.[25]

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.

Differences between SQL and GQL

Further information: Google Cloud Datastore § GQL

Google App Engine's integrated Google Cloud Datastore database has a SQL-like syntax called "GQL" (Google Query Language). GQL does not support the join statement.[26] Instead, one-to-many and many-to-many relationships can be accomplished using ReferenceProperty().[27]

Google 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.

Portability concerns

Developers worry that the applications will not be portable from App Engine and fear being locked into the technology.[28] In response, there are a number of projects to create open-source back-ends for the various proprietary/closed APIs of app engine, especially the datastore. Some of the open-source efforts include AppScale, CapeDwarf, and TyphoonAE.[29].

AppScale automatically deploys and scales unmodified Google App Engine applications over popular public and private cloud systems and on-premises clusters.[30] It can run Python, Java, PHP, and Go applications on EC2, Google Compute Engine, Softlayer, Azure, and other cloud vendors.

TyphoonAE[29] can run Python App Engine applications on any cloud server that supports Linux machines.

The Web2py 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.[31]

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 as Amazon Web Services, Microsoft Azure, and others. This is one of Google's answers to the portability concern.


In Google I/O 2011, Google announced App Engine Backends, which are allowed to run continuously and consume more memory.[32][33] The Backend API was deprecated as of March 13, 2014, in favor of the Modules API.[34]

Google Cloud SQL

In October 2011, Google previewed a zero maintenance SQL database, which supports JDBC and DB-API.[35] 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.[36]

Usage quotas

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.[37]

Google App Engine defines usage quotas for free applications. Extensions to these quotas can be requested, and application authors can pay for additional resources.[38]

See also


  1. ^ "Introducing Google App Engine + our new blog". Google App Engine Blog. April 7, 2008. Retrieved December 3, 2019.
  2. ^ "Python Runtime Environment - Google App Engine - Google Code". February 22, 1999. Retrieved February 14, 2012.
  3. ^ Sanderson, Dan (2009). Programming Google App Engine: Build and Run Scalable Web Apps on Google's Infrastructure. O'Reilly Media. ISBN 978-0-596-52272-8.
  4. ^ a b "Google App Engine Documentation | App Engine Documentation". Google Cloud. Retrieved December 3, 2019.
  5. ^ "Quotas - Google App Engine - Google Code". February 22, 1999. Retrieved February 14, 2012.
  6. ^ "Welcome to webapp2! — webapp2 v2.5.1 documentation". Retrieved February 14, 2012.
  7. ^ "AppEngineFrameworks - tipfy - The almighty little framework for Google App Engine - Google Project Hosting". Retrieved February 14, 2012.
  8. ^ "What Is Google App Engine? - Google App Engine - Google Code". February 22, 1999. Retrieved February 14, 2012.
  9. ^ "webapp Overview - Google App Engine - Google Code". February 22, 1999. Retrieved February 14, 2012.
  10. ^ "Google Chose Jetty for App Engine". July 13, 2012. Retrieved July 17, 2012.
  11. ^ "Google App Engine Datastore low-level API".
  12. ^ "Objectify library". GitHub. December 4, 2022.
  13. ^ "Slim3 framework".
  14. ^ "Jello Framework".
  15. ^ "WillItPlayInJava - googleappengine - Lists the level of compatibility of various Java technologies and App Engine - Google App Engine - Google Project Hosting". Retrieved February 14, 2012.
  16. ^ "Django-nonrel - NoSQL support for Django". All Buttons Pressed. February 4, 2010. Retrieved July 17, 2012.
  17. ^ "djangoappengine - Django App Engine backends (DB, email, etc.)". All Buttons Pressed. September 30, 2011. Retrieved July 17, 2012.
  18. ^ "Uploading and Downloading Data - Google App Engine - Google Code". February 22, 1999. Retrieved February 14, 2012.
  19. ^ aral. "aral/gaebar". GitHub. Retrieved February 14, 2012.
  20. ^ "approcket - Live synchronization between AppEngine and MySQL - Google Project Hosting". Retrieved February 14, 2012.
  21. ^ "gawsh - Google Apps Web Service Helpers - Google Project Hosting". Retrieved February 14, 2012.
  22. ^ "gae-filestore - Simple Virtual File System on Google App Engine DataStore - Google Project Hosting". Retrieved February 14, 2012.
  23. ^ "The JRE Class White List - Google App Engine - Google Developers". February 22, 1999. Retrieved June 14, 2013.
  24. ^ "Google Cloud SQL Databases - Cloud SQL - Google Cloud Platform". Google Cloud Platform.
  25. ^ "Using Google Cloud SQL - App Engine standard environment for Java - Google Cloud Platform". Google Cloud Platform.
  26. ^ Google Developers (April 7, 2008). "Campfire One: Introducing Google App Engine (pt. 3)" – via YouTube. ((cite web)): |last= has generic name (help)
  27. ^ "Modeling Entity Relationships - Google App Engine — Google Developers". June 26, 2012. Retrieved July 17, 2012.
  28. ^ Gallagher, Sean (April 9, 2008). "Analysis: Google App Engine alluring, will be hard to escape". Ars Technica. Retrieved July 17, 2012.
  29. ^ a b "typhoonae - Typhoon App Engine - Google Project Hosting". Retrieved July 17, 2012.
  30. ^ AppScale Launches As An Open-Source Backup Equivalent To Google App Engine. TechCrunch (June 24, 2013). Retrieved on 2013-09-18.
  31. ^ [1] Archived February 20, 2010, at the Wayback Machine
  32. ^ Google I/O 2011: App Engine Backends on YouTube
  33. ^ "Backends Python API Overview - App Engine standard environment for Python - Google Cloud Platform". Google Cloud Platform.
  34. ^ "Backends Python API Overview - App Engine standard environment for Python - Google Cloud Platform". Google Cloud Platform.
  35. ^ "Google Cloud SQL: your database in the cloud - The official Google Code blog". October 6, 2011.
  36. ^ "Cloud SQL Features - Cloud SQL Documentation - Google Cloud Platform". Google Cloud Platform.
  37. ^ "Google App Engine General Questions". Google Developers. Retrieved June 18, 2015.
  38. ^ "Understanding Application Quotas with Google App Engine". Retrieved April 16, 2010.