With Windows Azure’s commercial availability starting from Feb. 1st, I want to provide a quick introduction to Windows Azure Platform. This article will be followed by many more articles that will drill down into the concepts of the Windows Azure Platform.
At a high level, Windows Azure Platform has 4 key services in it. The first one is Windows Azure which is the Cloud OS from Microsoft. The second service is the AppFabric which enables the integration of on-premise services with the Cloud. The third service is a Database on the Cloud called SQL Azure which is based on Microsoft SQL Server. The latest edition to the platform is a service Codenamed “Dallas” which is a marketplace to publish, discover, consume and analyze premier content.

Though Windows Azure Platform is designed for the developers building applications on the Microsoft platform, this can also be leveraged by developers building applications on Java and PHP environments. Microsoft is investing in the right set of tools and plug-ins for Eclipse and other popular developer environments.
I will first explain each of the components of Windows Azure Platform and then walk you through the scenarios for deploying applications on this platform.
Windows Azure
Windows Azure is the heart & soul of the Azure Platform. It is the OS that runs on each and every server running in the data centers across multiple geographic locations. It is interesting to note that Windows Azure OS is not available as a retail OS. It is a homegrown version exclusively designed to power Microsoft’s Cloud infrastructure. Windows Azure abstracts the underlying hardware and brings an illusion that it is just one instance of OS. Because this OS runs across multiple physical servers, there is a layer on the top that coordinates the execution of processes. This layer is called the Fabric. In between the Fabric and the Windows Azure OS, there are hundreds of Virtual Machines (VM) that actually run the code and the applications. As a developer, you will only see two services at the top of this stack. They are 1) Compute and, 2) Storage.
You interact with the Compute service when you deploy your applications on Windows Azure. Applications are expected to run within one of the two roles called Web Role or Worker Role. Web Role is meant to host typical ASP.NET web applications or any other CGI web applications. Worker Role is to host long running processes that do not have any UI. Think of the Web Role as an IIS container and the Worker Role as the Windows Services container. Web Role and Worker Role can talk to each other in multiple ways. The Web Role can also host WCF Services that expose a HTTP endpoint. The code within Worker Role will run independent of the Web Role. Through the Worker Role, you can port either .NET applications or native COM applications to Windows Azure.
When you run an application, you definitely need storage to either store the simple configuration data or more complex binary data. Windows Azure Storage comes in three flavors. 1) Blobs, 2) Tables and, 3) Queues.
Blobs can store large binary objects like media files, documents and even serialized objects. Table offers flexible name/value based storage. Finally, Queues are used to deliver reliable messages between applications. Queues are the best mechanism to communicate between Web Role and Worker Role. The data stored in Azure Storage can be accessed through HTTP and REST calls.
So, we just discussed that Windows Azure offers a Compute and Storage service. Compute service is consumed by deploying a Web Application in a Web Role and long running process in the Worker Role. Storage can be consumed through Blobs, Tables and Queues.
AppFabric
Windows Azure platform AppFabric was earlier called the .NET Services. This service enables seamless integration of services that run within an organization behind a firewall with those services that are hosted on the Cloud. It forms a secure bridge between the legacy applications and the Cloud services. AppFabric also brings the federated identity to the Cloud based applications. The two key components of AppFabric are 1) Service Bus and, 2) Access Control.
Service Bus provides a secure connectivity between on-premise and Cloud services. It can be used to register, discover and consume services irrespective of their location. Services hosted behind firewalls and NAT can be registered with the Service Bus and these services can be then invoked by the Cloud Services. The Service Bus abstracts the physical location of the Service by providing a URI that can be invoked by any potential consumer.
Access Control is a mechanism to secure your Cloud services and applications. It provides a declarative way of defining rules and claims through which callers can gain access to Cloud services. Access Control rules can be easily and flexibly configured to cover a variety of security needs and different identity-management infrastructures. Access Control enables enterprises to integrate their on-premise security mechanisms like Active Directory with the Cloud based authentication. Developers can program Access Control through simple WCF based services.
SQL Azure
SQL Azure is Microsoft SQL Server on the Cloud. Unlike Azure Storage, which is meant for unstructured data, SQL Azure is a full blown relational database engine. It is based on the same DB engine of MS SQL Server and can be queried with T-SQL. Because of it’s fidelity with MS SQL, on-premise applications can quickly start consuming this service. Developers can talk to SQL Azure using ADO.NET or ODBC API. PHP developers can consume this through native PHP API. Through the Microsoft SQL Azure Data Sync, data can be easily synchronized between on-premise SQL Server and SQL Azure. This is a very powerful feature to build hubs of data on the Cloud that always stay in sync with your local databases. For all practical purposes, SQL Azure can be treated exactly like a DB server running in your data center without the overhead of maintaining and managing it by your teams. Because Microsoft is responsible for installation, maintenance and availability of the DB service, business can only focus on manipulating and accessing data as a service. With the Pay-as-you-go approach, there is no upfront investment and you will only pay for what you use.
Microsoft Codenamed “Dallas”
This service is an exchange setup by Microsoft for parties that can publish useful data/content and parties that can consume this data in their applications. For example, Public Sector can publish interesting and useful census data and some company in the healthcare business might be just looking for this data. This company can search and discover the census dataset and pay for what they consume. Data can be published in a variety of forms including BLOBS, CSV files, Spreadsheets and RSS feeds. The dataset published on Dallas can be consumed directly through tools like Microsoft Excel or can be integrated into custom applications by calling the REST based API. So, this turns into a marketplace of data publishers and data consumers. Through an add-in for Excel 2010 called PowerPivot (previously known as Project “Gemini”), end users can directly consume the data in Microsoft Excel.
To summarize what we just discussed, Windows Azure Platform Services consist of Windows Azure, AppFabric, SQL Azure and a project Codenamed “Dallas”.

Let’s take a look at the scenarios for Microsoft Windows Azure Platform
Scalable Web Application
Because Windows Azure Platform is based on the familiar .NET platform, ASP.NET developers can design and develop web applications on fairly inexpensive machines and then deploy them on Azure. This will empower the developers to instantly scale their web apps without worrying about the cost and the complexity of infrastructure needs. Even PHP developers can enjoy the benefits of elasticity and pay-by-use attributes of the platform.
Compute Intensive Application
Windows Azure Platform can be used to run process intensive applications that occasionally need high end computing resources. By leveraging the Worker Role, developers can move code that can run across multiple instances in parallel. The data generated by either Web Role or On-Premise applications can be fed to the Worker Roles through Azure Storage.
Centralized Data Access
When data has to be made accessible to a variety of applications running across the browser, desktop and mobile, it makes sense to store that in a central location. Azure Cloud based storage can be great solution for persisting and maintaining data that can be easily consumed by desktop applications, Silverlight, Flash and AJAX based web applications or mobile applications. With the Pay-as-you-grow model, there is no upfront investment and you will only pay for what you use.
Hybrid Applications (Cloud + On-Premise)
There may be a requirement for extending a part of an application to the Cloud or building a Cloud façade for an existing application. By utilizing the AppFabric services like Service Bus and Access Control, on-premise applications can be seamlessly and securely extended to the Cloud. AppFabric can enable the Hybrid Cloud scenario.
Cloud Based Data Hub
Through SQL Azure, companies can securely build data hubs that will be open to trading partners and mobile employees. For example, the Inventory of a manufacturing company can be securely hosted on the Cloud which is always in sync with the local inventory database. The Cloud based DB will be opened up for B2B partners to directly query and place orders. SQL Azure and the SQL Azure Data Sync will enable interesting scenarios.
Hope you found this article useful!








As a Cloud Computing Strategist, Janakiram MSV helps businesses understand and adopt the Cloud Computing paradigm. His core strength is designing and architecting solutions for the Cloud. Janakiram focuses on industry's leading Cloud Computing offerings including Microsoft Windows Azure.











