Notice: Over the next few months, we're reorganizing the App Engine documentation site to make it easier to find content and better align with the rest of Google Cloud products. The same content will be available, but the navigation will now match the rest of the Cloud products.

App Engine standard environment runtimes

The App Engine standard environment has two generations of runtime environments. The second-generation runtimes significantly improve the capabilities of App Engine and remove some of the limitations of the first-generation runtimes. This page describes the similarities and differences between the first- and second-generation runtimes.

Second-generation First-generation
Supported languages Python 3
Java 11, 17
Node.js
PHP 7+
Ruby
Go 1.12+
Python 2.7
Java 8
PHP 5.5
Go 1.11
Language extension and system library support Any extension or library Python 2.7, PHP 5.5: Extensions and libraries that use allowlist
Java 8, Go 1.11: Any extension or library
Supported APIs

To access full-featured Google Cloud services, use the open source Cloud Client Libraries.

When updating to the Python 3, Java 11/17, or Go 1.12+ runtimes, you can continue using many of the App Engine bundled services. To learn more, see the Python 3, Java 11/17 and Go 1.12+ guides for details.

Cloud Client Libraries and App Engine bundled services
For large blob file storage, use the Cloud Storage or continue using the App Engine Blobstore API bundled service.
App Engine Blobstore API
For data persistence, use Firestore in Datastore mode and Cloud SQL for relational storage. Alternatively, you can continue using the App Engine Datastore API bundled service.
App Engine Datastore API
For deferred task execution, continue using the Deferred API (Python), DeferredTask API (Java), and Delay API (Go). PHP users can continue to specify deferred execution via the Task Queues API bundled service. Alternatively, you can implement the deferred functionality using Cloud Tasks.
App Engine Deferred API
For image processing, we recommend Imgix
Alternatively, you can continue using the App Engine Images API bundled service.
App Engine Images API
For inbound or outbound messaging, continue using App Engine Mail API bundled service. Alternatively for outbound messaging, you can use a 3rd-party mail provider such as SendGrid, Mailgun, or Mailjet.
A recommended 3rd-party alternative for inbound messaging is not available at this time.
App Engine Mail API
For caching app data, create a Memorystore instance and connect it to your app using Serverless VPC Access. Alternatively, continue using the App Engine Memcache API bundled service. App Engine Memcache API
For searchable document indexes, host any full-text search database such as ElasticSearch on Compute Engine and access it from your service. App Engine Search API
For running external tasks, stay on the App Engine Task Queues API bundled service for both push and pull queues, or migrate push queues to Cloud Tasks.
and pull queues to Pub/Sub.
App Engine Task Queue API
For user authentication, continue using the App Engine Users API bundled service, or migrate to any authentication service described in User Authentication Options. App Engine Users API
External network access Full access Python 2.7, PHP 5.5: Via URL Fetch API
Java 8, Go 1.11: Full access.
File system access Read/write access to /tmp Python 2.7, PHP 5.5: None
Java 8, Go 1.11: Read/write access to /tmp
Language runtime Unmodified, open source runtime Modified for App Engine
Isolation mechanism gVisor-based container sandbox gVisor-based container sandbox

App Engine first-generation runtime support

There are no plans to deprecate additional App Engine first-generation runtimes at this time. The second-generation runtimes represent the future direction of App Engine; however, developers and customers using the first-generation runtimes will continue to receive support and required system updates.

To learn more about the support plan for first-generation runtimes, see Long-term support for legacy runtimes.

Similarities between first- and second-generation runtimes

  • Nearly instantaneous scale-up time to respond to traffic spikes
  • Applications are built using the same build process
  • Same SLA for GA services
  • Identical gcloud command support and the same GCP console interface
  • Free tier

First- to second-generation runtime migration resources

Migration guides are available for each language runtime on the Long-term support page.