For those of you not familiar with it, Azure App Service in a managed PaaS service for running your apps, be they .net, php, python, Java etc, without the need for managing VM’s, load balancers, OS, etc. The service is extremely popular and allows to run your apps on both Linux or Windows, but again you won’t actually see the OS itself. All management is performed via the Azure portal and deployments can be handled in a CI/CD manner with Azure DevOps, GitHub, or a plain old FTP.
One of the great things about App Service is that it has Auto-Scaling capabilities. You basically set your scaling point such as 75% CPU usage or 75% memory usage and when the threshold is met an additional instance will spin up, hook up to the load balancer, again you don’t actually see or have to configure the load balancer, and spread the traffic between the two instances. This is a great feature as it allows you to keep your app running on a smaller instance, this of course equals lower running costs and scale only when there is a higher load of traffic.
However you are required to configure the scaling points, and in a large application, this can be challenging as it may be CPU, RAM, concurrent connections, HTTP queue, etc. This is where the new automatic scaling comes in. Automatic scaling will automatically scale out the number of running instances as the request count increases and scale things down again when demand subsides.
At the moment this is in preview and enabling the feature is performed via the CLI. We expect to see the functionality in the GUI when the service hits GA. You can find the initial release notes for the service over here.