Q23. How to create highly scalable web application in Windows Azure?

We can create a highly scalable web application in windows azure using a combination of Web roles and Worker roles. These roles are the building blocks of a cloud application. Typically, every cloud application consists of web roles and worker roles and Windows Azure runs multiple instances of each web and worker role. As per our settings in the configuration files, azure creates those many instances.

scalable cloud application with queues

To create a scalable application in windows azure we need to understand two aspects, one is development perspective and other is deployment perspective.

Development perspective

We can create the cloud application in visual studio by choosing the Cloud service template which allows us to divide the application into web roles and worker roles. These roles are created as projects.

We need to set the configuration files for each web role and worker role independently. We do this in the configuration files by specifying the number of VM instances to run the application and size of the Virtual machine. After writing the logic in web role and worker role based on the application requirement, build the service package file and we make it ready for deployment.

Deployment perspective

After building the cloud application, the first step is to log on to the management portal and choose the Cloud services option which you require and deploy the application.

How does scaling happen?

Scaling up or down happens by increasing or decreasing the number of role instances. (discussed later) As you are charged only for the number of instances which exist in a certain period of time, you pay only for the resources used.

Important words

Building blocks

The phrase building block is commonly used in the education industry to teach learners a larger concept. The larger concept is divided into units and learners are exposed to units first before moving into higher level topics.

Cloud services execution model

Cloud services is a Azure execution model and is used to deploy scalable web application.