heroku / roadmap

This is the public roadmap for Salesforce Heroku services.
189 stars 11 forks source link

Support HTTP/2 End-to-End (To the Dyno) #288

Open elimchaysengSF opened 1 month ago

elimchaysengSF commented 1 month ago

In May of 2024, Heroku released the public beta for HTTP/2 on Heroku, with HTTP/2 terminated at the router and HTTP/1.1 forwarded to the dyno. We would like to support the HTTP/2 protocol end-to-end to unlock features like Server Push and gRPC services. This requires TLS termination done at the dyno level, and more research is needed regarding certificate management at the dyno level to support this.

Further customer feedback regarding end-to-end use cases from the original HTTP/2 roadmap item can be found below:

https://github.com/heroku/roadmap/issues/34#issuecomment-1500960951 https://github.com/heroku/roadmap/issues/34#issuecomment-1515400507 https://github.com/heroku/roadmap/issues/34#issuecomment-1560496404 https://github.com/heroku/roadmap/issues/34#issuecomment-1666577157 https://github.com/heroku/roadmap/issues/34#issuecomment-2091092821 https://github.com/heroku/roadmap/issues/34#issuecomment-2099174917

brettgoulder commented 1 month ago

@elimchaysengSF What are your thoughts around a new abstraction, from Dashboard & CLI, to be able to pick your routing? e.g. http/2 -> http/1.1 to the dyno versus http/2 all the way to the dyno. I realize there is a balancing act in order to not break any existing apps that would potentially just support http/1.1.

I realize it can be potentially done with flagging in via heroku features in the CLI, but this doesn't really feel like the right place to do it, nor is it supported in Dashboard. I don't believe any labs flags are supported in Dashboard actually, although Heroku Metrics's UI did have some ways of flagging in features.

elimchaysengSF commented 1 month ago

@brettgoulder I do like that idea. I'm working on the GA requirements which gives us some more room for a bit of UX scope. I've seen other providers do it this way, and having it in a proper toggle through the dashboard would be ideal in my view as well.