Page MenuHomePhabricator

[terraform] change protocol version from grpc -> http2
ClosedPublic

Authored by varun on Dec 11 2023, 10:39 PM.
Tags
None
Referenced Files
Unknown Object (File)
Tue, Dec 24, 4:59 AM
Unknown Object (File)
Tue, Dec 17, 5:23 AM
Unknown Object (File)
Mon, Dec 16, 8:02 PM
Unknown Object (File)
Nov 9 2024, 5:22 PM
Unknown Object (File)
Nov 8 2024, 10:02 PM
Unknown Object (File)
Nov 8 2024, 7:18 PM
Unknown Object (File)
Nov 8 2024, 7:18 PM
Unknown Object (File)
Nov 8 2024, 7:18 PM
Subscribers

Details

Summary

changed the load balancer target group from GRPC to HTTP2 to resolve the grpc-web issues on staging.

safari and chrome were able to adapt to HTTP2 and so requests succeeded. normal gRPC requests from native still work, too.

one issue, though, is that older browsers that don't support HTTP2 won't be able to run the web app

Browsers with limited HTTP/2 support:

  • Internet Explorer 11 (limited support for specific features, unclear what these feature are, though)
  • Older versions of Android WebView (prior to version 47)

Browsers with no HTTP/2 support:

  • Internet Explorer 10 and earlier
  • Older versions of iOS Safari (prior to version 9)
  • Older versions of Android Browser (prior to version 5)

Another possible solution is to introduce a new aws_lb_listener that listens on a different port (say, 50057) for HTTP/1.1 requests, but this solution is a little more involved. If we think this is the right way to go, I can revise this diff.

Test Plan

used the grpc-web client to send generateNonce requests to staging successfully on chrome and safari, tested
normal grpc requests on native to make sure they still work

Diff Detail

Repository
rCOMM Comm
Branch
deleteuser (branched from master)
Lint
No Lint Coverage
Unit
No Test Coverage

Event Timeline

Harbormaster returned this revision to the author for changes because remote builds failed.Dec 11 2023, 10:53 PM
Harbormaster failed remote builds in B24957: Diff 34495!

used the grpc-web client to send generateNonce requests to staging successfully on chrome and safari, tested
normal grpc requests on native to make sure they still work

If this works for both grpc-web and native tonic client, that's great!


I only looked briefly, but it seems like unsupported mobile browsers are for older iOS/Android versions than minSdkVersion = 21 / platform :ios, '13.0' so this should be okay. Anyway we don't support web version on mobile, do we?
I can't tell about IE 10/11 though
cc @ashoat


Another possible solution is to introduce a new aws_lb_listener that listens on a different port (say, 50057) for HTTP/1.1 requests, but this solution is a little more involved. If we think this is the right way to go, I can revise this diff.

I don't really like that solution, but indeed it should work

bartek added 1 blocking reviewer(s): ashoat.

This solution looks good to me as long as @ashoat accepts unsupported browsers

This revision is now accepted and ready to land.Dec 12 2023, 6:54 AM