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

gRPC/HTTP2 support #1015

Open
bbutcher opened this issue Sep 25, 2020 · 32 comments
Open

gRPC/HTTP2 support #1015

bbutcher opened this issue Sep 25, 2020 · 32 comments
Assignees
Labels

Comments

@bbutcher
Copy link

When will AGIC support http2? This is becoming more important as we deploy gRPC services to AKS.

I know I can workaround this with grpc.web but it is adding extra steps to our development.

@mscatyao mscatyao added AppGw Feature Request feature New feature or request labels Nov 20, 2020
@mscatyao mscatyao changed the title http2 support gRPC/HTTP2 support Nov 20, 2020
@mscatyao mscatyao added this to Backlog in Feature Roadmap via automation Nov 20, 2020
@mscatyao mscatyao moved this from Backlog to Pending support on Application Gateway in Feature Roadmap Nov 20, 2020
@dhananjaya94
Copy link

Please provide an ETA on the gRPC support

@jovicde
Copy link

jovicde commented Oct 29, 2021

We were planning to move our applications to AGIC, but cannot, since we rely on gRPC. gRPC-web is not an alternative since it does not support bidirectional streaming. We would really appreciate if you could give us an ETA. If it takes longer, than we have to find another solution.

@mscatyao
Copy link
Contributor

We are planning to work on gRPC in CY22, we should have a better idea of approximate ETA around Feb 2022.

@jruckert
Copy link

Any update on this @mscatyao?

@colin-barlow-swi
Copy link

HI @mscatyao is there an update of the gRPC ETA?

@fractiunate
Copy link

+1

@zalegrala
Copy link

If working with AKS, the nginx ingress can be modified to receive gRPC traffic in Azure.

@mirgil
Copy link

mirgil commented Apr 14, 2022

We are planning to work on gRPC in CY22, we should have a better idea of approximate ETA around Feb 2022.

Any update on supporting gRPC?
Is there a change it will be in CY22?

@techgeek03
Copy link

techgeek03 commented Apr 20, 2022

Any updates on this @mscatyao ? We have been using gRPC for over two years now and been forced to use both AGW and Azure Firewall. HTTP3 is just around the corner and we still don't have HTTP2 support for the backend pool in any of the current Azure products.

@periapsistech
Copy link

@jovicde any updates on supporting HTTP2 or gRPC in the AGIC?

@jovicde
Copy link

jovicde commented May 30, 2022

@jovicde any updates on supporting HTTP2 or gRPC in the AGIC?

Not that I am aware of. We switched to SignalR due to lack of gRPC support in Azure. Also, SignalR supports true bi-di communication, while in gRPC we had to deal with infinite function calls to eventually fire server-sent events. Felt a bit like the forever frame in the good old days.

@xsoheilalizadeh
Copy link

We are adapting our services to use HTTP/2 it would be necessary for us to have this feature.

@bborovan
Copy link

bborovan commented Sep 9, 2022

Is there any update on gRPC support?

@e96wic
Copy link

e96wic commented Sep 15, 2022

Microsoft just told me

This topic is still in the backlog of the team, and we do not have an ETA on it.

@bborovan
Copy link

Thanks for passing this on @e96wic and good to know, though seems to confirm this is not their priority and no point holding breath on it. No ETA = don't count on it any time soon, if i read between the lines.

@PeretzBatel
Copy link

Hello, is there yet support for HTTP2?

@omutas
Copy link

omutas commented Apr 12, 2023

@mscatyao is this on your schedule for 2023?

@JonathanMCox
Copy link

I'm using ApplicationGateway in front of my Kubernetes Cluster (AKS).
I've deployed a container that I want to support Bidirectional streaming.

When running locally (in VisualStudio on laptop) the code does (and is expected to) "wait" here
await foreach (var y in z.ResponseStream.ReadAllAsync(ct))
{ code is supposed to wait here... } [all this works as expected on local laptop]

When the code is deployed behind the ApplicationGateway any attempts to access the ResponseStream doesn't appear to be an option.
System.InvalidOperationException: Can't write the message because the request is complete.

I get an IOException when using ApplicationGateway while attempting to try and support the Bidirectional streaming. Example: IOException: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host.

This is an example proto file for context.
rpc SubscribeBiDirectionalStream (stream SubscriberResults) returns (stream SubscriberResult);

I suspect based on the comments above that the ApplicationGateway can't support bidirectional streaming.
I've tried gRPC, and gRPC-Web and can't get either to work behind the ApplicationGateway with bidirectional streaming.

Should I just drop the ApplicationGateway and switch to a direct NGINX ingress controller?
Any timelines, thoughts on how to go about supporting bidirectional streaming/websockets?

@xsoheilalizadeh
Copy link

We switched completely to https://github.com/traefik/traefik, @jcoxcomdata it might be an option for you.

@mdanylyuk
Copy link

Hello guys
Is there any news about supporting gRPC in AGIC?

@haorenfsa
Copy link

@akshaysngupta Any comment about this feature? Is there still any plan? It's quite critical if we want to use AGIC.

@dfenerski
Copy link

dfenerski commented Oct 6, 2023

We are experiencing faulty behavior because HTTP2 is enabled on Azure Application Gateway and I now find out AGIC does not support this. Weird functionality mismatch IMO

@N8-I
Copy link

N8-I commented Nov 2, 2023

its-been84years-titanic

@shubhamdeodia
Copy link

We need this :-(

@fforootd
Copy link

Its good to see that I am not the only one who finds this weird 🤣

@mdanylyuk
Copy link

Hey guys,
Is there any news about this?)

@fractiunate
Copy link

fractiunate commented Jan 24, 2024

MS seems to not care about feature that does not bring revenue... (or promotes competitors products like grpc).

Switched to full fledged Istio as a Work-Arround/ Final solution as it seems...

@N8-I
Copy link

N8-I commented Jan 24, 2024

Is using the Azure Load Balancer with a different ingress controller a viable alternative?

@djfr
Copy link

djfr commented Jan 24, 2024

You can mix and match ingress controllers. We use both the appgateway and the nginx ingress controllers, nginx will use the load balancer deployed for the nodepool.

Another annoying quirk of the appgateway is that if you have frontdoor/cloudflare at the top of the ingress, the appgateway will rewrite X-Forward headers from frontdoor/cloudflare, you need to put in a special policy to re-write them again to what frontdoor outputs.

@mdanylyuk
Copy link

If we use the default Nginx ingress controller to publish services what's the reason for mixing it with AGW - you can publish APIs/gRPCs/frontend/etc. So what's the reason to use AGW at all? (the logical question isn't it?)

But for me, it's rather a question of not using lots of solutions and not creating chaos in the system) (except of using benefits of AGW by default)

@mdanylyuk
Copy link

Hello
Guys, is there any news about supporting gRPC?

@nvenkatapavan
Copy link

Hi everyone,
Any update on gRPC or any alternative solution?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
No open projects
Feature Roadmap
  
Pending support on Application Gateway
Development

No branches or pull requests