KEDA provides event-driven autoscaling to containers running on an AKS (Azure Kubernetes Service) cluster. In collaboration with Redhat, Microsoft built this open source project.
Most of the time when dealing with scale we react (manually or automatically) to some metric being triggered over a threshold period of time. For example, if CPU > 60% for 5 minutes, scale our app service out to a second insance. By the time we’ve raised the trigger and completed the scale out the burst of traffic/events has passed. This means that we are always lagging behind our demand and possibly have been unable to serve some (or many) requests.
KEDA on the other hand exposes rich events data like Azure Message Queue length to the horizontal pod autoscaler so that it can manage the scale out for us. Once one or more pods have been deployed to the meet the event demands, events (or messages) can be consumed directly from the source which in our example is the Azure Queue.
KEDA also then scales the pods back as events are consumed and eventually we can reach zero scale when there are no more events in the queue.
Check out the PRE14 session by Jeff Hollan for a demo of how easy it is to add an Azure Functions app to an AKS cluster and enabling KEDA. Alex Karcher and Jeff Hollan shows the same KEDA demo again in the BRK3042 breakout session.
The KEDA project is open source and can be found on Github. Make sure you ⭐ this repo :)
I give KEDA 💎💎💎💎 out of 5 gems!