-
Notifications
You must be signed in to change notification settings - Fork 439
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
Enable HTTP/3 by default #845
Comments
Hi @ghassanmas! From a theoretical perspective, I understand the point of supporting http3. But what I do not know is the actual performance benefit that it will bring to Open edX. Did you run some tests to benchmark the impact? |
Initial tests using Google's PageSpeed Insights show significant improvements with http/3. Without http/3 (current implementation): With http/3: In particular, total blocking time is reduced by 55% (510 -> 230 ms), so this is pretty big. Based on these figures, I agree with you that we should support http/3. But we will need to add support to Kubernetes as well, and we will need to add instructions for end users to make the most use of it. |
@regisb for your previous question, I think you were faster than me in doing plain tests ;), and for why we should enable HTTP/3, another point is that for IETF, HTTP/3 standard holds same status as for HTTP/2 which is proposed standrad.
Regarding meaning of proposed standard:
So my thinking was if we support HTTP/2 by default, then logically we shall support HTTP/3 assuming we follow the IETF criteria.
I think probably it would need to add extra port for caddy options, where the protocol is specified, to my qick investagation k8s as well use TCP protocol by deafult2, so propaly a new port entry for 443 while speciing the protocol is needed. Though I haven't tested this, nor do I have a matrue expirence in regard of tutor/k8s.
Thinking about this, I think this would be relevant for people who won't be using the default deployment options for tutor, of which I can think of two main scinarios:
For the 1. I think it would depend which proxy server opreator would choose (caddy, nginx, apache..etc). i think http/3 is not supported using the deafult config for the latter as is the case of caddy. Nginx offcial doc recommend rebuilding the binary,3 Other than that, for nginx, there seems to be an nginx module built by cloudflare to support it 4. For 2, I think I might not be in a good position to determine what/how, but I think if typically opreators use ingress for nginx, then probably the above note is relevant. For spefically Footnotes
|
It was observed that waiting time was cut in half after http/3 was enabled. Plus, supporting http/3 is super easy :) Close #845
It was observed that waiting time was cut in half after http/3 was enabled. Plus, supporting http/3 is super easy :) Close #845
It was observed that waiting time was cut in half after http/3 was enabled. Plus, supporting http/3 is super easy :) Close overhangio#845
Is your feature request related to a problem? Please describe.
From
caddy version 2.6
it allows/uses http3 by default, which was experimental.To utilize http3, docker compose would need to bind to udp, given the http3/quic new protocal is built on top of UDP1.
Describe the solution you'd like
Expected code change to allow such feature
tutor/tutor/templates/local/docker-compose.prod.yml
Lines 7 to 9 in 545d0f5
Which shall be rendered to assuming https is enabeld:
Describe alternatives you've considered
Additional context
Footnotes
https://en.wikipedia.org/wiki/HTTP/3 ↩
The text was updated successfully, but these errors were encountered: