kedacore / http-add-on

Add-on for KEDA to scale HTTP workloads
https://kedacore.github.io/http-add-on/
Apache License 2.0
374 stars 98 forks source link

Use the external push gRPC protocol for external scaler => interceptor communication #97

Open arschles opened 3 years ago

arschles commented 3 years ago

We currently use a simple HTTP/JSON protocol for the scaler to communicate with the interceptor. Because this protocol is just request/response, it has limitations on latency that can cause very slow scale up times, which are especially noticeable when scaling up from 0 replicas.

It would be helpful to have some kind of two way protocol rather than what we have now. The external push scaler provides just this. We should take this and use it in the scaler.

Use-Case

As mentioned above, this would be useful to speed up scale-up (and down) latencies. This may help with #60 as well, but that's not the primary goal here.

Specification

benjaminhuo commented 3 years ago

Is there any plan to implement the external push interface?

arschles commented 3 years ago

@benjaminhuo we would likely implement the external push interface or something similar but simpler (because my guess is we won't need all the complexity of the current external push interface)

benjaminhuo commented 3 years ago

Looking forward to seeing this added!

arschles commented 3 years ago

Same here @benjaminhuo. @ajanth97 and I are going to come up with a design in the near future and the current plan is he's going to implement it. This will probably all start in earnest after the big #206 is merged.

Let me know if you'd like to get involved - you're certainly welcome to!

benjaminhuo commented 3 years ago

@arschles Yes sure, I'm happy to get involved!

arschles commented 3 years ago

ok. let's start by collaborating on a design. I've started a document here. feel free to leave comments etc...

Note: If you haven't used hackmd before, you have to login with your GitHub (or it supports some other SSO types I think) account before you can edit or comment.

ajanth97 commented 3 years ago

Awesome

benjaminhuo commented 3 years ago

ok. let's start by collaborating on a design. I've started a document here. feel free to leave comments etc...

Note: If you haven't used hackmd before, you have to login with your GitHub (or it supports some other SSO types I think) account before you can edit or comment.

@arschles That's a great place to start! @tpiperatgod @wanjunlei you can also take a look at this doc https://hackmd.io/ttpSY5KQQtGIqbAzyKex3g if you're interested

stale[bot] commented 3 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed in 7 days if no further activity occurs. Thank you for your contributions.

arschles commented 3 years ago

This is ongoing. @ajanth97 is working on it

tomkerkhove commented 2 years ago

Any update on this? Is it still relevant?

ajanth97 commented 2 years ago

Hi Sorry, I will work on this soon

tomkerkhove commented 2 years ago

Great, thanks!

arschles commented 2 years ago

Is it still relevant?

FWIW, I think it still is 😄