Azure WebApps- What's New: March 2024

Overview

A monthly look back on the new releases from the last month for the Microsoft Azure WebApp platform. I’m spending a great deal of my time working with WebApps, and hopefully this series will help both myself and others keep track of what’s new, what’s coming, and what’s going in the world of Azure App Services and Static Web Apps.

Automatic Scaling for App Service Web Apps

This feature became Generally Available (GA) this March. It improves the scale-out abilities of Premium-tier WebApps, prior to this feature autoscale was possible but required picking custom metrics and thresholds. Automatic Scaling is much more straightforward to implement and is based on traffic, rather that metrics such as CPU usage.

Tip

Remember that Scale-Out is when you add additional instances of a resource, where as Scale-Up is when you make the individual resource instance bigger, for example by increasing the number of CPU cores. This Automatic Scaling feature works with the Scale-Out model.

The Portal settings for this new feature can be found on the “Scale out (App Service Plan)” blade of the Web App. Automatic scaling is based on traffic and this feature allows you to set the minimum and maximum number of instances that will be created for you as that traffic level fluctuates. These are what the settings look like in the Azure Portal:

When the Scale out method is set to “Automatic” we have the following controls:

  1. Maximum burst - this is the maximum number of instances the plan can scale out to when traffic gets heavy. Be mindful of your costs here, if your P0V3 tier plan costs just 10p per hour to run, 10 instances will be costing you £1 (or 10c becomes $1 etc…). Keep that maximum within the budget for your application. Charges are made on a per-second basis when an instance is running.
  2. Always ready instances - in many ways this is a “minimum instances” value. Spinning up a new instance of a web app does take a short period of time, so this allows instances can be kept on standby, ready to receive traffic. Be aware you still get charged for these instances though.
  3. Enforce scale out limit - when enabled this limits the number of instances this individual app can scale to. This figure must be the same or smaller than the maximum burst instances value. In the example screenshot above the Maximum burst is set to 10 and the Maximum scale limit is set to 5. This means that this particular WebApp can scale out to 5 instances, but the App Service Plan as a whole (which could contain other App Services) can go as far as 10 instances.

The maximum number of instances on a Premium V2 or V3 plan is 30, so if you need to go beyond that you probably want to be looking at multiple plans sat behind an Azure Application Gateway or similar load balancer.

See azure.microsoft.com for more information.

Distributed functions in Static Web Apps

Info

This feature is in Public Preview. Preview features let you try new functionality before it is released. This feature may have limited support from Microsoft, and could change if/when it becomes Generally Available (GA).

A Static Web App has a home location, the region it is created in, but they already distribute the static assets globally. This is how it provides fast, responsive websites. The Functions in Static Web Apps have always been deployed just to that home region, but this feature allows them to also be globally distributed.

Turn this feature on and when the Static Web App function starts receiving a lot of traffic from a different region to that home region, a copy of the function is deployed to the new region and local requests are routed to that. This geographical move reduces latency by placing the function, for example the API endpoint, physically closer to the user.

This new feature is only available in the “Standard” hosting plan for Static Web Apps, not the free tier. More info can be found on learn.microsoft.com

Node 18 LTS Extended Support ending

Node 18 LTS support is ending at the end of April 2025 and Microsoft advise that any App Services you have using that version of the stack are upgraded to the newer Node 20 LTS.

As usual, upgrade of the stack is straightforward in the Azure Portal, assuming the codebase is compatible with the new version.

You can also upgrade an existing WebApp using PowerShell.

1#Check the Version of the stack in use.
2Get-AzWebApp -ResourceGroupName march2024-rsg -Name node18-march2024 | `
3   Select-Object Name,@{N="Version";E={$_.SiteConfig.LinuxFxVersion}}
1Name             Version
2----             -------
3node18-march2024 NODE|18-lts
1#Upgrade the stack to version 20 LTS.
2$WebApp=Get-AzWebApp -ResourceGroupName march2024-rsg -Name node18-march2024
3$WebApp.SiteConfig.LinuxFxVersion = "NODE|20-lts"
4$WebApp | Set-AzWebApp

Note that changing the stack will trigger a restart of the App Service.

See azure.microsoft.com for more information on the action required.

Other upcoming end of support dates

Stack End Date Link
.NET 7 (STS) 14 May 2024 azure.microsoft.com
App Service Environment v1/v2 31 August 2024 techcommunity.microsoft.com
.NET 6 (LTS) 12 November 2024 azure.microsoft.com
PHP 8.1 25 November 2024 azure.microsoft.com
NODE 18 (LTS) 30 April 2025 azure.microsoft.com