Google has open sourced the Java source code for the Google App Engine Standard Environment, the production runtime, App Engine APIs, and the on-premises SDK.
Originally released in 2018, Google App Engine was built to make it easier for developers to deploy and scale their web applications. App Engine currently supports many languages such as: Java, PHP, Python, Node.js, Go, Ruby.
Java developers can deploy servlet-based web applications using Java 8, Java 11, and Java 17, as well as other JVM languages such as Groovy and Kotlin. In addition, many frameworks such as Spring Boot, Quarkus, Vert.x and Micronaut can be used.
Below we have an overview of the modules, with orange items being public artifacts and yellow internal artifacts. Modules ending with * are only used on the production server side.
The Java App Engine APIs in the
com.google.appengine.api package give developers access to App Engine services such as:
- Datastore, a NoSQL database typically used for web and mobile apps;
- Blobstore for storing binary blobs, only available on Java 8;
- Task queue for queuing arithmetic tasks, only available under Java 8;
- memcache for caching expensive results;
- Urlfetch to call external services.
It is important to note that all the features listed previously have a local implementation and are therefore accessible in the local development environment, so there is no need to force the developer to deploy to the cloud to verify the changes.
By default, App Engine uses the Jetty servlet container. To learn how App Engine starts and how the components behave or how services are configured on startup, just take a look in the runtime folder.
The App Engine Remote APIs enable the developer to access App Engine services from any Java application. For example, it is possible to access a production data store from a locally running app via the remote API. It is also possible to access an App Engine application’s data store from another App Engine application.
Google has not yet open sourced some specific layers that connect App Engine to the underlying Borg cluster management system within the Google infrastructure.
By open-sourcing the App Engine Standard Java Runtime Environment, developers can now run the entire App Engine environment wherever they want, such as cloud-run.
See the Google Cloud Platform GitHub repo for some sample applications that use Java 8 and Java 11.
For the full list of supported languages and the supported versions of each, see the App Engine documentation page.
For more information about what’s available as open source, see the Google Cloud Platform repository.