Fwd: Run and deploy Managed VM applications without Docker

230 views
Skip to first unread message

Glenn Lewis

unread,
Jun 25, 2015, 11:19:02 AM6/25/15
to google-appengine-go

---------- Forwarded message ----------
From: Andrew Jessup <jes...@google.com>
Date: Wed, Jun 24, 2015 at 11:06 PM
Subject: Run and deploy Managed VM applications without Docker
To: app-engine-...@googlegroups.com


Hi Everyone,

We're pleased to let you know we've been adding support for a much-requested feature of Managed VMs, the ability to run and deploy applications without needing to install Docker first.

When running Managed VM applications locally, we now provide local emulation in a manner similar to regular App Engine applications, however when you have set vm: true we will remove some enforced restrictions such as local file writes. When deploying an application, gcloud using the relevant flags will automatically perform a remote build using a temporary Compute Engine instance.

For developers building Java applications we have extended our support for Maven, which is now the preferred mechanism for running and deploying App Engine applications. We’re working on support for other Java build systems too - stay tuned.

For developers building Go applications, we have made significant changes to how applications are written, bringing them closer into line with how the Go community expects applications to be written, making your App Engine code more portable and easier to understand.

All of these changes for now are opt-in if you're using the gcloud tool. None of these changes affect how the stand alone App Engine SDKs for PHP, Java, Python and Go work. These tools will continue to work as they currently do.

Read more about these changes in our instructions. And if you’ve tried them, please let us know what you think. The earlier we get feedback usually the easier it is to address. We're looking forward to your feedback.

Thanks,

Andrew, on behalf of the App Engine SDK team

--
You received this message because you are subscribed to the Google Groups "App Engine Managed VMs" group.
To unsubscribe from this group and stop receiving emails from it, send an email to app-engine-manage...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Kun Li

unread,
Jun 25, 2015, 12:14:20 PM6/25/15
to Glenn Lewis, google-appengine-go
Hi Glenn:

Does it mean the "preview app run" would just run this one as a normal Go app, without Dockerfile involved?

You received this message because you are subscribed to the Google Groups "google-appengine-go" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-appengin...@googlegroups.com.

Glenn Lewis

unread,
Jun 25, 2015, 12:17:22 PM6/25/15
to Kun Li, google-appengine-go
Yes, exactly.  If you wish to involve a Dockerfile when running locally, then you will need to switch to "runtime: custom".
-- Glenn

Glenn Lewis

unread,
Jun 25, 2015, 2:37:54 PM6/25/15
to Skip Tavakkolian, Andrew Jessup, app-engine-...@googlegroups.com, google-appengine-go
That's odd.  Thanks for the report, Skip.  I'll investigate.
-- Glenn

On Thu, Jun 25, 2015 at 11:32 AM, Skip Tavakkolian <skip.tav...@gmail.com> wrote:
i have seen one issue with Go apps;  running locally (without Docker) the +build comment/directives on top of Go files are not honored (e.g., a go file with "// +build ignore" is included in the "app" causing an error).

Skip Tavakkolian

unread,
Jun 25, 2015, 4:47:42 PM6/25/15
to Glenn Lewis, Andrew Jessup, app-engine-...@googlegroups.com, google-appengine-go
Thanks to Glenn's help, I figured out what the problem was.

For anyone curious about this, the problem was caused by me not putting a blank line after the last build tag.

Derek Perkins

unread,
Jun 26, 2015, 2:10:57 PM6/26/15
to google-ap...@googlegroups.com
Glenn,

We've been doing this for a week now and for the most part it's working great. The issue we've run into a few different ways is related to the GCE VM that is started.

1) If more than one build starts at a time, we get this error.

- The resource 'projects/myapp/zones/us-central1-f/instances/gae-builder-vm-vm' already exists

2) If the build errors out for whatever reason, the instance is left running, leading to more of the above errors.

Thanks,
Derek

Glenn Lewis

unread,
Jun 26, 2015, 2:31:16 PM6/26/15
to Derek Perkins, google-appengine-go
Thanks for the report, Derek.  I'll see what I can find out and get back to you.
-- Glenn

--
You received this message because you are subscribed to the Google Groups "google-appengine-go" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-appengin...@googlegroups.com.

Glenn Lewis

unread,
Jun 26, 2015, 2:48:00 PM6/26/15
to Derek Perkins, google-appengine-go
Here's what my team mate told me:
The remote build VM is named after the version ID you are deploying.
If you use unique version IDs, you shouldn't have either of those two problems.
It looks like you're using a version ID of "vm", which could be causing these problems.
I hope that helps.
-- Glenn

Derek Perkins

unread,
Jun 26, 2015, 3:05:09 PM6/26/15
to Glenn Lewis, google-appengine-go

If we switch versions on every deploy, we'd also have to change the default version every time too.

Also, since our versions are synced across modules, it'd be nice if it the module was included in the name.

Glenn Lewis

unread,
Jun 26, 2015, 3:14:34 PM6/26/15
to Derek Perkins, google-appengine-go
Again, from the expert:
"""
The module name is dropped because only one instance is created for several versions. If you deploy 3 versions at once, across modules, like this:

module 1 - version foo
module 2 - version foo
module 3 - version foo

using a command like this: gcloud preview app deploy module1.yaml module2.yaml module3.yaml

The command will only create one VM for all 3 docker builds.
"""
-- Glenn

Derek Perkins

unread,
Jun 26, 2015, 5:06:29 PM6/26/15
to google-ap...@googlegroups.com, de...@derekperkins.com
The command will only create one VM for all 3 docker builds.

That makes sense. I guess I'll use unique version names for each module, so I can avoid having to manually promote the new build to default.

Thanks,
Derek 

xin....@gmail.com

unread,
Jul 22, 2015, 5:04:43 AM7/22/15
to google-appengine-go
Hi,
I run my app on app engine VM with source code GO.
But recently I found that my server VM return 503 when I send some requests. The possibility of getting 503 is about 10%.
And I can't found anything about the requests cause 503 from google appengine console - log , there are only the ones with 200.
If anyone meet the same problem? Thank you

Glenn Lewis

unread,
Jul 22, 2015, 11:47:05 AM7/22/15
to Xin SUN, google-appengine-go
Have you checked the Cloud Console log viewer to see if you can determine what the problem was?

You can also "SSH" into your VM instance (switching to User-Controlled when it asks):
and then type "sudo docker logs gaeapp".

-- Glenn

--
You received this message because you are subscribed to the Google Groups "google-appengine-go" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-appengin...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages