Introducing App Engine Second Generation runtimes and Python 3.7

Python 3.7 on App Engine

Stewart Reichling

App Engine Product Manager

Matthew Soldo

App Engine Product Manager

August 8, 2018

Today, Google Cloud is announcing the availability of Second Generation App Engine standard runtimes, a significant upgrade to the platform that allows you to easily run web apps using up-to-date versions of popular languages, frameworks and libraries. Python 3.7 is available today in beta on the App Engine standard environment. You can try it now.

Introducing Python 3.7

Python 3.7 is one of the new Second Generation runtimes that we announced at Cloud Next. Based on technology from the gVisor container sandbox, these Second Generation runtimes eliminate many previous App Engine restrictions, giving you the ability to write portable web apps and microservices that take advantage of App Engine's unique auto-scaling, built-in security and pay-per-use billing model.

Customers like LumApps, a Paris-based provider of enterprise intranet software, have chosen App Engine to optimize for scale and developer productivity:

"With the new Python 3.7 runtime on App Engine standard, we were able to deploy our apps very quickly, using libraries that we wanted such as scikit. App Engine helped us scale our platform from zero to over 2.5M users, from three developers to 40—all this with only one DevOps person! "

Developers have chosen App Engine for its fully managed developer experience for more than ten years and Python has been a key part of that experience—we launched App Engine in 2008 with Python 2.5.2. The introduction of the Python 3.7.0 runtime brings us up-to-date with the language community's progress and, as a Second Generation runtime, it enables a faster path to continued runtime updates.

This new runtime allows you to take advantage of Python's vibrant ecosystem of open-source libraries and frameworks. While the Python 2 runtime only allowed the use of specific versions of whitelisted libraries, Python 3 supports arbitrary third-party libraries, including those that rely on C code and native extensions. Just add Django 2.0, NumPy, scikit-learn or your library of choice to a requirements.txt file. App Engine will install these libraries in the cloud when you deploy your app.

AntEater Analytics, an App Engine customer and tester of the new runtime, has moved its analytics platform to Python 3.7 on the standard environment:

"We use numpy, scikit and pandas in our SaaS Analytics platform and we were able to migrate the platform to App Engine Standard in a few hours. This made our service more scalable and cost effective, which enables us to help our customers collaborate more effectively on G Suite."

Second Generation runtimes enable portable web apps

App Engine’s original release predates Google Cloud Platform and its rich set of services that support modern web apps. When App Engine first launched, GCP services like Cloud Datastore and Firebase Authentication didn’t exist yet, so we built App Engine APIs for common web app functionality, like storage, caching and queueing. This helped customers write apps with minimal setup, but it also led to reduced code portability.

The new Python 3.7 runtime supports the Google Cloud client libraries so you can integrate GCP services into your app, and run it on App Engine, Compute Engine or any other platform. At Google Cloud Next we also announced Cloud Scheduler and Cloud Tasks—services that mirror App Engine's popular scheduling and queueing functionality (App Engine cron and Task Queues). We are progressively evolving the original App Engine APIs to make them accessible across all GCP platforms. At this time, the original App Engine-only APIs are not available in Second Generation runtimes, including Python 3.7.

Try Python 3.7 today

You can write apps using Python 3.7 today on the App Engine standard environment—check out the docs to get started. Stay tuned in the coming weeks and months; we have more exciting App Engine releases coming soon.