With all of the announcements last week at TechEd around Azure, the excitement is understandably high. And with Commerce Server 10.1, we’re pleased to say that we have a great story for Commerce Server and Windows Azure – and now wanted to shed some light on the topic.
The Business Side of Azure
First, the boring business parts. Starting with Commerce Server 10.1, Windows Azure Virtual Machines is now a supported operating environment. Any underlying on premise version of Windows that is supported by Commerce Server will also be supported in Windows Azure Virtual Machines for each respective Commerce Server release from 10.1 and above. Licensing works exactly the same way it does on premise and the policies are exactly the same. The only difference is that you are substituting a physical server with a Windows Azure Virtual Machine.
Next up is the deployment – for the sake of comparison we basically replicated the same topology used when releasing Commerce Server 10 in the on premise performance lab, but using A4 instance sizes. It was configured using Windows Server 2012 and SQL Server 2012 virtual machines as follows:
One very important note to make is that the disks for the database server needs to be configured in separate storage accounts and then striped together (we used 3 disks). It was only by doing this that we were able to replicate the performance of a physical SAN from an IOPS perspective. Wade Wegner discusses this on Aditi’s blog at http://blog.aditi.com/cloud/windows-azure-virtual-machines-lessons-learned/ – and this post is a must-read. Furthermore, it should be noted that this configuration cannot currently be provisioned in the Azure Management Portal and must be PowerShell scripted (the topic of another post for another day) currently.
We should also talk about PCI compliance. The same rules apply as the on premise product – the only difference now is that the infrastructure is virtualized by Azure. Hence, the same guidelines for hardening, best practices, and ultimate review and certification of the end-solution apply.
Performance Results vs. On-Premise
In terms of actual performance, the two were very comparable as illustrated by comparing the same tests of on premise servers and Windows Azure Virtual Machines, both Pages/Second and Checkouts/Second were almost directly comparable as user load increased over time.
The one principal difference to note was average page time did see some spikes as indicated in the following graph:
Our analysis showed that this was most likely caused by two primary factors. First, was random network latency, whereas the performance lab is a clean-room environment. Second was the fact that our load agents were pretty over-stressed relative to those used in the on premise performance lab. But what matters is reliability and throughput – and that is where Azure delivered.
What can we take away from this? In short – Windows Azure and Commerce Server are ready for prime-time and customers can now confidently take their workloads to Microsoft’s cloud and be assured that it will perform just as well as anything that can be created in their own data centers.
More details will be coming soon – as we update both the product’s core performance documentation as well as posting some additional details on how we configured the storage for Azure. Please also note that we intend to offer Commerce Server as a Virtual Machine offering through Windows Azure similar to how you can currently purchase SQL Server or BizTalk Server as soon as this is opened up to ISVs.
Hope this helps!