Free Trial *Internet Service Required
221 out of 363 rated this helpful - Rate this topic

Windows Azure Platform

Updated: February 7, 2012

You can learn more about Windows Azure by reviewing the information in the following sections:

The Windows Azure Developer Center provides tutorials, downloads, and how-to guides that will help you get started with the Windows Azure platform overall and with individual features. Choose the dev center that matches with your desired programming language and get started today!

  1. .NET Developer Center

  2. Java Developer Center

  3. Node.js Developer Center

  4. PHP Developer Center

Before you learn about what the Windows Azure platform is, you should be aware of how —as a developer— you can benefit from Windows Azure.

  • Spend more time coding, less time managing hardware. The Windows Azure platform provides the machines, rack space, switches, and connectivity. In contrast to the traditional on-premise development model, you now spend less time managing the hardware of your infrastructure. Using the Windows Azure platform, you have more time to spend developing applications

  • Spend more time coding, less time deploying applications. The platform automates the processes of deploying and configuring applications. You can deploy directly from Visual Studio, from a command-line, or from the Windows Azure Management Portal. In contrast to the traditional on-premise development model, you do not need to remote into machines, FTP files, or synchronize your application across machines. Again, you have more time to spend developing applications.

  • Isolate your work from others. When you deploy an application to the Windows Azure platform, your application is isolated from other applications that you developed. It is also isolated from other organizations.

  • Scale your applications up and down. Most applications must handle lots of users and variable traffic peaks. For social networking applications, the need to scale up and down is critical. However, the traditional on-premise development model does not support the ability to scale up and down with ease. In contrast, the Windows Azure platform was specifically built to handle variable loads. You can quickly and easily add instances or your application or remove instances—without buying, deploying, managing, or removing hardware.

  • Ensure your application is always available. In the traditional on-premise development model, your application would typically need to be taken offline for upgrades, OS patches, hardware upgrades, etc. In contrast, The Windows Azure programming model is designed to let applications be continuously available, even in the face of software upgrades and hardware.

Windows Azure is an Internet-scale computing and services platform hosted in Microsoft data centers. The Windows Azure platform includes the foundation layer of Windows Azure as well as a set of developer services which can be used individually or together. The following illustration shows the products and components that are part of the Windows Azure platform.

Windows Azure Top Level Feature to Capability View

The following table describes the products and components that make up the Windows Azure platform.

 

Component Purpose For More Information

Local Development Environment

The Windows Azure SDKs for .NET, Node.js, Java, and PHP provide common tools and resources that you use to package, test and deploy your application.

The Windows Azure SDK for .NET includes the Windows Azure Tools for Microsoft Visual Studio, which extends Visual Studio to enable the creation, building, debugging, running and packaging of scalable web applications and services on Windows Azure.

Windows Azure Compute

Provides web roles, worker roles, and VM roles. A Windows Azure application must define one or more role types.

  • Web role – A web role runs in a virtual machine and is customized for web application programming. It supports IIS 7 and ASP.NET.

  • Worker role – A worker role runs in a virtual machine and is useful for generalized development. Use it to perform background processing for a web role.

  • VM role – A VM role enables you to define the configuration and updates of the operating system for the virtual machine. While a web role and a worker role run in a virtual machine, the VM role is the virtual machine, which gives you full control of operations.

Windows Azure Storage

The Windows Azure storage services provide storage for binary and text data, messages, and structured data in Windows Azure.

Microsoft SQL Azure

Microsoft SQL Azure offers a relational database service. Using SQL Azure, you can easily provision and deploy relational database solutions. Benefits include manageability, high availability, scalability, a familiar development model, and a relational data model.

Windows Azure Connect

With Windows Azure Connect, you can use a simple user interface to configure IPsec protected connections between computers or virtual machines (VMs) in the network of your organization, and role instances running in Windows Azure.

Windows Azure Service Bus

The Windows Azure Service Bus provides a hosted, secure, and widely available infrastructure for widespread communication, large-scale event distribution, naming, and service publishing. Service Bus provides connectivity options for Windows Communication Foundation (WCF) and other service endpoints, which includes REST endpoints.

Windows Azure Access Control

Windows Azure Access Control Service (ACS) is a cloud-based service that provides an easy way of authenticating and authorizing users to gain access to your web applications and services while allowing the features of authentication and authorization to be factored out of your code.

Windows Azure Content Delivery Network

The Windows Azure Content Delivery Network (CDN) caches Windows Azure blobs and the static content output of compute instances at strategically placed locations to provide maximum bandwidth for delivering content to users.

