Live data from Hacker News

App Engine’s New Go 1.11 Runtime

blog.golang.org

81–90 of 101 posts

Re: App Engine’s New Go 1.11 Runtime

#81

Earlier quoted context omitted.

(GCP Gopher here) If you can run within the standard environment, I'd suggest you do (but you should check pricing, etc to see if it suits). Especially if you want 0-1 scaling. I migrated golang.org from standard to flexible a couple weeks ago, primarily because of increased control over the runtime (custom Docker image) and increased instance sizes (configurable memory, CPU past the App Engine limits, which caps out…

Do you have blog post with data, number of instances etc previously and now ?

I don't, sorry. While the app was unhealthy, it was spinning up dozens of instances. While it was healthy (on standard), I recall it ran on less than a handful of instances.

It currently runs on two fat flexible instances (GCE VM), but could easily run on one. We only run on two for some redundancy.

I've measured throughput of ~thousands of requests per second on a F4_1G on apps I've worked on previously. They were CPU-constrained, but not doing very much (JSON serialization).

The new runtime might be even better, since GOMAXPROCS is no longer 1.

correction to my post above: 1 GB is the max memory for standard: https://cloud.google.com/appengine/docs/standard/#instance_c...

Re: App Engine’s New Go 1.11 Runtime

#82

Earlier quoted context omitted.

Correct, Go's runtime is compiled into the program's binary. However, there's still an environment needed to run that binary. For Go on App Engine, this includes the sandbox (backed by gVisor) and the operating system (Ubuntu). We also tend to call everything in the toolchain the "runtime" - this includes the CLI for uploading and staging your app, and the builder used to compile your program. Not the strictest defin…

So App Engine is a build system as well?

Yes, with App Engine, you upload source code, and it's compiled for you remotely. For this newer runtime, it happens inside a Cloud Build invocation.

For App Engine flexible, you can skip that build step and provide your own container, but that isn't possible for App Engine standard. (If you're interested in something like that, see https://g.co/serverlesscontainers)

Re: App Engine’s New Go 1.11 Runtime

#83

Earlier quoted context omitted.

Tech Lead of Google Registry ( https://registry.google ) here. We run on GCP. You definitely don't want to check secrets into the repo for the same reason you don't set them as environment variables: It's not secure. The solution is to use Cloud Key Management Service. More info here: https://cloud.google.com/kms/ We use that to either store secrets directly, or to decrypt encrypted entities in a DB (e.g. Datastore).…

Another great resource: https://sethvargo.com/secrets-in-serverless/ Shows how to encrypt env vars with Cloud KMS then decrypt them in memory.

This is rad. Thanks.

Re: App Engine’s New Go 1.11 Runtime

#84

Earlier quoted context omitted.

Nodejs might also be a good option. It’s comparable to go on a core for core basis, and IIRC GOMAXPROCS is 1 on GAE.

(GAE Gopher) GOMAXPROCS is not 1 for this new runtime. As far as I know, it's an entirely vanilla Go runtime.

Woah that's a significant update then.

Re: App Engine’s New Go 1.11 Runtime

#85
post #2

I'm the tech lead and primary software engineer on the Go runtime. If you have any questions, please don't hesitate to ask! I'm super thrilled to announce that Go 1.11 is now available on App Engine! We now support... * vendoring * regular best-practice package structures * go modules * the regular Google Cloud client libraries: https://github.com/GoogleCloudPlatform/google-cloud-go This is a "second-generation" runt…

Hey buss, thanks for stopping by. How do you feel about the distinction between Google and Go? It sometimes feels like they're joined at the hip, something which historically had made people queasy (Java and Oracle, .NET and Microsoft, etc). Though Go is a project which came from Google, I personally feel that it better serves the interests of the Go community to treat them separately. Google receives special treatme…

[deleted]

Re: App Engine’s New Go 1.11 Runtime

#87
post #70

Earlier quoted context omitted.

Well, there's the Techempower benchmarks at: https://www.techempower.com/benchmarks/ You can go to the filter, turn off all languages but Go and Python, and get a general idea. There's also the old Computer Benchmark Game, which should be taken with a whole barrel of salt: https://benchmarksgame-team.pages.debian.net/benchmarksgame/...

I actually looked at this before making my other comment. You’re absolutely right about the salt. One of the go benchmarks is basically pure cgo using vector intrinsics. It naturally blows idiomatic JS out of the water. So you might get those kind of results if that’s the kind of code you’re going to write, but it’s far from what I consider idiomatic. Another language’s proponent would be fair to point out that most…

> One of the go benchmarks is

Which program? URL?

Re: App Engine’s New Go 1.11 Runtime

#88
Wonder if it's still possible to get answers here :) giving it a shot although it's 13h old by now.

We use Go for a production server for multiple of our games, it's used to sync gamestates between devices and allows us to remotely inspect and change player's gamestate. Super handy and it's worked flawlessly! We used to use python, but Go is much better suited as it's less error prone.

One question though, we've been having connectivity issues in China, the GAE is deployed in the US, and as it seems there's no multiregional support. What can we do? Ideally keeping as much of the convenience of the GAE as possible.

Re: App Engine’s New Go 1.11 Runtime

#89
post #78

Earlier quoted context omitted.

Vendoring! Modules! Finally. Do you have any examples with proposed solutions for local module setups, without having to rely on GOPATH changes?

This is a go question, not an app engine question. See this page on the go wiki for an example of how to use go modules: https://github.com/kubernetes/kubernetes/pull/58098 Note: you need to have go1.11, and by default you need to be in a directory NOT in your $GOPATH for modules to work in go1.11

Edit: https://github.com/golang/go/wiki/Modules#how-to-use-modules

Copy paste error I guess.

Re: App Engine’s New Go 1.11 Runtime

#90
post #2

I'm the tech lead and primary software engineer on the Go runtime. If you have any questions, please don't hesitate to ask! I'm super thrilled to announce that Go 1.11 is now available on App Engine! We now support... * vendoring * regular best-practice package structures * go modules * the regular Google Cloud client libraries: https://github.com/GoogleCloudPlatform/google-cloud-go This is a "second-generation" runt…

Hey buss, thanks for stopping by. How do you feel about the distinction between Google and Go? It sometimes feels like they're joined at the hip, something which historically had made people queasy (Java and Oracle, .NET and Microsoft, etc). Though Go is a project which came from Google, I personally feel that it better serves the interests of the Go community to treat them separately. Google receives special treatme…

Agreed. To even submit content to the Go Blog requires a Google account. Ugh.
Post reply on HN