Microsoft Research Reports

In-depth reports designed to help you quickly understand the technical underpinnings and strategic implications of new Microsoft enterprise technologies. Our research will save you time by putting all the critical details you need to evaluate Microsoft’s infrastructure products at your fingertips.

Evaluating the Windows Azure Platform
Monday, 14 February 2011

INTRODUCTION

This report is designed for organizations and development teams who want to understand the components and capabilities of the Windows Azure platform. It includes detailed explanations of: Windows Azure Application Hosting & Storage; SQL Azure Database;  Azure AppFabric ; and the Azure Content Delivery Network. The report also provides an overview of Azure pricing and Service Level Agreements (SLAs).

The Windows Azure platform, a cloud-based application hosting environment, could provide scalability, manageability, and geographic distribution advantages while cutting costs, but application code may need to be rewritten.

The Windows Azure platform is Microsoft’s cloud-based application hosting environment which became commercially available in Feb. 2010. The platform, which now runs more than 20,000 customer applications, is comprised of a hosted operating system, relational database, and other supporting services that help developers deploy, connect, and secure Internet-based applications, while potentially leveraging other applications hosted on-premises. Azure is primarily a Platform as a Service (PaaS) offering which could provide scalability, manageability, and geographic distribution advantages while cutting costs over deployments hosted on-premises or elsewhere. However, to fully realize Azure’s potential, planning is important and application code may need to be rewritten.

Platform as a Service Offers New Opportunities

Azure’s approach to hosted computing, with a couple of exceptions, is a PaaS architecture, which could help organizations and ISVs in several ways, especially when they design their applications to take advantage of the architecture. In a PaaS offering, a cloud vendor rents out the use of computer resources and takes responsibility for managing not only the hardware, but also the operating system and platform software running on the computers; for example, the vendor installs software patches such as those that eliminate security vulnerabilities, as they become available. Customers are responsible for deploying and managing their applications on the computers (such as organizational line-of-business software or services offered by ISVs). PaaS architecture should be compared and contrasted with Infrastructure as a Service (IaaS) architecture.

IaaS hosted offerings such as Amazon Web Services provide customers with the ability to run virtual machines (VMs), or in some cases dedicated hardware, in the hosting vendor’s data centers. The customer prepares and maintains complete VMs including their operating systems and any applications that run on them. For example, a customer deploying a Web application would deploy several VMs, each with its own operating system (such as Windows Server or Linux), a Web server (such as Apache or IIS) and typically a database server (such as SQL Server or MySQL), as well as the customer’s application code. Customers have full control over these VMs and usually can deploy their applications to them as they would deploy applications to an on-premises environment. However, the customer must install, configure, patch, and maintain all the software on each VM.

Benefits of IaaS include savings on hardware purchases, reduced staff requirements, on-demand scalability offered by the hosting center, and a high level of compatibility with on-premises environments. Disadvantages include the customer’s responsibility to configure, patch, and maintain VM operating systems and platform software (such as Web servers and database servers), limited granularity of scaling up and down (for example, if a server is at capacity and one more user connects, an entire additional VM may need to be brought online and paid for), and few or no new opportunities to focus on and improve on application design over what is possible on-premises.

PaaS offers the IaaS benefits of reduced cost and increased scalability, but adds others such as elimination of the customer’s need to configure, patch, and maintain OS and platform software; minimal provisioning times; highly granular scalability (for example, adding capacity to a Windows Azure application can be much less difficult and less costly than adding a VM in an IaaS hosting environment), and new opportunities to improve on the development and execution of business logic by leveraging the componentized services offered by a PaaS such as Azure (for example, Azure’s AppFabric Access Control service can reduce the burden on developers to include security infrastructure code in applications). However, customers generally cannot run existing on-premises applications on a PaaS platform such as Azure without some rewriting of existing code, both to make applications compatible and to take full advantage of the scalability and services offered by a PaaS system.

The benefits of PaaS architecture could allow Azure to introduce new software solution opportunities for organizations and ISVs. For example, quick provisioning times and granular usage fees may allow organizations to try out new applications while reducing the risk of up front investments. Azure’s scalability could allow organizations to offer compute-intensive services (such as Pixar’s graphics rendering solution which has been demonstrated running on Azure) to a wide audience. Also, the ability to quickly scale up and down could make it easy for ISVs to add or remove customers from their service offerings, while paying only for the capacity that is needed.

Azure’s Core Components

The major components of the Windows Azure platform are the following:

·         The Windows Azure service, which hosts applications and stores application data

·         The SQL Azure Database service, which hosts relational databases using Microsoft's SQL Server technology

·         The AppFabric Access Control service, which allows applications to rely on multiple security identity systems for user authentication and authorization with minimal developer overhead

·         The AppFabric Service Bus, which enables disconnected application components to exchange messages through organizational boundaries and across the Internet.

Windows Azure

The centerpiece of the Windows Azure platform is the Windows Azure service, which provides a hosted Windows Server-based OS in Microsoft data centers where customers can deploy applications and their associated data. Windows Azure enables utility computing, charging only for the hosted resources customers use, potentially reducing costs over traditional on-premises deployments. The service promises fast provisioning, high scalability, and fault tolerance for applications based on Microsoft’s .NET Framework and other technologies, including PHP and Java. Developers can use familiar tools such as Visual Studio or Eclipse-based development environments to create Azure applications.

