Azure is Microsoft's cloud computing offering that is garnering a lot of developer attention. To understand how to write applications for the Azure platform, you need to understand the components that build up a hosted service. There are a number of components that make up a Windows Azure application.
For an application to be scalable, it needs to have scalable parts that can be configured easily. The configuration settings will define how the service can run.
The Components of an Azure Application
A picture is worth a thousand words. Figure 1 shows the breakdown of a Windows Azure application.
Figure 1: Breakdown of a Windows Azure Application
In the figure, you can see a variety of roles including:
- Web Role
- Worker Role
- VM Role
the following sections cover each of these
The Web Role
The Web Role in a cloud application is a role supported by IIS7 and ASP.NET. It is used to provide a web-based front-end for your hosted service. This can contain web sites or other code supported by IIS. It is not unusual to find this in the form of an ASPX page or a web service (ASMX). The web role in Azure is similar to the one in ASP.NET web application.
With Azure SDK 1.3, the web role supports scripting start-up configuration tasks and configuring FastCGI directly under IIS.
The Worker Role
The Worker Role role is used for generalized operations of the service. These are like worker bee. Worker roles may also perform background tasks for the web role. The worker role is ideal for long running or intermittent tasks. Examples of tasks performed include:
- CPU intensive computations
- Hosting service that don't have UI
- Long running asynchronous tasks
- Running TCP based services
- Listening to Queues
The VM Role
The VM, or Virutal Machine Role is a special role that job is to define the configuration and updating of the operating system for the virtual machine. Both the web role and worker role run inside the VM role. It gives full control of operations.
The VM role consists of an operating system that is composed of a base Virtual hard drive (VHD) and one or more differencing VHD. The VM role also contains service definition and service configuration files.
The three roles are important to understand in regard to Azure applications. You can see that the three key roles are the web role, the worker role,and the VM role. These roles are a key components of an Azure application. In upcoming articles, you'll learn how to write applications targeting the Azure platform.
About the Author
Vipul Patel is a Software Engineer currently working at Microsoft Corporation. He is currently working in the Office Communications Group and has worked in the .NET team earlier in the Base Class libraries and the Debugging and Profiling team. He can be reached at firstname.lastname@example.org.