Blog

How to configure your Azure environment to meet the performance and load goals of your web application

About Azure 

Azure Websites is an enterprise class cloud solution for developing and running web apps. You can stand up a website on Azure in seconds, without having to manage Virtual Machines, network load balancers or deployment infrastructure yourself. All of these capabilities are built in and provided by the Azure Websites service.

Scaling 

Scaling options 

There are two options of scaling: 

  • Scaling Up – aka Vertical Scaling (Increase resources capacity within existing node). It means going from a small dedicated instance to a medium one and to a large one.

  • Scaling Out – aka Horizontal Scaling (Increasing resources capacity by adding nodes). It simply means going from 1 machine to 2 machines all the way up to 10 machines.

Autoscale 

Autoscale helps you to survive load peaks. It allows you to grow resources with incoming traffic. If it’s configured correctly – it will save you some money. The reason for that is the fact that it will never use extra resources unless needed. 

How does it work? You have to specify a range of instances that can be used and some metric criteria defining when extra instances can be used.

Azure Autoscale options

Figure 1: Azure Autoscale options

Service Tiers

The Azure Websites service is available in Free, Shared, Basic and Standard editions. 

  • Free and Shared - The Free and Shared tiers are ideal for experimenting with the platform and for development and test scenarios. This article will not focus on those.

  • Basic Tier - Designed for web apps with lower traffic requirements, and which don‘t need more advanced autoscale and traffic management features.

  • Standard Tier - Designed for production web apps.

Pricing

 Available plans and their features with estimated pricing: 

Figure 2: Azure pricing plans

How to select the best plan for your web application? 

You can clearly see that each ‘better’ plan is twice as expensive. How to avoid unnecessary costs then?  

  • Design and develop a set of thorough web performance tests, which will reflect the users visiting your page. Then create load tests based on your performance tests.

  • Execute load tests for the maximum number of users that your web application was designed for.

  • Compare the received results with the expected results

First thing to check are the results of performance tests if the received response times are meeting your expectations. 

Check the statistics provided by Azure portal - what was the memory and Cpu percentage usage. 

Memory percentage and Cpu percentage usage

Figure 3: Memory percentage and Cpu percentage usage

History of resources usage

Figure 4: History of resources usage

 

If the received results are not satisfactory – reconfigure Azure and execute the same set of tests again. Of course we assume that the web application was developed according to the performance standards. 

How do we do it at Orbit One? 

We create performance and load tests using Visual Studio Ultimate. We execute load tests using the performance lab in the cloud offered by Visual Studio Online. 

Based on our own experience you can receive better results by investing in Scaling Up than Scaling Out. It’s simple: The tests that we have executed, demonstrated that it’s more efficient to select an instance with more resources than to add another instance of the same level. It’s also a good idea to use the auto scale option. However, it’s important to check first how your web application will react at the moment of the switch.

Technology Technology

Op 19/03/2015 door Lukasz

blog comments powered by Disqus