Why isn't grpc supported on GAE standard?

2,176 views
Skip to first unread message

Ivo Bellin Salarin

unread,
Feb 21, 2017, 7:42:57 AM2/21/17
to google-a...@googlegroups.com
Several sources state that grpc isn't supported on AppEngine Standard.
Somebody has already asked when it will be supported, with no (precise) answer.

Does somebody know why it isn't supported, technically? Somebody has implemented part of grpc (think prpc for the go runtime). Somebody points out that the problem is (lacking support of) HTTP/2. I can't find any resource talking about grpc (or HTTP/2) support in AppEngine standard, today.

Has anybody a better picture?


George (Cloud Platform Support)

unread,
Feb 21, 2017, 10:48:16 AM2/21/17
to Google App Engine
The main reason, why gRPC support is not available for App Engine flexible environment as yet, is related to the presence of the load balancer.  In fact one may say that gRPC would be supported,  were it not for the fact that the GAE load balancer prevents such requests to reach the instances.

Engineers are keenly aware of the need to provide GAE access for gRPC requests, and actively working to implement such access. For the time being, your can use Compute Engine instances sitting behind a network load balancer with an autoscaler.  This approach amounts to creating your own App Engine service.

Ivo Bellin Salarin

unread,
Feb 21, 2017, 12:28:53 PM2/21/17
to Google App Engine

And, is there something preventing the GAE standard instances from accessing grpc services? The GAE instances would behave as clients rather than servers. I'm thinking in this case to Google Cloud Spanner...


Le mar. 21 févr. 2017 16:48, 'George (Cloud Platform Support)' via Google App Engine <google-a...@googlegroups.com> a écrit :
The main reason, why gRPC support is not available for App Engine flexible environment as yet, is related to the presence of the load balancer.  In fact one may say that gRPC would be supported,  were it not for the fact that the GAE load balancer prevents such requests to reach the instances.

Engineers are keenly aware of the need to provide GAE access for gRPC requests, and actively working to implement such access. For the time being, your can use Compute Engine instances sitting behind a network load balancer with an autoscaler.  This approach amounts to creating your own App Engine service.

--
You received this message because you are subscribed to the Google Groups "Google App Engine" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-appengi...@googlegroups.com.
To post to this group, send email to google-a...@googlegroups.com.
Visit this group at https://groups.google.com/group/google-appengine.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-appengine/6ddabc76-5eb4-4e8f-99c7-da6ecf14ee10%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

George Suceveanu

unread,
Feb 21, 2017, 1:28:31 PM2/21/17
to google-a...@googlegroups.com

GAE instances run in a managed environment, where load balancing is provided behind the scenes. Routing remote procedure calls in GAE should prove equally difficult, or more, than in the flex environment.


gRPC is meant for mobile applications and similar apps playing the role of clients. What use case do you have in mind, involving Cloud Spanner and cloud deployed apps, exactly? Why would this scenario represent the best solution?


On Tue, Feb 21, 2017 at 12:28 PM, Ivo Bellin Salarin <ivo.bell...@gmail.com> wrote:

And, is there something preventing the GAE standard instances from accessing grpc services? The GAE instances would behave as clients rather than servers. I'm thinking in this case to Google Cloud Spanner...


Le mar. 21 févr. 2017 16:48, 'George (Cloud Platform Support)' via Google App Engine <google-appengine@googlegroups.com> a écrit :
The main reason, why gRPC support is not available for App Engine flexible environment as yet, is related to the presence of the load balancer.  In fact one may say that gRPC would be supported,  were it not for the fact that the GAE load balancer prevents such requests to reach the instances.

Engineers are keenly aware of the need to provide GAE access for gRPC requests, and actively working to implement such access. For the time being, your can use Compute Engine instances sitting behind a network load balancer with an autoscaler.  This approach amounts to creating your own App Engine service.

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

--
You received this message because you are subscribed to a topic in the Google Groups "Google App Engine" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/google-appengine/4CM0y5qNecY/unsubscribe.
To unsubscribe from this group and all its topics, send an email to google-appengine+unsubscribe@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.

Ivo Bellin Salarin

unread,
Feb 22, 2017, 6:00:58 AM2/22/17
to google-a...@googlegroups.com
AFAIK, gRPC is not just meant to be used by mobile apps. gRPC means also huge performance improvements when compared to a classical http REST api.
In my understanding, this is probably the reason for which the `google-cloud-spanner` python module (the spanner client library for the python runtime) uses gRPC ONLY to route its requests. As well, this means that this type of client libraries are unsupported on GAE standard.
Since I have been able to execute the google-cloud-spanner module locally (with a dirty hack), I wanted a more precise explanation of what's wrong with gRPC on GAE standard.

Thanks a lot for yours, it's clearly a dead end for my cloud-spanner POC using the `google-cloud-spanner` module. I can't do nothing more than wait for keenly aware engineers :) apart from that, the `google-cloud-spanner` module is so pleasureful to use that I have decided to use the same interface for my HTTP REST API based implementation. :-)

