Monday, August 29, 2011

Overview of Windows Azure Compute


What is windows azure compute –?
I have been trying to understand what Windows Azure Compute is. Finally yesterday I got some free hours to understand basics of windows Azure Compute. So today I will try to discuss the meaning of windows Azure Compute and its features.
Windows Azure has three main core parts –
1.     Compute Service
2.     Storage Service
3.     Fabric
Windows Azure Compute is a one of the core part of windows Azure Cloud Platform. In simple words, Windows Azure compute is application hosting environment. As the name interprets, compute service runs the application. Windows Azure Compute Service can run many different types of applications.



Requirement of Windows Azure Compute -
The primary aim of compute service is to support applications that have a large number of simultaneous users. To achieve high scalability the theory used to suggest using high configurations hosting machines; which practically not possible and not convenient. To support application which scales out, windows azure compute is designed for running multiple copies of the same code across many server machines.
To make multiple copies of same code to run across multiple server machines, applications in windows azure compute can have multiple instances. Each instance of application hosted in windows azure compute hosting environment will be executing in its own virtual machine.
These virtual machines have Windows Server 2008 – 64bit and VM’s hosted using Hyper-V. To run the application in windows Azure Compute, user will have to access Windows Azure Portal and use the appropriate credentials. Once logged in, user will have to create hosting account for running applications. Once hosting account is created, user uploads the application, specifies the number of instance to run for that application. Necessary VM’s are then automatically created based on configuration information supplied and application run’s on each of the VM.
Applications can be hosted in Windows Azure Compute in the form of Roles. Currently Windows Azure supports 3 types of Role instances –
1.     Web Role
2.     Worker Role
3.     VM Role
Web Role – (Frontend) –
Web role instance can accept http or https requests. It is very much analogous to the web applications that we create using Visual studio. As normal web application are hosted and runs in IIS, application uploaded as web role instance also runs in IIS which is present in the VM. Users can create web role instances using ASP.NET, WCF or another .NET technology which works with IIS. Developers can also create applications using native code such as PHP and java.
An important point here to note is, web role instances must be stateless. If you want persistence of any client specific state information then it should be stored in windows Azure Storage service.
Worker Role – (Backend) –
A worker role is used for generalized processing and can be used for background processing for a web role. Worker role is very much analogous to Windows Service application that we create using visual studio. Worker role do not run in IIS hence worker role cannot accept request from outside world or any incoming network connection. Instead, worker role initiates its own request for input. For example, worker role instance can get input from windows azure storage queue or worker role instance can open connections with outside world.
VM Role –
VM role enables you to define configurations and updates of the operating system for a virtual machine. Web role and Worker role run in a virtual machine whereas VM role is the virtual machine which gives you full control of operation. VM role is used following scenarios –
1.     If you are creating an application which requires long running setup.
2.     If your application has higher percentage of installation errors.
3.     If application installation requires any manual intervention.
Benefits of Windows Azure Compute –
As windows azure compute service provides hosting environment, developers can focus on application development without worrying about operational and infrastructural constraints.
Windows azure takes care of load balancing and failure recovery hence cost of application environment reduced to the great extent.
Azure Compute provides high availability to application hosted.
Compute provides facility to automatically scale down or scale up instance count for hosted application.
Azure provides flexible range of role instance sizes which developer can choose as per requirement.
Following is the current range of windows azure compute instance sizes taken from Microsoft site –

Compute Instance Size
CPU
Memory
Instance Storage
I/O Performance
Cost Per Hour
Extra Small
1.0 GHz
768 MB
20 GB
Low
$0.05
Small
1.6 GHz
1.75 GB
225 GB
Moderate
$0.12
Medium
2 x 1.6 GHz
3.5 GB
490 GB
High
$0.24
Large
4 x 1.6 GHz
7 GB
1,000 GB
High
$0.48
Extra Large
8 x 1.6 GHz
14 GB
2,040 GB
High
$0.96


For details about pricing visit Microsoft Azure Pricing.
Cheers…
Happy Programming!!

3 comments:

  1. worker role instance can get input from windows azure storage queue or worker role instance can open connections with outside world.web hosting service india

    ReplyDelete
  2. Yes gaurav that's correct. Thanks for input.

    ReplyDelete
  3. The primary aim of compute service is to support applications that have a large number of simultaneous users. This is a superb information and you have described everything very clearly.
    Web Hosting India

    ReplyDelete