The Java source code for the Google App Engine Standard environment, the production runtime, App Engine APIs, and the local SDK has been made public by Google.
Google App Engine was first published in 2018 with the goal of making it simple for developers to install and scale their web applications. Many languages are presently supported by App Engine, including Java, PHP, Python, Node.js, Go, and Ruby. Java developers may use Java 8, Java 11, and Java 17, as well as other JVM languages like Groovy and Kotlin, to deploy servlet-based web applications. Spring Boot, Quarkus, Vert.x, and Micronaut are just a few of the frameworks that can be used.
Following is a list of the modules, with orange items representing public artefacts and yellow things representing internal artefacts. Modules with an asterisk (*) are only utilised on the production server. The com.google.appengine.api package contains Java App Engine APIs that provide developers access to App Engine services such as:
- Datastore is a NoSQL database that is commonly used in web and mobile applications.
- Only Java 8 has Blobstore, which is used to save binary blobs.
- Only accessible on Java 8 is Taskqueue, which allows you to queue up computational processes.
- To cache expensive results, Memcache is used.
- To call external services, Urlfetch is used.
It’s worth noting that all of the previously mentioned features have a local implementation and are thus accessible in the local development environment, removing the necessity for the developer to deploy in the cloud to test the modifications.
App Engine uses the Jetty servlet container by default. Take a look at the runtime folder to see how App Engine starts, the behaviour of the components, and how services are set during launch.
The App Engine Remote APIs allow developers to use any Java programme to access App Engine services. The Remote API, for example, can be used to access a production Datastore from a locally running programme. The Datastore of one App Engine application can also be accessed from another App Engine application.
Some specific layers that relate App Engine to the underlying Borg cluster management technology, which is internal to the Google infrastructure, have yet to be open sourced by Google.
Developers may now operate the entire App Engine environment wherever they choose, including on-premise in a data centre, on alternative computing platforms, or even Google Cloud like Cloud Run, thanks to the open source of the App Engine Standard Java runtime.
Some examples of Java 8 and Java 11 applications can be found in the Google Cloud Platform GitHub source. The App Engine documentation page has a complete list of supported languages as well as their respective supported versions.
More information can be found here.