Creating a KEDA Scaler for Azure Container Apps (ACA) using Azure Portal
Use KEDA within Azure Container Apps to dynamically scale Azure DevOps agents
We run our Azure DevOps Build agents inside a container. This has allowed us to package various tools like kubectl
, helm
and terraform
packaged inside the agent image, which gives us control over versions of the tools we use — as we can execute our continuous integrations with consistent configuration. Also, adding any new tool is just adding installation instructions to the Dockerfile
and publishing a new image.
Microsoft has a detailed documentation on running Azure DevOps agent inside a container here
Further, we are running our agents as an Azure Container App, which has freed us from maintaining a dedicated AKS cluster and lets us dynamically scale the agents — a new agent per pipeline job with the help of custom scaling rules and KEDA.
In this post, I would like to show you how we added custom scaling with KEDA using the Azure Portal — Thanks to the KEDA scaler, we have a dynamic scaling pool, which automatically scales when there are more jobs in the queue and scales back down when demand reduces.
Creating an Azure Container App
Creating an Azure Container App can be done in a variety of ways — Terraform or any other IaC code, Azure CLI or through Portal. We are using Terraform internally, but for the sake…