Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for HTTP1.1 in gRPC or AppEngine should upgrade to support HTTP2 #9113

Closed
tjerkw opened this Issue Dec 14, 2016 · 18 comments

Comments

Projects
None yet
8 participants
@tjerkw
Copy link

commented Dec 14, 2016

Google is advocating the use of gRPC:
https://cloud.google.com/solutions/mobile/mobile-compute-engine-grpc

But gRPC is NOT supported on appengine standard environment! It requires http2.
This seems kind a stupid.

Maybe it would be nice to support non-streaming gRPC for http1.1.
Somebody already tried it:
https://gist.github.com/nodirt/bce25f976675ff3f2c27

@tbillington

This comment has been minimized.

Copy link

commented Dec 15, 2016

You can make grpc calls from appengine, you need to do a few things manually (dial) and it's not so great because you must make a new connection for every appengine request.

@tjerkw

This comment has been minimized.

Copy link
Author

commented Dec 15, 2016

@tbillington I can live with the new-connection per request for now. I need the fast development cycles that gRPC gives me. Could you give me a hint of howto support gRPC on http1.1 appengine... I tought about creating a fake HTTP2 request from an HTTP1 request and then call ServeHTTP on the grpc server. But i dont know where to start.

Note: I do understand this this issue, is not really a gRPC issue, but more an appengine issue.
However support HTTP1.1 for gRPC would be usefull it hink. And it theory its not that difficult for the non-streaming API.

@tjerkw

This comment has been minimized.

Copy link
Author

commented Dec 15, 2016

Related issue: grpc/grpc-go#805

@tjerkw tjerkw changed the title Support for HTTP1.1 or Appengien should upgrade Support for HTTP1.1 in gRPC or AppEngine should upgrade to support HTTP2 Dec 15, 2016

@tbillington

This comment has been minimized.

Copy link

commented Dec 15, 2016

@public

This comment has been minimized.

Copy link

commented Jan 23, 2017

@tbillington What about those of us who aren't writing services or clients in Go?

@tbillington

This comment has been minimized.

Copy link

commented Jan 23, 2017

@public Sorry mate, I've only got experience with go appengine, no idea about the others! I assume they have some way in their standard libraries to make raw sockets, maybe try starting there?

Good luck :)

@Jonathan34

This comment has been minimized.

Copy link

commented Mar 2, 2017

I am confused, it seem app engine supports http/2 already. From: https://cloudplatform.googleblog.com/2015/10/Full-Speed-Ahead-with-HTTP2-on-Google-Cloud-Platform.html

Google App Engine Both in its original incarnation and Managed VM configurations, Google App Engine servers are responsible for negotiating and terminating the TLS tunnel. As long as your application is being served over HTTPS, the Google servers automatically negotiate HTTP/2 on your behalf. Each HTTP/2 stream is then translated into an HTTP/1.1 request and routed to your application. As a result, no modifications are required within your application to enable HTTP/2. Simply direct your traffic through HTTPS and all capable visitors will be automatically served over HTTP/2.

So as long as the server uses the port 8080, we should be good? I do not think this will allow to use grpc along with asp.net routes though...

@tjerkw

This comment has been minimized.

Copy link
Author

commented Mar 2, 2017

@kpayson64

This comment has been minimized.

Copy link
Contributor

commented Dec 11, 2017

gRPC Clients should now work on all appengine standard runtimes.

@ctiller ctiller closed this Dec 11, 2017

@leighmcculloch

This comment has been minimized.

Copy link

commented Feb 14, 2018

AppEngine still does not have support for GRPC servers.

@tbillington

This comment has been minimized.

Copy link

commented Feb 16, 2018

@kpayson64 Was there an announcement around this, seems like a pretty big feature?

@tjerkw

This comment has been minimized.

Copy link
Author

commented Jun 25, 2018

gRPC client work, but im talking about making an gRPC server in Appengine Standard Environment.
This is not possible. Please re-open.

@kpayson64

This comment has been minimized.

Copy link
Contributor

commented Jun 25, 2018

@tjerkw
There are no plans for gRPC servers to support HTTP 1.1.

The current plan for gRPC servers on App Engine is for App Engine to support HTTP/2.

I think that work is better tracked on App Engine's public bug tracker, rather than the gRPC repository.

@leighmcculloch

This comment has been minimized.

Copy link

commented Jun 26, 2018

@kpayson64 Could you provide a link to where that is being tracked?

@kpayson64

This comment has been minimized.

Copy link
Contributor

commented Jun 26, 2018

@tjerkw

This comment has been minimized.

Copy link
Author

commented Jun 27, 2018

Maybe I'm wrong but it feels like Google is spending less time and effort on Appengine Standard environment. And more on the Flexible environment and other similar product like Kubernetes on Google Cloud.

Appengine Standard environment runs http 1.1, python 2.7 etc. It's getting old.

Also I understand that http 2.0 streaming is (more) difficult todo on the Standard Environment. But it is not impossible.

What's Google stand on this? If I start a new startup, should I use Appengine at all? Or is Kubernetes and docker recommended (which comes close to what Appengine provides).

I know this comment is a bit out of scope, but still interesting to see Google's answer on this.

@nicolasnoble

This comment has been minimized.

Copy link
Contributor

commented Jun 27, 2018

I am a Google employee, and I do not feel like it's appropriate for any of us here to respond to this last question. I would rather direct you to the GCP's support, who I know have support engineer for the customers who have design decisions like these to make.

@tbillington

This comment has been minimized.

Copy link

commented Jun 27, 2018

@tjerkw nodejs on Appengine standard was released just a few weeks ago with an apparently new "under the hood architecture" to make updates to standard Appengine runtimes easier (said new architecture will be rolled out to other Appengine languages), take from that what you will :) ! Sounds promising though.

@lock lock bot locked as resolved and limited conversation to collaborators Sep 28, 2018

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
You can’t perform that action at this time.