Many of my IT administrator friends fear the cloud because, among other reasons, they worry that hidden costs will lower their department’s total cost of ownership (TCO). In this article, I’ll show you four simple ways to ensure you get maximum “bang for your buck” with Microsoft Azure virtual machines (VMs).

For starters, know that Microsoft charges for VM usage per minute and not per hour. There was a time when cloud providers such as Google Cloud and Amazon Web Services charged per hour, which meant that a VM you ran for 61 minutes was charged for 2 hours of use. That’s not the case with Azure, I’m grateful to say.

Moreover, Microsoft allows you to set a monthly spending limit on your Azure account. That way, if you forget to turn off your VMs, your Azure account will get disabled before you run over your predefined monthly spending cap.

For dev/test environments, the spending limit makes sense. On the other hand, I would advise that you either not use the spending limit in production or set the value pretty high. After all, do you really want your public-facing services to go down completely?

At this point, I use Azure VMs only for development purposes. Therefore, I run my VMs when I need them, and I turn them off when I don’t. If you go “all in” with Azure and migrate some or all of your internal network services to Azure, you’re likely assuming to run your virtual machines 24/7.

Your first order of business after deciding (a) how many VMs you’re deploying, and (b) how many hours per month you’ll run them is to hit up the Azure Pricing Calculator to turn qualitative measurements into quantitative ones. I show you the Virtual Machines calculator interface in the following screen capture:

The Microsoft Azure pricing calculator

The following elements go into the pricing calculation:

Instance size (CPU cores, RAM, etc.)

OS/app type (Windows, Linux, Oracle, SQL Server)

Pricing tier (tied to instance size)

Number of VMs you need

Number of running hours (744 means always on)

Please understand that you’re paying for computing power and (depending on the instance type) a server license. In most cases, you’ll need to purchase additional licenses to cover your services, such as SharePoint Server, Exchange Server, and the like.

As I showed you earlier, instance size determines how much raw compute power your Azure VMs have reserved for them. You need to first choose a VM pricing tier:

Basic: Intended for dev/test workloads

Standard: Intended for production workloads

Within each tier, you have instance size service levels, each with its own hardware profile and hourly pricing. Look at the following screen capture to observe the pricing for Standard instances, current as of this writing in October 2015:

Azure VM instance sizes

By the way, you’re not charged for the HDD or SSD that comes with your VM. You are charged for any additional disks you add from your Azure Storage account, though.

Another overlooked Azure VM cost consideration is the need for reserved public IP addresses. Azure VMs communicate internally by using a virtual network you create; those RFC 1918 private IP addresses are obviously free and not our concern here.

Instead, we wonder how we can advertise our business’s e-commerce server to the World Wide Web by means of a public IPv4 address. (Believe it or not, Microsoft Azure doesn’t support IPv6!).

Recall that Azure VMs are deployed to an Azure cloud service, and Microsoft assigns the service a public virtual IP address (VIP) that is shared among all enclosed VMs. This may be all you need, and, like I said, it’s free.

The problem with the cloud service public IP is that you need at least one VM running at all times in order to keep that public IP in use. If you down all your VMs in a service, then Microsoft is likely to reassign that IP to some other customer’s cloud service. That’s a potentially bad business day for you!

The documentation is a bit sketchy to me, but Microsoft says you can assign instance-level public IPs at the rate of $0.004/hour (or approximately $3/month per IP based on “always on” status).

Microsoft gives you up to five VIPs per cloud service; you can actually reserve those, which was news to me until I researched this article! Additional reserved IP addresses are charged at the same rate as instance-level public IPs.

Anyway, the rule here is that, unless you’re running your Azure VMs 24 hours per day, you should shut down and deallocate them to make sure you’re not still accruing usage fees.

Here’s the deal: when you shut down an Azure VM from within the instance, the virtual machine goes from a Running state to a Stopped state. Because Azure continues to reserve the compute resources for the VM (including a reserved public IP), you’re still getting charged!

Thus, you need to use the Shut Down button in the Azure Management Portal as shown in the following screen capture:

This July, we asked for software tips from the 2017 Microsoft Office National Champions, a set of charming teens who are officially the best at using PowerPoint, Word, and Excel. The Verge recently followed these teens to the World Championship in California, where they tested their Office skills in a contest that out-nerds the spelling bee.

In order to provide industry-standard compliance with the SWIFT 2017 Standards MT release 2017, Microsoft is offering, to customer's with Software Assurance, updates to the flat-file (MT) messaging schemas used with the Microsoft BizTalk Accelerator for SWIFT. The A4SWIFT Message Pack 2017 contains the following: Re-packaging of all SWIFT FIN message types and business rules...

Independent rendering allows the browser to selectively offload graphics processing to an additional CPU thread, so they can be rendered with minimal impact to the user interface thread and the overall visible performance characteristics page, such as silk-smooth scrolling, responsive interactions, and fluid animations. This technique was pioneered in Internet Explorer 11, and is key

Azure Service Bus .NET Standard client is generally available. With it comes support for .NET Core and the .NET framework. And as mentioned in an earlier post it also supports Mono/Xamarin for cross-platform application development. This is only the start of greater things to come.

The Azure Service Bus team is extremely excited to announce general availability of our Java client library version 1.0.0. It allows customers to enjoy a solid Java experience with Azure Service Bus as it comes complete with native functionality.