When Microsoft first announced its Azure cloud service, there were plenty of sceptical comments about enterprises not being interested until there was a way they could run it themselves.
In one sense that's missing the point of cloud; how can you get the cost benefits of elastic, on-demand computing if you insist on buying all your own servers?
But the reason we're not all running all of our server workloads on cloud services such as Azure and AWS isn't just because network bandwidth and latency can still be issues. It's because large companies need the kind of control you get by owning and running your own server hardware, at least for some of their workloads.
Microsoft's approach to that has been what it calls hybrid cloud; making Azure and Windows Server interoperable and tying them together with the same management options (System Center and PowerShell), so you can run the same workloads on Azure as you can on your own servers, deployed and monitored with the same tools. And they don't have to be Windows Server workloads; Linux and Oracle VMs are supported on both.
It's the same vision OpenStack has been promising for a couple of years, just far more mature as a technology platform. The advantage OpenStack could claim was that you had a choice of hosts whereas with Microsoft's hybrid cloud your choice was Azure or DIY cloud with the Windows Azure Pack. But Microsoft is now making the Azure Pack available to hosters.
Outsourcery recently teamed up with Dell and used it to create an IL3-compliant, G-Cloud approved government cloud based on Azure and this week Microsoft announced the Cloud OS Network of 25 hosting providers worldwide (six of them in the UK, including Outsourcery and Capita) offering Azure services.
It's not 25 different versions of Azure; Azure remains Microsoft's own cloud offering. It's cloud services running on Windows Server and the Azure Pack that might incorporate other tools, like Parallels's cloud tools (which hosts can also use to deploy the Azure Pack or Office 365 in their data centres).
As Maurice Martin, Microsoft's director for server and cloud platforms, says: "We're offering the ability for the service provider to interact at the programmatic layer with the Azure web portal. They can program that, they can seamlessly integrate it into their offering, they could use it with Parallels. They can build an integrated composite front end that lets them leverage Azure services in their offerings."
That gives businesses the option of familiar tools, or the all-Microsoft management systems. But mostly it gives them a mix of choice and consistency it's hard for other cloud vendors to match at this kind of scale (OpenStack has 17 subtly different distributions and RackSpace's involvement makes it a less than obvious choice for other hosting providers).
You can take the same app, the same workload, the same virtual machine or the same service that you've built on your own Windows Server infrastructure and you can run it on Azure or on the Azure cloud partner of your choice — and migrate it between those whenever you want. You can choose by price, or by the other services you can get. If you need something that has government accreditation, you can use a Cloud OS Network partner who has it and still be using Azure services.
Need a cloud service that's in Germany, Italy, Finland, Australia, New Zealand, Brazil, Vietnam, Israel or Turkey specifically? You can use a cloud service running Azure there. Happy to have it run anywhere in Europe? If Azure's cheaper, you can run it there. Need it to stay in your own data centre? With all of them, you get the same development model, the same data model, the same virtualisation, the same network model, the same deployment tools, the same management options. You finally get Azure any way you want it.
Of course, this is most useful if you've got your IT in a state where you can identify, wrap up and migrate your workloads; but if you haven't done that, you're spending a lot more on maintenance and support than you need to be and picking the most suitable cloud provider is probably the least of your problems.
How cloudy do you want to be?
The original vision of Azure was about cloud-style services that could replace not just the in-house servers businesses ran line of business apps on, but the way they developed those apps. It didn't use the same hypervisor as Windows Server, it didn't have the same database features as SQL Server, you couldn't manage it with System Centre; it was all about roles and services and a cloud way of thinking that many businesses weren't ready for.
Those cloud services are still there, and they're far more mature; if you want to do big data, Hadoop and HDInsight are cloud-style, cloud-scale tools for it. But Azure is now running the same version of Hyper-V as Windows Server 2012 R2, and it can run the same VMs you'd run in house — just much more cheaply.
You're probably still paying for the electricity to run your server at the weekend when it's hardly used; Azure lets you spin down VMs automatically in the evenings and at weekends so you're not paying for them.
You can run your workloads on Azure, or on a third-party Azure-powered cloud, while you decide which of the cloud development models might make sense for your business in future, and you don't have to change your infrastructure to do it.