Windows Azure Caching

Windows Azure Caching enables you to easily provision a cache in the cloud to be used from any applications or services that could benefit from caching. This includes a very common scenario of session state and output caching in ASP.NET. Caching increases performance by temporarily storing information from other backend sources.

Windows Azure Marketplace

The Windows Azure Marketplace is a global online market that enables developers and information workers to easily discover, purchase, and manage finished SaaS applications and premium data subscriptions on Windows Azure.

Windows Azure Management Portal

The Windows Azure Management Portal provides access to hosted service deployment and management tasks as well as at-a-glance status information that lets you know the overall health of your deployments and accounts. The Management Portal organizes the components of your Windows Azure deployments with constantly refreshed information that is easy to discover and understand.

noteNote
The Windows Azure Platform expands on a regular basis. Refer to http://www.windowsazure.com for information about new services as they become available.

You might be wondering how to develop applications on the Windows Azure platform in contrast to how you have developed applications in the past. To help you understand the differences, you can start with what does not change.

How you develop applications on the Windows Azure platform is similar to how you develop on-premise applications:

  • Similar tools. You can still develop applications using Visual Studio or Java.

  • Similar languages. ASP.NET is the most commonly used development language for Windows Azure applications. The Windows Azure platform provides broad support for ASP.NET.

  • IIS support. Windows Azure provides full support for IIS.

The Windows Azure platform assumes that every application models the programming guidelines identified below. To reap the most benefits of the Windows Azure platform, you should architect your application to behave in accordance with these guidelines.

 

Windows Azure Programming Model Guideline Development Considerations

A Windows Azure application is built from one or more roles.

Include a Windows Azure web role, worker role, or VM role in your application. To learn about using roles in a Windows Azure application: http://msdn.microsoft.com/en-us/library/windowsazure/gg433030.aspx

A Windows Azure application runs multiple instances of each role.

Configure your application to use multiple instances of each role. To learn about configuring roles: http://msdn.microsoft.com/en-us/library/windowsazure/ee871996.aspx

A Windows Azure application behaves correctly when any role instance fails.

Build redundancy into the application at each level. To learn about building a scalable application for Windows Azure: http://msdn.microsoft.com/en-us/library/windowsazure/ff966483.aspx

Develop applications to be stateless. To learn about maintaining state using client-side cookies or session servers: http://msdn.microsoft.com/en-us/library/windowsazure/ff966485.aspx

After you develop and test your Windows Azure application by using the local resources, you deploy and test it in a staging environment. Understanding the manner in which Windows Azure hosted services are billed is crucial to testing and deploying your application in a cost effective manner. For more information about pricing for the Windows Azure platform, see Windows Azure Pricing Calculator.

To deploy your application as a hosted service on Windows Azure you must have a subscription. Your subscription is tied to a Microsoft Live ID account. To create a subscription you must provide a credit card that the billing will be charged to on a monthly basis. In some cases, you may be able to receive billing by invoice.

The first thing to remember is that if your hosted service is deployed, you are being billed. Whether your hosted service is in the staging or production environments, whether it is running or suspended, you will be billed for it. The reason for this is that as long as the service is deployed, it is occupying a VM. As long as you have that VM reserved, it cannot be used to by another customer.

Windows Azure is billed on utilization:

  • Compute Instances

  • Storage

  • Storage Transactions

  • Content Delivery Network transfers

  • Data Transfers out of the datacenter

  • SQL Azure database

  • Access Control transactions

A compute instance represents a virtual machine. Compute instances come in five sizes: Extra Small, Small, Medium, Large, and Extra Large. For information on the current offers, see Windows Azure Purchase Options. For MSDN subscribers, additional offers are provided. For more information, see Windows Azure Platform Benefits for MSDN Subscribers.

noteNote
The MSDN subscriber compute hours offer cannot be used towards extra small instances.

The following table describes each of the available options for VM size for web and worker roles:

 

VM Size CPU Cores Memory Disk Space for Local Storage Resources Allocated Bandwidth (Peak Mbps)

ExtraSmall

Shared

768 MB

20 GB

5

Small

1

1.75 GB

225 GB (165 GB for VM role)

100

Medium

2

3.5 GB

490 GB (340 GB for VM role)

200

Large

4

7 GB

1000 GB (850 GB for VM role)

400

ExtraLarge

8

14 GB

2040 GB (1890 GB for VM role)

800

