Allow High Density scaling Azure Function in Container on a single Elastic Plan Instance
I have an Azure Function in a linux container running on the Elastic Service Plan.
Currently I can not scale the number of containers of the same azure function container within the same Elastic Service Plan.
It would be great to have this as I need my Azure Function to run in isolation, but still want to be able to scale to multiple container instances.
I have lots of room to spare in the Elastic Service Plan, but currently the only way to scale, is scaling to multiple elastic plan instances.
In short I would like to be able to perform High Density hosting of Azure Function Containers on Elastic Service Plan.
I’m not sure I understand what you’re requesting.
Today in the Premium Linux plan your application will run multiple concurrent executions in the same container, then when that container reaches its CPU or memory limits another container will be added automatically.
Can you provide more detail on the bottleneck you’re experiencing?
Richard Boelen commented
Ok, I have a container that should execute a single function in isolation. It can only process one message from a storage queue because of application restrictions. We manage this with batchsize: 1 for queue processing.
But, I still want to be able to process multiple messages in paralell. It would be great to have multiple containers running in isolation on the same elastic plan instance. (because we still have CPU / Memory left).
As I understand now, when another container is added, it adds a new instance of the elastic plan, this becomes a bit expensive.
We can have this kind of functionality in kubernetes with azure funcitons in linux containers, combined with KEDA. When KEDA scales based on queue messages, it spins up new containers within the same nodes. Only when the node runs out of resources, it scales up new nodes.
This is great, but having this in a more azure managed way like the elastic servic eplan, would be perfect.