Hi everyone, we are back once again to introduce you the scaling feature of Microsoft Azure web apps.
Azure Web Apps are on such service that meets a lot of customer’s needs without having them to create and maintain an IIS server themselves. Microsoft makes it easy to quickly and easily create more instances to meet user demand of the website. They also take out the work of load balancing between the multiple instances and you are able to reduce the instance count once demand has subsided. You obviously incur a cost for the additional instances, but auto scaling allows you to scale back when you don’t need to meet that demand. We call this as Scale up and Scale out as shown below:
The very first thing you should consider is choosing the right App Service plan. The App Service plan is like a container for your Azure applications. This decision will affect your app’s location, features, cost, scale count, and instance size.
As of today, we have five different App Service plans available:
Free and Shared plans are usually good for dev/test environments. For production-grade workloads, it’s better to start with the Basic SKU or higher.
Basic, Standard, and Premium plans also have three different pricing tiers within each plan which could be seen by hitting the Scale up (App service plan) option of the web app:
The service plan that we are currently running on would be highlighted that our web app is utilizing. Depending on the app requirement you can simply switch service plan by just selecting the highest or lowest service plan and hit Select button, suddenly Microsoft Azure will spin up your app on the newly selected plan and send traffic to its server while turning off the server of the previous service plan.
After you choose your App Service Plan and deploy your web application, you can also Scale out by introducing an additional instance for your web application.
Normally, Scaling out is a more straightforward process, and you can configure auto-scaling for Standard and Premium plans. Below is a sample auto-scale configuration for my application. If the average CPU percentage across my instances is > 20% and < 50% then Azure will fire up an additional instance. I configured Azure to create a maximum of 5 instances for my application.
I also configured another condition. If my average CPU percentage across all instances is lower than 20% then Azure will turned off my instances. But I also made sure I will have minimum of one instance available all the time. The email will also be send to the admins and co-admins as soon as the required condition is met.
This is a great way to manage your performance and cost optimization together.
You can always visit your application properties and change the pricing tier, which means scaling up.
Scaling up is useful when you want to increase the workload volume that a single instance can host. It’s like putting more memory and CPU on a single box to meet the application demand.
I hope this blog post will help you when it comes to scaling your web application. Use scaling capabilities of App services and Microsoft Azure will take care of the rest.