Decision Maker
What Enterprises Need To Know About Windows Azure
From its scaling capabilities to its close integration with PowerShell, here are a few things to consider before making the move to Microsoft's cloud.
I recently had an opportunity to investigate Microsoft Windows Azure cloud services for PowerShell.org, which I help run, and discovered some difficult-to-find details. If your business is considering moving servers or services to Windows Azure, here are some serious factors you might want to consider.
First, I examined both the Infrastructure as a Service (IaaS) and Web site Windows Azure models. The former lets you run your own VMs in the cloud, complete with multiple VHDs and even private virtual networks (VPNs) you can connect to your own network via VPN. The latter just runs a Web site, not unlike common shared hosting plans.
Both charge you based on run time, although with a VM you're probably looking at 24x7 run time. The pricing calculators provide a per-month rollup price. You also pay for storage. In the case of IaaS, you're paying only for the used portions of your VHDs. For example, a 100GB VHD with 1GB of data on it will cost you about $3 per month because you're just paying for that 1GB of used space.
You also pay for outbound bandwidth. Inbound bandwidth, such as uploading content, is always free. Some of those pricing facts aren't made clear in the VM pricing calculator. For example, you're not really told that VHD storage incurs an extra fee, nor does it mention you only pay for used space, not allocated space. I do wish the VM calculator offered a storage slider, given you can't have a VM without at least some storage.
PowerShell.org is currently running on a LAMP stack, which Microsoft is now delighted to run on Windows Azure. Microsoft has VM templates for various versions of Ubuntu, CentOS and a couple of other Linux variants. All come complete with Microsoft VM extensions for Linux so the VM can be better managed by the host. Redmond would certainly rather have everyone using Windows Server, but offering the option was a brilliant business move.
A neat thing about Windows Azure is its almost-instant scale-up capability. See how we used it at PowerSell.org, where we created a load test using LoadImpact.com. Then we ran it against a Windows Azure-based site several times. Each time, we upped the size of the VM instance, so we could see the performance difference with each VM size and judge the appropriate size for our needs. Since each successive VM size costs roughly double the previous tier, it's important to "right-size" the instances, something a load test can make easy.
Power Up Windows Azure
Windows Azure is also eminently manageable via Windows PowerShell. You can write scripts that run from your environment to manage your cloud environment. Take VM snapshots, roll back snapshots and so forth, just by clicking a button that you create. It gives you a lot of potentially valuable scenarios. The fellow I spoke with on the Windows Azure team wrote a script that lets developers roll snapshots back and forth for a Windows Azure-based test environment.
That's something you could do with your own on-premises Hyper-V infrastructure. Running it in the cloud, however, removes some load from your infrastructure. You can also take advantage of the ability to download Windows Azure VHDs to your own system, and upload your images. That makes it easier to move VMs back and forth for testing, piloting, development or even as a fault-tolerance tactic.
It looks like the use of Windows Azure by PowerShell.org will cost $305 a month. That gets us two right-sized VM instances running CentOS, all the storage we need and enough bandwidth to cover our peak traffic times (plus some padding). That's slightly less expensive than equivalent, dedicated collocated servers. We also get the redundancy of Windows Azure for free.
With dedicated servers, we'd just be offline. It's important to note that coming up with a pricing estimate requires you to have some statistics about your current usage, bandwidth perhaps being the most difficult to estimate. We relied on bandwidth utilization reports from our existing shared-hosting plan, and on Google Analytics to judge our peak times and concurrent connection count.
While Windows Azure isn't the right tool for every job, it does offer an important tool for the right jobs. As decision makers, it's up to us to identify those situations and take appropriate action.
About the Author
Don Jones is a multiple-year recipient of Microsoft’s MVP Award, and is an Author Evangelist for video training company Pluralsight. He’s the President of PowerShell.org, and specializes in the Microsoft business technology platform. Follow Don on Twitter at @ConcentratedDon.