noteNote
For the VM role, disk space for local storage resources is smaller than for a web role or worker role because the operating system requires more disk space.

When you deploy a hosted service, either to the staging or production environments, you begin incurring charges. You are billed on a per hour basis with any part of an hour being billed as a full hour. The Extra Small compute instance provides a less expensive alternative for testing and very small tasks. For more information about pricing, see the Windows Azure Pricing Calculator.

Compute hours are billed based on the number of clock hours that your hosted service was deployed multiplied by the number of equivalent Small compute instances included in your deployment. Partial compute instance hours (prior to conversion) are billed as full compute hours for each clock hour an instance is deployed. For example, if you deploy a Small compute instance at 10:50 AM and delete the deployment at 11:10 AM, you will be billed for two Small compute hours, one hour for usage during 10:50 AM to 11:00 AM and another hour for usage during 11:00 AM to 11:10 AM. For other compute instance sizes you deploy, your hours will be converted into the equivalent Small instance hours by multiplying by 2, 4 or 8, depending on the compute instance size deployed. In addition, each time you delete your deployment and redeploy your service, you will be billed a minimum of one clock hour for each compute instance deployed. However, any instances deployed for less than five minutes within one clock hour will not be charged. For assistance in calculating the cost of running a hosted service, see the Windows Azure Pricing Calculator.

If you deploy a hosted service that has a worker role component and web role component, you will need to create two compute instances and you will be billed for each of them. Another consideration is that, in order to receive the SLA uptime guarantee, you must deploy a minimum of two instances for each role.

Windows Azure Storage services are based on a consumption model. If you use storage, either Windows Azure Storage or SQL Azure, you will incur costs that you need to take into account.

When using Windows Azure Blobs, Tables and Queues storage costs can consist of:

  • Bandwidth – This is the amount of data transferred in and out of the location hosting the storage account. Since applications need to compute over their stored data, we allow hosted services to be co-located with their storage. This allows us to provide free bandwidth between computation and storage that are co-located, and only charge bandwidth for storage when accessed from outside the location it is stored in.

  • Transactions – This is the number of requests performed against your storage account. Each individual Blob, Table and Queue REST request to the storage service is considered as a potential transaction for billing. Applications can then control their transaction costs by controlling how often and how many requests they send to the storage service. We analyze each request received and then classify it as billable or not billable based upon our ability to process the request and the outcome of the request.

  • Storage Capacity – This is the amount of data being stored persistently. The size of the objects stored (blobs, entities and messages) as well as their application and system metadata are calculated in order to measure the storage capacity for billing.

Content Delivery Network (CDN) transfers

Windows Azure CDN caches your Windows Azure blobs to provide maximum bandwidth for delivering your content to users. You can enable CDN delivery for any storage account via the Management Portal. The benefit of using a CDN is better performance and user experience for users who are farther from the source of the content stored in the Windows Azure Blob service.

Data Transfers in and out of the datacenter

ImportantImportant
For billing periods that begin on or after July 1, 2011, all in bound data transfers for both peak and off-peak times will be free.

Data transfer in and out of the datacenter is the traffic between the external user and your application.  For example, web traffic between the user's browser and your web site.

For more information on estimating costs for Windows Azure Storage, see the Windows Azure Team Blog entry Understanding Windows Azure Storage Billing – Bandwidth, Transactions, and Capacity.

Access Control transactions

Service Bus and Access Control enable you to integrate Windows Azure hosted services with on-premises systems. Service Bus enables loosely-coupled connectivity between services and applications across firewall or network boundaries, using a variety of communication patterns. Access Control Service provides federated, claims-based access control for REST web services. You can use these services to build distributed or composite applications and services.

SQL Azure Storage

SQL Azure storage allows you to allocate databases up to 150 GB in size.

For information about Windows Azure Storage billing rates, see the Windows Azure Pricing Calculator.

For a sample calculation of costs, see Windows Azure Architecture Guidance, Part 1: Moving Applications to the Cloud: How Much Will It Cost?.

See Also

Did you find this helpful?
(1500 characters remaining)
Community Additions ADD
Correction about the SQL Azure Database size... (December 2011)
In spite of the article has been modified in December 2011, at the end of the article in SQL Azure should say  $0$0 $0
$0SQL Azure Storage$0 $0 $0$0 $0 $0 $0SQL Azure storage allows you to allocate databases up to 150 GB in size$0 $0
$0 $0As it was modified and available since then from the Windows Azure Platform Management Portal$0 $0
5/2/2012
facebook page visit twitter rss feed newsletter