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
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: Allowlisted extensions and libraries
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, 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 and Go 1.12+ guides for details.

Proprietary App Engine APIs
For data persistence, use Datastore (Python developers can also use Cloud NDB), Firestore (requires new project), or Cloud SQL.
App Engine Datastore API
For image processing, Imgix is recommended.
Otherwise, use Rethumb if you prefer having a free tier.
App Engine Images API
For messaging, use a third-party mail provider such as SendGrid, Mailgun, or Mailjet. App Engine Mail API
For caching app data, create a Memorystore instance and connect it to your app using Serverless VPC Access. 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 push queues, use Cloud Tasks.
For pull queues, use Pub/Sub.
App Engine Task Queue API
For user authentication, use any HTTP-based authentication system, such as OAuth 2.0, or Firebase Authentication. 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 Proprietary

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.