Wednesday, November 21, 2012

Windows Azure Components

Cloud computing is the future of application development and it is getting more and more popular day by day. Azure is a platform for cloud computing given by Microsoft. We can use this platform to build a web application/ web site that runs and stores data in Microsoft Cloud datacenters. We can create and deploy our web applications using the Visual studio and Windows Azure. For this we need to have an account in the Windows Azure platform.  Luckily the 90 Days Trial for Windows Azure is available from Microsoft. The Requirement is just to have a Windows Live ID and a valid credit card to authenticate you.

We can use Windows Azure for a Virtual machine, a Web site or for a Cloud service.  The Azure is consisting of various components. In this article I am going to describe that entire Component with some brief details. The knowledge of these are important in order to understand the functionality of Windows Azure.
We can divide the Azure in the following main components which are made up of smaller parts. The basic building blocks for Azure are.
  • ØExecution Models
  • Ø  Data Management
  • Ø  Networking
  • Ø  Business Analytics
  • Ø  Messaging
  • Ø  Caching
  • Ø  Identity
  • Ø  High performance Computing
  • Ø  Media
  • Ø  Commerce
  • Ø  &  SDK’s

These components are then future made up of the individual parts that are described below.

Execution Models:-
ü  Virtual machine
ü  Web Site
ü  Cloud Services
Data management:-
ü  SQL Database
ü  Tables
ü  Blob
Networking :-
ü  Virtual Network
ü  Connect
ü  Traffic manager

Business Analytics :-
ü  SQL Reporting
ü  Hadoop

Messaging :-
ü  Queues
ü  Service Bus

Caching :-
ü  Caching
ü  CDN

Identity :-
ü  Windows Azure Active Directory

High performance Computing :-
ü  HPC Scheduler

Media :-
ü  Media Service

Commerce :-
ü  Market Place

SDK  :-
ü  .NET
ü  PHP

Details of these components are as follows.

Virtual Machine:-  Azure  can be used as a virtual machine in order to save time and cost. We just need to specify the Virtual Hard Disc (VHD) and the VM space required, thus it can only be used as and when an image or data arise. The same can also be moved out of Cloud service to work locally.

Web Sites:  This is the most common use of Cloud computing where the data used in the web sites are stored in the cloud data centers. IIS manages the web sites and we can move the IIS in Azure to take care of the data and information management. The development and storage can be from any language from .Net, PHP to SQL or any other relational data base.

Cloud Service:  Some time the application is not required a lot of administration instead we need to do a lot of operation that are not frequent thus in that case we can use Azure as a service or we can say platform as a Service. Azure is the best option is to use in this case which gives us a lot of flexibility and scalability to test or create the environment with multiple users, shutting or starting any running instance or modification in it with a low cost hosting environment.

SQL Data Base: Azure gives us choice for storing our data in Cloud platform. If our application is such that we require a relational data base to store our data in that case the Azure provide us the SQL data base with full feature to store our data. The control is in our hand thus we can manage that that all is going to access our data base and it gives us the flexibility to create replica of data base to reduce the down time.

Tables:-  is our data base is very large but there is no complex calculation in data in that case we need not to  have a complete relational data base. In this case there is an option to store our data in a structure which is fast and reliable. Here come the TABLES where the data is store in the plain tables for fast access. An example of data storage is the Key values pair where data is store with a key so that it can be retrieve faster.

Blob: The Other option to store the Data in cloud is the “Blob” where the data is stored in a binary format that is unstructured. This is useful if we are simply having a backup of any data or information where the Data is important not the structure..

Virtual network:  In this case the cloud will work as simply as the extension of our local network. As we can have virtual machine on cloud that to when required. It act as a Virtual Private Network (VPN) which can be set by the admin and we can connect to this network using a VPN gateway device.

Connect: If we do not want to create a VPN and simply need to connect with the clod platform in this case there is option to use Azure as direct connect. In this case we will establish a secure connection to Azure provided they are windows machine. It just requires to install the connect software in the developer machine.