Le mar. 21 févr. 2017 à 19:28, 'George Suceveanu' via Google App Engine <google-a...@googlegroups.com> a écrit :

GAE instances run in a managed environment, where load balancing is provided behind the scenes. Routing remote procedure calls in GAE should prove equally difficult, or more, than in the flex environment.


gRPC is meant for mobile applications and similar apps playing the role of clients. What use case do you have in mind, involving Cloud Spanner and cloud deployed apps, exactly? Why would this scenario represent the best solution?


On Tue, Feb 21, 2017 at 12:28 PM, Ivo Bellin Salarin <ivo.bell...@gmail.com> wrote:

And, is there something preventing the GAE standard instances from accessing grpc services? The GAE instances would behave as clients rather than servers. I'm thinking in this case to Google Cloud Spanner...


Le mar. 21 févr. 2017 16:48, 'George (Cloud Platform Support)' via Google App Engine <google-a...@googlegroups.com> a écrit :
The main reason, why gRPC support is not available for App Engine flexible environment as yet, is related to the presence of the load balancer.  In fact one may say that gRPC would be supported,  were it not for the fact that the GAE load balancer prevents such requests to reach the instances.

Engineers are keenly aware of the need to provide GAE access for gRPC requests, and actively working to implement such access. For the time being, your can use Compute Engine instances sitting behind a network load balancer with an autoscaler.  This approach amounts to creating your own App Engine service.

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

--
You received this message because you are subscribed to a topic in the Google Groups "Google App Engine" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/google-appengine/4CM0y5qNecY/unsubscribe.
To unsubscribe from this group and all its topics, send an email to google-appengi...@googlegroups.com.

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

George Suceveanu

unread,
Feb 22, 2017, 9:07:12 AM2/22/17
to google-a...@googlegroups.com
You are right: mobile apps usage is just one of the use cases for gRPC. 

The keenly aware engineers do not rest idle, you can rest assured: they have plenty on their hands; and the gRPC on GAE does not enjoy least priority of all. 

On Wed, Feb 22, 2017 at 6:00 AM, Ivo Bellin Salarin <ivo.bell...@gmail.com> wrote:
AFAIK, gRPC is not just meant to be used by mobile apps. gRPC means also huge performance improvements when compared to a classical http REST api.
In my understanding, this is probably the reason for which the `google-cloud-spanner` python module (the spanner client library for the python runtime) uses gRPC ONLY to route its requests. As well, this means that this type of client libraries are unsupported on GAE standard.
Since I have been able to execute the google-cloud-spanner module locally (with a dirty hack), I wanted a more precise explanation of what's wrong with gRPC on GAE standard.

Thanks a lot for yours, it's clearly a dead end for my cloud-spanner POC using the `google-cloud-spanner` module. I can't do nothing more than wait for keenly aware engineers :) apart from that, the `google-cloud-spanner` module is so pleasureful to use that I have decided to use the same interface for my HTTP REST API based implementation. :-)

Le mar. 21 févr. 2017 à 19:28, 'George Suceveanu' via Google App Engine <google-appengine@googlegroups.com> a écrit :

GAE instances run in a managed environment, where load balancing is provided behind the scenes. Routing remote procedure calls in GAE should prove equally difficult, or more, than in the flex environment.


gRPC is meant for mobile applications and similar apps playing the role of clients. What use case do you have in mind, involving Cloud Spanner and cloud deployed apps, exactly? Why would this scenario represent the best solution?


On Tue, Feb 21, 2017 at 12:28 PM, Ivo Bellin Salarin <ivo.bell...@gmail.com> wrote:

And, is there something preventing the GAE standard instances from accessing grpc services? The GAE instances would behave as clients rather than servers. I'm thinking in this case to Google Cloud Spanner...


Le mar. 21 févr. 2017 16:48, 'George (Cloud Platform Support)' via Google App Engine <google-appengine@googlegroups.com> a écrit :
The main reason, why gRPC support is not available for App Engine flexible environment as yet, is related to the presence of the load balancer.  In fact one may say that gRPC would be supported,  were it not for the fact that the GAE load balancer prevents such requests to reach the instances.

Engineers are keenly aware of the need to provide GAE access for gRPC requests, and actively working to implement such access. For the time being, your can use Compute Engine instances sitting behind a network load balancer with an autoscaler.  This approach amounts to creating your own App Engine service.

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

--
You received this message because you are subscribed to a topic in the Google Groups "Google App Engine" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/google-appengine/4CM0y5qNecY/unsubscribe.
To unsubscribe from this group and all its topics, send an email to google-appengine+unsubscribe@googlegroups.com.

To post to this group, send email to google-appengine@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

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

--
You received this message because you are subscribed to a topic in the Google Groups "Google App Engine" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/google-appengine/4CM0y5qNecY/unsubscribe.
To unsubscribe from this group and all its topics, send an email to google-appengine+unsubscribe@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages