The Windows Azure Platform is a Microsoft cloud platform used to build, host and scale web applications through Microsoft data centers. Windows Azure Platform is thus classified as platform as a service and forms part of Microsoft's cloud computing strategy, along with their software as a service offering, Microsoft Online Services. The platform consists of various on-demand services hosted in Microsoft data centers and commoditized through three product brands. These are Windows Azure (an operating system providing scalable compute and storage facilities), SQL Azure (a cloud-based, scale-out version of SQL Server) and Windows Azure AppFabric (a collection of services supporting applications both in the cloud and on premise). Operating system called Windows Azure serves as a runtime for the applications and provides a set of services that allows development, management and hosting of applications off-premises.
Windows Azure has three core components: Compute, Storage and Fabric.
As the names suggest, Compute provides a computation environment with Web Role, Worker Role, and VM Role while Storage focuses on providing scalable storage (Blobs, non-relational Tables, and Queues) for large-scale needs. Relational Database functionality is offered through SQL Azure, which is a scalable version of SQL Server that runs on the Azure platform.
Fabric (Windows Azure Fabric) makes up the physical underpinnings of the Windows Azure platform as the network of interconnected nodes consisting of servers, high-speed connections, and switches. Conceptually, the repetitive pattern of nodes and connections suggests a woven or fabric-like nature. Compute and Storage components are part of the Fabric.
Fabric resources and applications and services running on those resources are managed by the Windows Azure Fabric Controller service. It acts as the kernel of the Windows Azure distributed cloud operating system, providing scheduling, resource allocation, device management, and fault tolerance for the nodes in the Fabric. It also provides high-level application models for intelligently managing the complete application lifecycle, including deployment, health monitoring, upgrades, and de-activation.
The Windows Azure Platform provides an API built on REST, HTTP and XML that allows a developer to interact with the services provided by Windows Azure. Microsoft also provides a client-side managed class library which encapsulates the functions of interacting with the services. It also integrates with Microsoft Visual Studio so that it can be used as the IDE to develop and publish Azure-hosted applications. Windows Azure also offers Content Delivery (CDN) services as an option. The Azure CDN enables worldwide low-latency delivery of static content from Azure Storage to end users.
Figure showing Azure cloud Structure:
The Windows Azure platform uses a specialized operating system, called Windows Azure, to run its "fabric layer" — a cluster hosted at Microsoft's datacenters that manages computing and storage resources of the computers and provisions the resources (or a subset of them) to applications running on top of Windows Azure. Windows Azure has been described as a "cloud layer" on top of a number of Windows Server systems, which use Windows Server 2008 and a customized version of Hyper-V, known as the Windows Azure Hypervisor to provide virtualization of services.
The platform includes five services — Live Services, SQL Azure (formerly SQL Services), AppFabric (formerly .NET Services), SharePoint Services and Dynamics CRM Services — which the developers can use to build the applications that will run in the cloud. A client library, in managed code, and associated tools are also provided for developing cloud applications in Visual Studio. Scaling and reliability are controlled by the Windows Azure Fabric Controller so the services and environment do not crash if one of the servers crashes within the Microsoft datacenter and provides the management of the user's web application like memory resources and load balancing.
The Azure Services Platform can currently run .NET Framework applications compiled for the CLR, while supporting the ASP.NET application framework and associated deployment methods to deploy the applications onto the cloud platform. It can also support PHP websites. Two SDKs have been made available for interoperability with the Azure Services Platform: The Java SDK for AppFabric and the Ruby SDK for AppFabric. These enable Java and Ruby developers to integrate with AppFabric Internet services.
QL Azure is a cloud-based relational database that is an extension of Microsoft SQL Server. This multi-tenant, highly scalable database runs in the Azure cloud. This cloud-based database supports the same T-SQL version of SQL as existing SQL Server databases. In addition, SQL Azure offers standard relational database features such as triggers, views, stored procedures, and indexes.
SQL Azure uses a special version of Microsoft SQL Server as backend. It provides high availability by storing multiple copies of databases, elastic scale and rapid provisioning. It exposes a subset of the full SQL Server functionality, including only a subset of the data types — including string, numeric, date and Boolean. It uses an XML-based format for data transfer. As in the case of Microsoft SQL Server, SQL Azure uses T-SQL as the query language and Tabular Data Stream (TDS) as the protocol to access the service over internet. It does not provide a REST-based API to access the service over HTTP. Microsoft recommends using ADO.NET Data Services for this purpose.
Microsoft SQL Azure extends SQL Server capabilities to the cloud. SQL Azure offers a relational database service called Microsoft SQL Azure Database, and using SQL Azure Database, you can easily provision and deploy relational database solutions. Benefits include manageability, high availability, scalability, a familiar development model, and a relational data model.
SQL Azure Database is the relational database service on the Windows Azure platform.
Windows Azure AppFabric
Windows Azure AppFabric is the feature allows cloud users to hookup on-premises services to their cloud services, to secure cloud & on-premises services with new or existing security frameworks (identity based, active directory, or otherwise), cache Internet or other content, and on top of all that build out and enable composite application integration.
Windows Azure AppFabric can be seen as an entity that interconnects on-premises solutions to Windows Azure solutions, and even Windows Azure solution to other solutions within the cloud. Windows Azure AppFabric is broken down into two main features as the service bus and access control.
AppFabric Applications is any n-tier .NET application that spans the web, middle, and data tiers, composes with external services, and is inherently written to the cloud architecture for scale and availability. Applications that consume Windows Azure services like SQL Azure, AppFabric Caching, AppFabric Service Bus and Azure Storage are also included in this. This enables developers and ISVs to be able to leverage these technologies to build and manage scalable and highly available applications in the cloud. In addition, the goal is to help both developers and IT Pros, via the AppFabric Developer Tools and AppFabric Application Manager, respectively, to be able to manage the entire lifecycle of an application from coding and testing to deploying and managing.
Windows® Azure: A Cloud Computing Medium
Windows Azure platform can be used to develop new applications and improve the existing applications using Cloud-based technology. It allows developers to create solutions and applications in the Cloud with several programming languages. The key components of Windows Azure Services Platform include:-