Applications written for Windows Azure are divided into components known as Web roles and worker roles. Web roles primarily contain code that provides user interfaces or Web service interfaces through HTTP and HTTPS connections outside the data center. Worker roles are intended to perform tasks such as calculations or data manipulation after all required user input has been obtained by Web roles.

To maximize potential scalability, developers should design applications that will be deployed on the Windows Azure service to take advantage of its role architecture, such that additional role instances will allow the distribution of work. If an application contains inefficient algorithms that cause bottlenecks, additional instances will not necessarily increase its performance. This design problem is similar to optimizing for performance on parallel hardware. Applications that are designed to best use the Windows Azure service’s role architecture could realize the extremely high scalability offered by Azure. Additionally, the role instance model offers high availability in that it can be used to guarantee instances that are available regardless of an application’s workload or hardware or software faults.

SQL Azure Database

SQL Azure Database provides a cloud-based relational database service hosted in Microsoft’s data centers. SQL Azure offers many of the features of the on-premises SQL Server product, including support for the T-SQL query language, which will help organizations leverage existing developer skills when migrating on-premises applications to the cloud or creating hybrid applications that are deployed in both places.

SQL Azure could help customers realize several benefits of cloud-computing, such as time and cost savings and simplified scalability, although SQL Azure does not yet support all the features of the on-premises SQL Server product.

Azure AppFabric

Windows Azure AppFabric provides cloud-based services to federate application security systems and connect users and applications across the Internet. Azure AppFabric’s Access Control service enables applications to check user’s identities and control their access to application data, while relieving developers from writing custom authentication code and lets them rely on existing identity providers such as Active Directory or Windows LiveID. Azure AppFabric’s Service Bus relays application communication across organizational boundaries, potentially reducing risky firewall configuration requirements. The services can help connect customer- and partner-facing applications, such as extranets, to on-premises systems and could also benefit applications on external hosting platforms such as Windows Azure.

Azure AppFabric Access Control could save developers time when creating new applications and modifying existing ones. However, some of this effort will be shifted to creating and maintaining application configurations in Access Control. The AppFabric Service Bus can simplify connecting on-premises systems to external users and externally hosted applications, including applications running on Windows Azure. It can also improve the security of such connections.

Application Scenarios

Many early solutions deployed on Azure focus on Internet-accessible applications and situations where application traffic peaks at certain times of the year or month, and the cost of permanent on-premises hardware can be avoided by using Azure resources during the peaks. Others with compute-intensive requirements have been deployed on Azure to save on permanent hardware costs.

Several data-centric application scenarios could benefit from SQL Azure as a database solution, such as Web applications with data storage requirements (for example, user profile, product catalog, or digital content storage); departmental applications within an organization that have moderate data needs but don’t warrant burdening a central IT department for deployment and maintenance; centralization of data used by external clients that connect via the Internet; and hosting of customer data by ISVs.

Azure AppFabric has helped customers expose internally stored content, connect disparate on-premises and cloud-based software, and communicate real time with utility providers to optimize equipment usage during off-peak times.

Solutions that are unlikely to be deployed on Azure in the near term include critical financial and health industry applications with high confidentiality requirements and compliance regulations that require data storage to be physically located at a particular site rather than at a central data center such as Microsoft’s. Applications with requirements for on-premises resources that aren’t available within Azure, such as Active Directory, are also poor candidates for deployment on Azure, although some of these scenarios may be supportable with hybrid applications using counterparts that run on-premises and on Azure.

Wave of Updates Coming in 2011

Several new features and enhancements to the Windows Azure platform were announced at the Professional Developers Conference (PDC) in Oct. 2010. Some of these updates are available now, others will arrive at different times throughout 2011, and some will become available as free Community Technology Previews (CTPs) or fee-based betas before their final releases.

Azure is updated on an ongoing basis to address customer requests and competitive offerings and to make it easier to move on-premises applications to Azure. The latest series of updates adds some IaaS elements to Azure, such as VM roles, which are similar to services offered by Amazon Web Services, although these offerings don’t change the primary PaaS focus of Azure since many new PaaS-type services are coming as well.

Some of the other additions bring the Azure environment closer to Microsoft’s on-premises product offerings, which could ease the transfer of existing applications into Azure, while other additions help customers connect applications deployed on Azure with applications deployed on-premises. Additionally the Windows Azure Marketplace beta is now online, offering a Web portal for free and paid exchange of Azure-related applications, tools, and services.

What’s Ahead

This report is designed for organizations and development teams who want to understand the components and capabilities of the Windows Azure platform. The report includes the following chapters:

Windows Azure Offers Application Hosting, Storage describes the Windows Azure service of the Azure platform, which offers a hosted OS and non-relational storage.

SQL Azure Brings SQL Server to the Cloud discusses SQL Azure Database, the hosted relational database server based on the on-premises SQL Server product.

Azure AppFabric Secures and Connects Applications covers the two primary services offered by Azure AppFabric: Access Control and Service Bus.

Azure CDN Speeds Content Delivery explains the Azure Content Delivery Network, which can reduce latency when delivering large content such as video files from Azure to users around the world.

Azure Updated, Futures Announced outlines the planned additions and enhancements to Azure that were announced at the Professional Developers Conference in Oct. 2010.

Azure Pricing Overview describes the pricing metrics, costs, and Service Level Agreements for the usage of Azure services.

Resources is a guide to additional information about the topics discussed in this report.

 

FREE Two-Month Guest Membership