Google App Engine (often referred to as GAE or simply App Engine) is a web framework and cloud computing platform for developing and hosting web applications in Google-managed data centers. Applications are sandboxed and run across multiple servers. App Engine offers automatic scaling for web applications—as the number of requests increases for an application, App Engine automatically allocates more resources for the web application to handle the additional demand.
Google App Engine is free up to a certain level of consumed resources and only in standard environment but not in flexible environment. Fees are charged for additional storage, bandwidth, or instance hours required by the application. It was first released as a preview version in April 2008 and came out of preview in September 2011.
|Google App Engine|
|Initial release||April 7, 2008|
1.9.63 / 27 February 2018
|Written in||Python, Java, Go, PHP, Node.js|
|Operating system||linux (glibc), Windows|
|Type||Web framework, cloud computing platform|
Supported programming languages in Standard Environment include Python, Java (and, by extension, other JVM languages such as Kotlin, Groovy, JRuby, Scala, Clojure), Go, PHP and Node.js (beta). All programming languages available in Standard Environment are also available in flexible environment. Ruby and C# are only available in the flexible environment. Google has said that it plans to support more languages in the future, and that the Google App Engine has been written to be language independent. Arbitrary Docker containers are also supported.
Python web frameworks that run on Google App Engine include Django, CherryPy, Pyramid, Flask, web2py and webapp2, as well as a custom Google-written webapp framework and several others designed specifically for the platform that emerged since the release. Any Python framework that supports the WSGI using the CGI adapter can be used to create an application; the framework can be uploaded with the developed application. Third-party libraries written in pure Python may also be uploaded.
Google App Engine supports many Java standards and frameworks. Core to this is the servlet 2.5 technology using the open-source Jetty Web Server, 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.
Though the integrated database, Google Cloud Datastore, may be unfamiliar to programmers, it is accessed and supported with JPA, JDO, and by the simple low-level API. There are several alternative libraries and frameworks you can use to model and map the data to the database such as Objectify, Slim3 and Jello framework.
The Django web framework and applications running on it can be used on App Engine with modification. Django-nonrel aims to allow Django to work with non-relational databases and the project includes support for App Engine.
App Engine is designed in such a way that it can sustain multiple datacenter outages without any downtime. This resilience to downtime is shown by the statistic that the High Replication Datastore saw 0% downtime over a period of a year.
Paid support from Google engineers is offered as part of Premier Accounts. Free support is offered in the App Engine Groups, Stack Overflow, Server Fault, and GitHub. However assistance by a Google staff member is not guaranteed.
SDK version 1.2.2 adds support for bulk downloads of data using Python. The open source Python projects gaebar, approcket, and gawsh also allow users to download and back up App Engine data. No method for bulk downloading data from GAE using Java currently exists.
Compared to other scalable hosting services such as Amazon EC2, App Engine provides more infrastructure to make it easy to write scalable applications, but can only run a limited range of applications designed for that infrastructure.
App Engine's infrastructure removes many of the system administration and development challenges of building applications to scale to hundreds of requests per second and beyond. Google handles deploying code to a cluster, monitoring, failover, and launching application instances as necessary.
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 can be used for App Engine applications requiring a relational MySQL compatible database backend.
Per-day and per-minute quotas restrict bandwidth and CPU use, number of requests served, number of concurrent requests, and calls to the various APIs, and individual requests are terminated if they take more than 60 seconds or return more than 32MB of data.
Google App Engine's integrated Google Cloud Datastore database has a SQL-like syntax called "GQL". GQL does not support the Join statement. Instead, one-to-many and many-to-many relationships can be accomplished using ReferenceProperty(). This shared-nothing approach allows disks to fail without the system failing. Switching from a relational database to Cloud Datastore requires a paradigm shift for developers when modeling their data.
Developers worry that the applications will not be portable from App Engine and fear being locked into the technology. 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. AppScale, CapeDwarf and TyphoonAE are a few of the open source efforts.
AppScale automatically deploys and scales unmodified Google App Engine applications over popular public and private cloud systems and on-premises clusters. AppScale can run Python, Java, PHP, and Go applications on EC2, Google Compute Engine, Softlayer, Azure and other cloud vendors.
TyphoonAE can run Python App Engine applications on any cloud that support linux machines.
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 any type of infrastructure, such as Google App Engine, 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. The Backend API was deprecated as of March 13, 2014 in favor of the Modules API.
In Oct 2011, Google previewed a zero maintenance SQL database, which supports JDBC and DB-API. This service allows creating, configuring, and using relational databases with App Engine applications. Google Cloud SQL offers MySQL 5.5 and 5.6.
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.
Google App Engine defines usage quotas for free applications. Extensions to these quotas can be requested, and application authors can pay for additional resources.
AppScale is an open-source serverless computing platform that automatically deploys and scales unmodified Google App Engine applications over public and private clouds, as well as on-premises clusters. AppScale is modeled on the App Engine APIs and has support for Go, Java, PHP, and Python applications.The goal of AppScale is to provide developers with a rapid, API-driven development platform that can run applications on any cloud infrastructure. AppScale decouples app logic from its service ecosystem to give developers and cloud administrators control over app deployment, data storage, resource use, backup and migration.The platform allows developers to focus on the business logic of building scalable applications, freeing them from the need to concentrate on deployment and scaling logic. AppScale decouples app logic from its service ecosystem to give developers and cloud administrators control over app deployment, data storage, resource use, backup, and migration.AppScale includes high-level APIs for persistence, asynchronous execution, distributed memory cache, user authentication, and more. It handles service discovery, load-balancing, fault-tolerance, and auto-scaling. It also allows IT operations and cloud administrators to provide a consistent, tunable environment for running and maintaining apps on multiple cloud infrastructures.
AppScale is developed and maintained by AppScale Systems, Inc., based in Santa Barbara, California, and Google.Cloud9 IDE
Cloud9 had been acquired by Amazon in July 2016. As of March 2018, existing accounts on Cloud9's original website may be used, but new accounts may not be created. Cloud9 is now a part of Amazon Web Services (AWS), and as such, new users must use an AWS account to use the Cloud9 service.Cocaine (PaaS)
Cocaine (Configurable Omnipotent Custom Applications Integrated Network Engine) is an open-source PaaS system for creating custom cloud hosting apps that are similar to Bluemix, Google App Engine or Heroku. Several services have already been implemented this way, including a service for detecting a user's region or language, a service for accessing MongoDB storage, and a URL fetcher.ColdFusion Markup Language
ColdFusion Markup Language, more commonly known as CFML, is a scripting language for web development that runs on the JVM, the .NET framework, and Google App Engine. Multiple commercial and open source implementations of CFML engines are available, including Adobe ColdFusion, Lucee, New Atlanta BlueDragon (who offer both a Java-based and a .NET-based version), Railo, and Open BlueDragon as well as other CFML server engines.DataNucleus
DataNucleus (formerly known as Java Persistent Objects JPOX) is an open source project (under the Apache 2 license) which provides software products around data management in Java. The DataNucleus project started in 2008 (the JPOX project started in 2003 and was relaunched as DataNucleus in 2008 with broader scope).
DataNucleus Access Platform is a fully compliant implementation of the Java Data Objects (JDO) 1.0, 2.0, 2.1, 2.2, 3.0, 3.1, 3.2 specifications (JSR 0012, JSR 0243) and the Java Persistence API (JPA) 1.0, 2.0, 2.1, 2.2 specifications (JSR 0220, JSR 0317, JSR 0338), providing transparent persistence of Java objects. It supports persistence to the widest range of datastores of any Java persistence software, supporting all of the main object-relational mapping (ORM) patterns, allows querying using either JDOQL, JPQL or SQL, and comes with its own byte-code enhancer. It allows persistence to relational datastores (RDBMS), object-based datastores (db4o, NeoDatis ODB), document-based storage (XML, Excel, OpenDocument spreadsheets), web-based storage (JSON, Google Storage, Amazon Simple Storage Service), map-based datastores (HBase, Google's Bigtable, Apache Cassandra), graph-based datastores (Neo4j), document stores (MongoDB) as well as other types of datastores (e.g. LDAP). Its plugins are OSGi-compliant so can be used equally in an OSGi environment.
DataNucleus Access Platform is also utilised by the persistence layer behind Google App Engine for Java, and VMForce (cloud offering from Salesforce.com and VMWare).Domain fronting
Domain fronting is a technique that circumvents Internet censorship by obfuscating the domain of a HTTPS connection. Working in the application layer, domain fronting allows a user to connect to a service that may be otherwise be blocked via by DNS, IP or deep packet inspection.GoAgent
GoAgent is a GNU GPL open-source cross-platform network access software. It is mainly written with Python and supports Windows, OS X, Linux and most Linux-based OS like Android and OpenWrt. It uses Google App Engine servers to provide users with a free proxy service to gain access to blocked information. It is normally used with web browsers.
GoAgent was eventually shut down at the request of Chinese law enforcement. A project called XX-Net claims to be "A Reborn GoAgent", with its first release in January 2015.Google Cloud Datastore
Google Cloud Datastore (Cloud Datastore) is a highly scalable, fully managed NoSQL database service offered by Google on the Google Cloud Platform. Cloud Datastore is built upon Google's Bigtable and Megastore technology.Google Cloud Platform
Google Cloud Platform (GCP), offered by Google, is a suite of cloud computing services that runs on the same infrastructure that Google uses internally for its end-user products, such as Google Search and YouTube. Alongside a set of management tools, it provides a series of modular cloud services including computing, data storage, data analytics and machine learning. Registration requires a credit card or bank account details.Google Cloud Platform provides Infrastructure as a service, Platform as a service, and Serverless computing environments.
In April 2008, Google announced App Engine, a platform for developing and hosting web applications in Google-managed data centers, which was the first cloud computing service from the company. The service became generally available in November 2011. Since the announcement of App Engine, Google added multiple cloud services to the platform.
Google Cloud Platform is a part of Google Cloud, which includes the Google Cloud Platform public cloud infrastructure, as well as G Suite, enterprise versions of Android and Chrome OS, and application programming interfaces (APIs) for machine learning and enterprise mapping services.Google Developers
Google Developers (previously Google Code) is Google's site for software development tools, application programming interfaces (APIs), and technical resources. The site contains documentation on using Google developer tools and APIs—including discussion groups and blogs for developers using Google's developer products.
There are APIs offered for almost all of Google's popular consumer products, like Google Maps, YouTube, Google Apps, and others.
The site also features a variety of developer products and tools built specifically for developers. Google App Engine is a hosting service for web apps. Project Hosting gives users version control for open source code. Google Web Toolkit (GWT) allows developers to create Ajax applications in the Java programming language.
The site contains reference information for community based developer products that Google is involved with like Android from the Open Handset Alliance and OpenSocial from the OpenSocial Foundation.Google Person Finder
Google Person Finder is an open source web application that provides a registry and message board for survivors, family, and loved ones affected by a natural disaster to post and search for information about each other's status and whereabouts. It was created by volunteer Google engineers in response to the 2010 Haiti earthquake.
Google Person Finder is written in Python and hosted on Google App Engine. Its database and API are based on the People Finder Interchange Format (PFIF) developed in 2005 for the Katrina PeopleFinder Project.Google Plugin for Eclipse
Google Plugin for Eclipse (GPE) was a set of development tools that enabled Java developers to design, build, optimize, and deploy cloud computing applications. developers in creating complex user interfaces, generating Ajax code using the GWT Web Toolkit, and deploying applications to Google App Engine. GPE installed into the Eclipse integrated development environment (IDE) using the extensible plugin system.
GPE was available under the Eclipse Public License 1.0.H. T. Kung
H. T. Kung (Kung, Hsiang-Tsung; Chinese: 孔祥重; pinyin: Kong Xiangchong; b. 9 November 1945) is a Taiwanese American computer scientist. His research is primarily in the area of machine learning, signal processing and compressive sensing, and parallel computing, but his interests have been broad-ranging, including computational complexity theory, database theory, VLSI design, and parallel computing.
Kung received his bachelor's degree in mathematics from National Tsing Hua University in 1968 and Ph.D. from Carnegie Mellon University in 1974, and first taught there, where his research included work on novel parallel computers and the popularization of the Systolic array. He joined Harvard University in 1992, where he is the William H. Gates Professor of Computer Science and Electrical Engineering. Kung also is co-chair of Harvard's "PhD in Information, Technology and Management" Program.
Kung is a member of the Academia Sinica in Taiwan, and also of the National Academy of Engineering in the United States. He is a recipient of the Inventor of the Year Award by the Pittsburgh Intellectual Property Law Association in 1991.
Kung's contributions include: Systolic Arrays; iWarp; Optimistic concurrency control, a core principle underlying many transactional memory and database implementations, including Google App Engine, and Ruby on Rails's data management protocol; Read-Copy-Update, a mutual exclusion synchronization method, deployed in the modern Linux kernel; Greedy Perimeter Stateless Routing, a location-based routing protocol for mesh networks; a communication-avoiding optimal distributed matrix multiplication algorithm; the Kung-Traub algorithm for comparing the expansion of an algebraic function; etc.
In 2018, he was appointed as President of Taiwan AI Academy.ItsNat
ItsNat Natural AJAX, is an open-source Java component-based Ajax framework.Jello framework
Jello is an end-to-end Java application framework optimized for Google App Engine including comprehensive Data Authorization model, a powerful RESTful engine, and out-of-the-box UI views. Jello's REST offers a clean, and simple to follow, JSON format. Its protocol schema follows the OData specification.Jetty (web server)
Eclipse Jetty is a Java HTTP (Web) server and Java Servlet container. While Web Servers are usually associated with serving documents to people, Jetty is now often used for machine to machine communications, usually within larger software frameworks. Jetty is developed as a free and open source project as part of the Eclipse Foundation. The web server is used in products such as Apache ActiveMQ, Alfresco, Scalatra, Apache Geronimo, Apache Maven, Apache Spark, Google App Engine, Eclipse, FUSE, iDempiere, Twitter's Streaming API and Zimbra. Jetty is also the server in open source projects such as Lift, Eucalyptus, OpenNMS, Red5, Hadoop and I2P. Jetty supports the latest Java Servlet API (with JSP support) as well as protocols HTTP/2 and WebSocket.Memcached
Memcached (pronunciation: mem-cashed, mem-cash-dee) is a general-purpose distributed memory caching system. It is often used to speed up dynamic database-driven websites by caching data and objects in RAM to reduce the number of times an external data source (such as a database or API) must be read. Memcached is free and open-source software, licensed under the Revised BSD license. Memcached runs on Unix-like operating systems (at least Linux and OS X) and on Microsoft Windows. It depends on the libevent library.
Memcached's APIs provide a very large hash table distributed across multiple machines. When the table is full, subsequent inserts cause older data to be purged in least recently used (LRU) order. Applications using Memcached typically layer requests and additions into RAM before falling back on a slower backing store, such as a database.
Memcached has no internal mechanism to track misses which may happen. However, some third party utilities provide this functionality.
Memcached was first developed by Brad Fitzpatrick for his website LiveJournal, on May 22, 2003. It was originally written in Perl, then later rewritten in C by Anatoly Vorobey, then employed by LiveJournal. Memcached is now used by many other systems, including YouTube, Reddit, Facebook, Pinterest, Twitter, and Wikipedia. Google App Engine, Microsoft Azure, IBM Bluemix and Amazon Web Services also offer a Memcached service through an API.NDB
NDB may refer to:
Nachrichtendienst des Bundes ("Federal Intelligence Service"), one of the Swiss intelligence agencies
National Defense Battalions (Iraq) (1961–2003), Iraqi Kurdish paramilitary units
National Development Bank, a government bank to finance development projects
NDB Cluster, a database storage engine
Next DB, an alternate Python client library for the Google App Engine datastore
Nerima Daikon Brothers, an anime series
Neue Deutsche Biographie, a German reference work
New Development Bank, a development bank jointly operated by the BRICS nations
Non-directional beacon, a fixed radio transmitter used as a navigational aid
Nuclear depth bomb, a naval weaponSpiral Universe
Spiral Universe provides a software platform for student information, learning management, and distance learning applications. The company is based in White Plains, New York. The flagship product is called Spiral, a rich Internet application available under the software as a service model. Features include course management, gradebook, attendance tracking, student records, reporting, report cards and transcripts, student portal, parents portal, and scheduling.
The system is available in several languages in addition to English, including Spanish, French, and Chinese. The company has customers in 100 countries, including Uganda.The first generation of Spiral ran on Linux, PostgreSQL, Java, Spring Framework, Tomcat, and Ext/Google Web Toolkit (GXT). The software is compatible with the Schools Interoperability Framework (SIF). JasperSoft is used as a tool for reporting.In February 2013 the company released a new generation of the Spiral system that runs on Google App Engine.In 2014 Spiral Universe has been acquired by STI.
|As a service|