When evaluating a public cloud provider, a key decision involves the “business usability” of the solution. In other words, how easy is it to select, purchase, and pay for services in the public cloud? This is a different area to consider, compared to the technical features of the cloud solution. An otherwise sound application, that leverages a public cloud in a technically elegant or efficient manner, can still turn sour due to unexpectedly high consumption costs, or by selecting the wrong sizes and capacities of hosted services. This article covers the user experience when purchasing, provisioning, and running a Virtual Machine (VM) role in the Windows Azure public cloud.

There is a lot to like about the Microsoft public cloud VM hosting implementation in Azure. The fact that you can upload your own Window Server 2008 R2 VHD image is appealing — some cloud providers only allow you to spin up VMs using VHD images they provide. The Azure mega-datacenters around the world are extremely robust and well-connected platforms to host anyone’s application. Customers can join Windows Azure VM role instances to an on-premises Active Directory domain using the “Windows Azure Connect” service.

The big downside to the Azure VM model is that persistent data storage is not available, so you need to (1) always deploy at least two instances of any VM role and (2) develop and support a process that configures a replacement VM with the volatile data it needs to do its job. If your server-based application can be deployed in Azure within these limitations, you need to buy the right-sized VM and the correct subscription terms for your business model.

Selecting the right Azure subscription offering

At the heart of your Azure purchasing experience are one or more Azure subscriptions. Everything in Azure account management revolves around your subscription(s). A subscription can be associated with any Azure service in any quantity, such as two Windows Azure core instances and one SQL Azure instance, all in the same subscription. A subscription is a sales vehicle for Azure services, usually linked to a credit card, and may be tied to a particular promotion or special offer.

As you scale out your Azure services, it’s easiest to just add new services to the same subscription. You might have several subscriptions because you got a better deal or a special promotion on the later ones. Be advised it’s not easy to move applications or share data between subscriptions. For example, in the case of VMs, uploaded Virtual Hard Drives (VHDs) can be shared among instances of a VM role in the same subscription, but not across separate subscriptions.

There are two main decisions to make when purchasing an Azure VM role: The compute instance size and the Azure product offering.

  • Select the size of the compute instance(s) you need. There are five classes of compute instance you can purchase, from extra-small to extra-large. Each instance has progressively more processor, memory, storage, I/O performance, and cost.
  • Decide what kind of Azure product offering is right for you. The most important decision is whether you will go with the “Pay-As-You-Go” model, or the “Subscription” model. In the subscription model, you commit to use a resource for 6 months and take advantage of price discounts of up to 20% off of the Pay-As-You-Go rate.
Figure A – Azure subscriptions are managed in the customer portal along with other Microsoft online services.

Once you have purchased your Azure subscription, you can view the status of the subscription in the Microsoft Online Services Customer Portal (Figure A). This is a common customer-facing portal for all Microsoft public cloud services, such as Windows InTune and Office 365. In this portal you can take actions like modify the billing address for a subscription or add quantities of roles to your Azure applications.

“Would you like to view your bill online?”

You won’t get any kind of paper billing statement from Windows Azure. Your credit card will be billed each month for your base subscription costs, overages to your subscription allowances, and “pay-as-you-go” charges. Since automatic electronic billing can fall into the out of sight/out of mind category, to avoid surprises you want to keep a firm handle on what you are paying for.

Microsoft will send you an email reminder (Figure B) when your use of metered cloud resources, such as compute hours, storage blobs, or network bandwidth exceeds 75% percent of the allowance for your Azure instances and offerings. If you are on a monthly subscription model with 750 compute-hours, you will expect to get this email around the fourth week of the month, after consuming 23 compute-days (562 compute-hours). This is a welcome feature of the service to avoid surprises.

Figure B – Email received when an Azure instance exceeds 75% of the monthly base units.

Viewing live Azure service consumption and billing data

An important feature for a public cloud provider to extend to customers is access to a live view of the allowance vs. consumption data. In the case of Windows Azure, you can view your exact Azure usage charges for past and current billing periods. Figure C shows billing details for a Windows Azure Compute instance and associated Windows Azure Storage.

Figure C – Reviewing live detailed billing information in the customer portal. (click to enlarge)