Scaling in Azure Container Apps
Azure Container Apps manages automatic horizontal scaling through declarative scaling rules, utilizing KEDA scalers.
Azure Container Apps manages automatic horizontal scaling through declarative scaling rules. We can scale out our container apps based on a variety of different KEDA scalers.
I recorded a video over the weekend covering how scaling works in Azure Container Apps, what KEDA is and how to set scaling rules within Azure Container Apps, using HTTP and Azure Queue storage scale rules as an example.
If you prefer reading rather than watching, continue reading this post. I’ll only be covering the storage queue scaler in this post, so if you want to see how the HTTP scaler works, please watch the video.
How does scaling work in Container Apps?
As I mentioned earlier, Container Apps horizontally scale based on the scaling rules that have been set for that container app. As it scales out, new instances (or replicas) of the container app are created.
There are two scale properties that apply to all the scale rules that we define for a container app:
- minReplicas: This is the minimum number of replicas for a container app.
- maxReplicas: This is the maximum number of replicas for a container app.
With some container app triggers, we can scale to zero instances. This can be cost-efficient if we have an app that isn’t used often, since we won’t be billed for usage charges. However, this can create cold-starts for our application. If you want an instance of your app to always run, set the minReplicas count to 1. The flip side to this is that if you have replicas that are not processing anything, but are running in memory, you will be billed for ‘idle charges’.
Scaling rules in Container Apps are bound to a particular revision. When we change our scaling rules, a new revision of the…