Autoscaling capabilities in Azure

2024年1月10日- By Hisham Nawzer
 

1. What is scaling in cloud computing?

Before we go into details about autoscaling, it is important to understand the concept of scaling in general. Scaling in cloud computing refers to the ability to increase or decrease the capacity and performance of a specific computing resource in a cloud environment. Scaling can be done in two ways.

  • Vertical Scaling
  • Horizontal Scaling
1-1. Vertical Scaling

Vertical scaling which is also known as Scaling Up / Down refers to increasing or decreasing the computing power (e.g., adding more CPU/ RAM / Storage) of the existing computing resource in the cloud.

As an example, a website with high traffic during the daytime can use vertical scaling to make sure that the system is available without interruptions even during the peak hours. More specifically, scaling up refers to increasing the computing power of an existing resource and scaling down refers to reducing computing power of an existing resource to handle the increased traffic towards the web site.

1-2. Horizontal Scaling

Horizontal scaling which is also known as Scaling Out / In refers to adding more instances to the computing resources in the cloud.

To give you an example for the same scenario described in above, adding more web server instances will also be able to increase the availability of the system when the network traffic is high during the peak hours. In detail, adding more instances is referred as scaling out and reducing the instances is referred as scaling in.   

2. Auto Scaling vs Manual Scaling support in Azure

Now that we are familiar with the basic concept of scaling, let us see what Auto Scaling and Manual scaling refers to and what kind of options are provided by Microsoft Azure to implement these concepts.

2-1. Manual Scaling

Assuming a web application is hosted with Azure App Service, if the web traffic is increasing, we can manually implement horizontal scaling using the Azure App service.

What we can do with manual scaling is that whenever we feel that more power or multiple instances required to handle the web traffic, we can manually increase the instance count by going through the Scale Out options in the Azure App Service.

Also, it is important to note that each web application we deploy in the Azure App Service should belong to an App Service Plan. Of course capabilities differ based on the tier of the App service plan we select.

To implement manual scaling the App service tier should be at least in B1 tier. Free and shared tiers do not support Manual scaling.[1]

[1] https://learn.microsoft.com/ja-jp/azure/azure-resource-manager/management/azure-subscription-service-limits#app-service-limits

2-2. Auto Scaling

Azure provides auto scaling capabilities from S1 tier onwards[1]. Azure app service provides two types of auto scaling: Auto scaling and Automatic scaling. Auto scaling is a feature of the S1(Standard tier) and Automatic scaling is a feature of Premium tier[2]. This article focuses on Autoscaling, and you can read more about Automatic scaling here.

In contrast to manual scaling, Azure app service has the capability to automatically increase or decrease the instance count to maintain the optimal functionality of the application based on certain metrics.

The metrics which mentioned above are important to note when setting up auto scaling. Http Queue length, CPU percentage, Memory Percentage are some of the metrics we can consider when setting up a scale rule for the auto scaling.

For example, when the average Http Queue length is higher than a certain level for the past ten minutes, we can set the instance count to be increased. Similarly, whenever the average Http Queue length become less than the average amount we set up, we can configure the instance count to be decreased.

Apart from setting up the scaling rule based on the metrics, we can also set up scaling rules if we are certain that there will be higher web traffic on specific period of a day or week, it is possible to set a scaling rule to increase the instance count on the specific period and decrease the instance count once that period is over.

It is important to note that Auto scaling does not support vertical scaling, only horizontal scaling.[3]

[1] https://azure.microsoft.com/ja-jp/pricing/details/app-service/windows/

[2] https://learn.microsoft.com/ja-jp/azure/app-service/manage-automatic-scaling?tabs=azure-portal

[3] https://learn.microsoft.com/ja-jp/azure/azure-monitor/autoscale/autoscale-overview#horizontal-vs-vertical-scaling

3. Benefits of using Auto Scaling capabilities in Azure

Auto scaling in Azure, offers several benefits that can help organizations optimize their resources, improve application performance, and reduce costs. Here are some of the key benefits of auto scaling in Azure:

Cost Optimization: Auto scaling allows us to automatically adjust the number of resources based on demand. This means we can allocate more resources during peak usage and scale down during periods of low activity. As a result, we can save on infrastructure costs by only paying for what we use.

Improved Application Performance: Auto scaling ensures that our applications can handle sudden increases in traffic or load without manual intervention. This helps maintain consistent application performance and responsiveness, even during traffic spikes.

High Availability: Auto scaling can enhance the availability of our applications. By distributing traffic across multiple instances or VMs, it can reduce the risk of downtime due to hardware failures or other issues. If one instance fails, the load balancer can redirect traffic to healthy instances.

Efficient Resource Utilization: Auto scaling can dynamically allocate resources to meet the current demand. This results in more efficient resource utilization, reducing underutilized or idle resources. It helps us achieve better resource-to-workload ratios.

Closing

By leveraging Azure’s auto scaling capabilities, organizations can optimize resources, enhance application performance, and reduce operational costs while ensuring consistent availability and efficient resource utilization.

About Rackspace

Discover the power of Rackspace Technology, brought to you by the Global Solutions Division of Iret Inc. in Japan. Elevate your cloud experience with our tailored end-to-end AWS and Microsoft Azure solutions. From expert consulting and seamless integration to cutting-edge development and daily operations, we are your dedicated partner in unleashing the full potential of the cloud. Are you ready to get started? Click the contact button below to get in touch with one of our experts.