BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage News Google Java App Engine Standard is Now Open Source

Google Java App Engine Standard is Now Open Source

This item in japanese

Google has open-sourced the Java Source code for Google App Engine Standard environment, the production runtime, App Engine APIs, and the local SDK.

Initially released in 2008, Google App Engine was designed to make it easy 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 like Groovy, and Kotlin. Furthermore it is possible to use many frameworks, such as Spring Boot, Quarkus, Vert.x, and Micronaut.

Following we have an overview of the modules, where orange items are public artifacts and yellow ones are internal. Modules ending with * are only used on the production server side.

(Image taken from https://github.com/GoogleCloudPlatform/appengine-java-standard)

The Java App Engine APIs in the com.google.appengine.api package give developers access to App Engine services like:

  • Datastore, a NoSQL database usually used for web and mobile apps;
  • Blobstore, used to save binary blobs, only available on Java 8;
  • Taskqueue to enqueue computing tasks, only available on Java 8;
  • Memcache to cache expensive results;
  • Urlfetch to call external services.

It is important to note that all the features previously listed have a local implementation and so are accessible in the local development environment, eliminating the need to force the developer to deploy in the cloud to check the changes.

By default, App Engine uses the Jetty servlet container. To explore how App Engine starts and the behavior of the components or how services are configured on startup, just take a look at the runtime folder.

The App Engine Remote APIs allow the developer to access App Engine services from any Java application. For example, it is possible to access a production Datastore from an app running locally through the Remote API. It is also possible to access the Datastore of one App Engine application from a different App Engine application.

Google has not yet open sourced some specific layers that tie App Engine to the underlying Borg cluster management system, internal to the Google infrastructure.

By open sourcing the App Engine Standard Java runtime, developers can now run the whole App Engine environment wherever they want, such as: local development environment, on-premise in a data center, or potentially on other computing platforms, or even Google Cloud like Cloud Run.

In the Google Cloud Platform GitHub repo it is possible to find some examples of applications using Java 8 and Java 11.

The complete list of supported languages as well the respectives supported versions can be found at the App Engine documentation page.

For more details about what is available as open source, check the Google Cloud Platform repo.

About the Author

Rate this Article

Adoption
Style

BT