Traffic manager: In scenario where the user of the application are scattered around the world and the application need to connect to the data center that is nearest to machine to overcome the response time, but if that data center is overloaded and you have to route the request to some other data center in this case the Azure Traffic manager is used. Here certain rules are defined by the developer for the routing. Azure then evaluate these rules to map the traffic.

SQL Reporting: this is the important business activity to have reports based on the data stored in the data center data base. Azure has the option to provide reports using the SQL reporting. we can create the reports for the application running on the Azure platform. Reports can be created in various data formats for example PDF, CML and Excel etc.

Hadoop: Hadoop is a dominant technology in the market to handle large amount of data that is not easily handled by the traditional RDBM, due to its size or the type of data. E.g. the server logs for and old system Hadoop is an Apache open source which stores the data in Hadoop Distributed File System (HDFS) to store data. A developer can create a mapReduce job to analyze data. The data in HDFS can be stored in distributed/ multiple servers. The mapReduce job can be run on each server to do the processing parallel.

Queues: the interaction between the codes on Azure is done by 2 ways the simple one is Queue, Queue is a simple data structure of the FIFO format, where the sender puts his message and the same can be read the receiver. After putting the message in queue the sender can perform another job by making the transfer asynchronously.

Service Bus:  this is another way of communication in Azure between the applications. The service buses internally use a Queue to handle the Request. This Queue’s are not similar to the earlier Queue but based in a Published and Subscribe mechanism. Here is the same message can be subscribed by multiple clients thus there will be One 2 Many relations. The service buses offer the communication between the applications that are also running out of the Cloud platform.

Caching:- Caching is the mechanisms to improve the performance by reducing the time to load the similar data again and again. Azure too support this Caching where the frequent accessed data weather it is a Database,  a Table or a Blob data. A VM can store the data in their memory for caching. Using the configuration and application setting the developer can also store the session data in Azure cache.

CDN:- CDN stands for Content delivery network, it is Quite useful when there is a large number of users accessing the similar data, in this case the caching will not work.  For example Software updates. CDN has multiple sites across the world which holds or store the information geographically for content or BLOB access by a user. Thus if the similar request arise the same can be routed to CDN for the faster access.

Identity: Microsoft Windows Azure Active Directory is the service which handles the identity in the cloud platform, that is who is the user and how the system will interact with this user. It is similar to the directory service where the user information and their organization information are stored which is called Identity. There is an API given to access the information from directory which is called Windows Azure Active Directory Graph which can give you the information about the user. To handles information about the user from outside the world like Twitter and Face book there is a separate service which is called  Windows Azure Active Directory Access Control, it simply convert the information in a common format that can be used in Azure platform as well.

High performance Computing: A better way to use the Cloud computing is to execute the application parallel, where the request can be processed or executed in multiple VM same time, this will increase the performance. For doing so we required some sort of scheduler, in Azure this can be done using HPC Scheduler.

Media: Azure can support a rich media content write from HD Audio, HD Video to other high definition content.

Commerce: Windows Azure Marketplace. The Windows Azure Marketplace is a global online market for SaaS applications and premium datasets. By listing your Windows Azure-based applications on the marketplace, you can commerce-enable and sell your applications internationally. Plus, you can subscribe to a range of premium datasets listed in the marketplace within your applications or monetize and distribute your own datasets through the marketplace.

SDK: Azure provides the SDK for various languages for the developer across the stream to build application that can run on the Windows Azure Cloud platform. The SDK available are for .NET, PHP, PYTHON and Java. These can be downloadable from Microsoft site.
 For more details on Azure you can log in to the official Azure site. I have searched a lot of sites for compiling this content in easy language, so that the concept will become much more easier than it looks. Please provide your valuable comments on the article so that I can improve myself and create some more better articles on the same. Thanks You..

Anil Kumar Pandey
Microsoft MVP, Microsoft MCC,DNS MVM