Please note that the contents of this offline web site may be out of date. To access the most recent documentation visit the online version .
Note that links that point to online resources are green in color and will open in a new window.
We would love it if you could give us feedback about this material by filling this form (You have to be online to fill it)



Managed VMs

Limited Preview

This is a Limited Preview release of Managed VMs. As a result, it might be changed in backward-incompatible ways and is not recommended for production use. It is not subject to any SLA or deprecation policy. Request to be whitelisted to use this feature .


When your App Engine application is running in the cloud, Google provides a scalable number of instances of your app's modules. Each instance runs in its own hosting environment. From the beginning, the App Engine hosting environment has been a sandbox, containing your code, a webserver, and a language runtime. Aside from your application code, the other components in the App Engine hosting environment are immutable and managed by Google. The language runtime is customized in order to enforce the sandbox constraints, disabling some of the standard language APIs (such as access to the file system).

App Engine now offers a second hosting option: Managed VMs. The Managed VM hosting environment lets you run App Engine applications on configurable Compute Engine Virtual Machines (VMs). This VM-based hosting environment offers more flexibility and provides more CPU and memory options. Applications that run on Managed VMs, are not subject to Java and Python runtime restrictions and they have access to all the Compute Engine machine types . You can also add third-party libraries and frameworks to your app.

app engine hosting environments

Google manages the underlying VM hosting environment, ensuring that:

You use the existing app.yaml, appengine-web.xml configuration files, and App Engine SDK tools to develop and deploy applications to Managed VMs.

Runtime support

The Managed VM hosting environment currently supports the following runtimes:

Service API support

The Java, Python, and Go Managed VM hosting environments currently support the following service APIs:

Managed VM Considerations

When deciding whether it's appropriate to use Managed VMs for your application, you should consider how the Managed VM hosting environment is different from the sandboxed App Engine hosting environment, and how Managed VMs differ from Google Compute Engine VMs.

This table summarizes the different ways the Managed VM and App Engine hosting environments behave:

Feature App Engine hosting Managed VM hosting
Instance startup time Milliseconds Minutes
Maximum Request Timeout 60 seconds 24 hours
Background threads Yes, with restrictions Yes
Background processes No Yes
SSH debugging No Yes
Scaling Manual, Basic, Automatic Manual
Writing to local disk No Yes, ephemeral
Customizable serving stack No Yes
Automatic in-place security patches Yes Yes
Network access Only via App Engine services (includes outbound sockets) Yes
Supports installing third party binaries No Yes
Requires Modules No Yes
Pricing Based on Instance hours Uses Compute Engine Pricing for each VM

Also, note that Managed VMs differ from Compute Engine VMs in the following ways:

Sign up and create a Managed VM project

Managed VMs are in Limited Preview, you must sign up for access to this feature, create a billing-enabled project, and tell us about your project so we can whitelist it to run in a Managed VM. Follow these steps:

  1. Sign up for access to Managed VMs.
  2. Join the app-engine-managed-vms Google Group to participate in discussions about Managed VMs.
  3. Projects (or apps - they are the same thing) must be in a U.S. data center. If you're planning to use an existing project, skip to the next step. Otherwise, create a new app in a U.S. data center. Navigate to https://preview.appengine.google.com and create a new app.
  4. Enable billing for the project. Visit the page https://cloud.google.com/console/project/apps~<app_id>, where <app_id> is the ID of your project. Click on Settings in the left menu and then enable billing. If your app is billed under a Premier account, email us at [email protected] to have your new Cloud project billed under the same account.
  5. Send an email to [email protected] with the application ID in the subject line.

When we receive your email, we’ll configure some resources behind the scenes and notify you via email when your project is ready to go. The email includes final instructions for setup. If you encounter an error while following these instructions, contact us at [email protected] .

Authentication required

You need to be signed in with Google+ to do that.

Signing you in...

Google Developers needs your permission to do that.