Like all industry terms the definitions of what constitutes a cloud service have become somewhat loose as every vendor puts their own particular spin on it. Whilst many cloud products share a baseline of particular features (I.E. high automation, abstraction from underlying hardware, availability as far as your credit card will go) what’s available after that point becomes rather fluid which leads to the PR department making some claims that don’t necessairly line up with reality, or at least what I believe the terms actually mean. For Microsoft’s cloud offering in Azure this became quite clear during the opening keynotes of TechEd 2012 and the subsequent sessions I attended made it clear that the current industry definitions need some work in order to ensure that there’s no confusion around what the capabilities of each of these cloud services actually are.
If this opening paragraph is sound familiar then I’m flattered, you read one of my LifeHacker posts, but there was something I didn’t dive into in that post that I want to explore here.
It’s clear that there’s actually 3 different clouds in Microsoft’s arsenal: the private cloud that’s a combination of System Centre Configuration Manager and Windows Server, the what I’m calling Hosted Private Cloud (referred to as Public by Microsoft) which is basically the same as the previous definition except its running on Microsoft’s hardware and lastly Windows Azure which is the true public cloud. All of these have their own set of pros and cons and I still stand by my statements that the dominant cloud structure in the future will be some kind of hybrid version of all of these but right now the reality is that not a single provider manages to bridge all these gaps, and this is where Microsoft could step in.
The future might be looking more and more cloudy by the day however there’s still a major feature gap between what’s available in Windows Azure when compared to the traditional Microsoft offerings. I can understand that some features might not be entirely feasible at a small scale (indeed many will ask what the point of having something like Azure Table Storage working on a single server would achieve, but hear me out) but Microsoft could make major inroads to Azure adoption by making many of the features installable in Windows Server 2012. They don’t have to come all at once, indeed many of the features in Azure become available in a piecemeal fashion, but there are some key features that I believe could provide tremendous value for the enterprise and ease them into adoption of Microsoft’s public cloud offerings.
SQL Azure Federations for instance could provide database sharding to standalone MSSQL servers giving a much easier route to scaling out SQL than the current clustering solution. Sure there would probably need to be some level of complexity added in for it to function in smaller environments but the principles behind it could easily translate down into the enterprise level. If Microsoft was feeling particularly smart they could even bundle in the option to scale records out onto SQL Azure databases, giving enterprises that coveted cloud burst capability that everyone talks about but no one seems to be able to do.
In fact I believe that pretty much every service provided by Azure, from Table storage all the way down to the CDN interface, could be made available as a feature on Windows Server 2012. They wouldn’t be exact replicas of their cloudified brethren but you could offer API consistency between private and public clouds. This I feel is the ultimate cloud service as it would allow companies to start out with cheap on premise infrastructure (or more likely leverage current investments) and then build out from there. Peaky demands cloud then be easily scaled out to the public cloud and, if the cost is low enough, the whole service could simply transition there.
These features aren’t something that will readily port overnight but if Microsoft truly is serious about bringing cloud capabilities to the masses (and not just hosted virtual machine solutions) then they’ll have to seriously look at providing them. Heck just taking some of the ideals and integrating them into their enterprise products would be a step in the right direction, one that I feel would win them almost universal praise from their consumers.
I’ve long been of the mind that whilst we’re seeing a lot of new businesses being able to fully cloudify their operations, mostly because they have the luxury of designing their processes around these cloud services, established organisations will more than likely never achieve full cloud integration. Whether this is because of data sovereignty issues, lack of trust in the services themselves or simply fear of changing over doesn’t really matter as it’s up to the cloud providers to offer solutions that will ease their customer’s transition onto the cloud platform. From my perspective it seems clear that the best way to approach this is by offering hybrid cloud solutions, ones that can leverage their current investment in infrastructure whilst giving them the flexibility of cloud services. Up until recently there weren’t many companies looking at this approach but that has changed significantly in the past few months.
However there’s been one major player in the cloud game that’s been strangely absent in the hybrid cloud space. I am, of course, referring to Microsoft as whilst they have extensive public cloud offerings in the form of their hosted services as well as Azure they haven’t really been able to offer anything past their usual Hyper-V plus System Centre suite of products. Curiously though Microsoft, and many others it seems, have been running with the definition of a private cloud being just that: highly virtualized environment with dynamic resourcing. I’ll be honest I don’t share that definition at all as realistically that’s just Infrastructure as a Service, a critical part of any cloud service but not a cloud service in its own.
They are however attempting to make inroads to the private cloud area with their latest announcement called the Service Management Portal. When I first read about this it was touted as Microsoft opening the doors to service providers to host their own little Azure cloud but its in fact nothing like that at all. Indeed it just seems to be an extension of their current Software as a Service offerings which is really nothing that couldn’t be achieved before with the current tools available. System Centre Configuration Manager 2012 appears to make this process a heck of a lot easier mind you but with it only being 3 months after its RTM release I can’t say that it’d be in production use at scale anywhere bar Microsoft at this current point in time.
It’s quite possible that they’re trying a different approach to this idea after their ill-failed attempt at trying to get Azure clouds up elsewhere via the Azure Appliance initiative. The problem with that solution was the scale required as the only provider I know of that actually offers the Azure services is Fujitsu and try as you might you won’t be able to sign up for that service without engaging directly with them. That’s incredibly counter-intuitive to the way the cloud should work and so it isn’t surprising that Microsoft has struggled to make any sort of in roads using that strategy.
Microsoft really has a big opportunity here to use their captive market of organisations that are heavily invested in their product as leverage in a private/hybrid cloud strategy. First they’d need to make the Azure platform available as a Server Role on Windows Server 2012. This would then allow the servers to become part of the private computing cloud which could have applications deployed on them. Microsoft could then make their core applications (Exchange, SharePoint, etc.) available as Azure applications, nullifying the need for administrators to do rigorous architecture work in order to deploy the applications. The private cloud can then be leveraged by the developers in order to build the required applications which could, if required, burst out into the public cloud for additional resources. If Microsoft is serious about bringing the cloud to their large customers they’ll have to outgrow the silly notion that SCCM + Hyper-V merits the cloud tag as realistically it’s anything but.
I understand that no one is really doing this sort of thing currently (HP’s cloud gets close, but I’ve yet to hear about anyone who wasn’t a pilot customer seriously look at it) but Microsoft is the kind of company that has the right combination of established infrastructure in organisations, cloud services and technically savy consumer base to make such a solution viable. Until they offer some deployable form of Azure to their end users any product they offer as a private cloud solution will be that only in name. Making Azure deployable though could be a huge boon to their business and could very well form a sort of reformation of the way they do computing.
Maybe it’s my corporate IT roots but I’ve always thought that the best cloud strategy would be a combination of in house resources that would have the ability to offload elsewhere when extra resources were required. Such a deployment would mean that organisations could design their systems around base loads and have the peak handled by public clouds, saving them quite a bit of cash whilst still delivering services at an acceptable level. It would also gel well with management types as not many are completely comfortable being totally reliant on a single provider for any particular service which in light of recent cloud outages is quite prudent. For someone like myself I was more interested in setting up a few Azure instances so I could test my code against the real thing rather than the emulator that comes with Visual Studio as I’ve always found there’s certain gotchas that don’t show up until you’re running on a real instance.
Now the major cloud providers: Rackspace, AWS, et. al. haven’t really expressed much interest in supporting configurations like this which makes business sense for them since doing so would more than likely eat into their sales targets. They could license the technology of course but that brings with it a whole bunch of other problems like what are supported configurations and releasing some measure of control over the platform in order to enable end users to be able to deploy their own nodes. However I had long thought Microsoft, who has a long history of letting users install stuff on their own hardware, would eventually allow Azure to run in some scaled down fashion to facilitate this hybrid cloud idea.
Indeed many developments in their Azure product seemed to support this, the strongest of which being the VM role which allowed you to build your own virtual machine then run it on their cloud. Microsoft have offered their Azure Appliance product for a while as well, allowing large scale companies and providers the opportunity to run Azure on their own premises. Taking this all into consideration you’d think that Microsoft wasn’t too far away from offering a solution for medium organisations and developers that were seeking to go to the Azure platform but also wanted to maintain some form of control over their infrastructure.
After talking with a TechEd bound mate of mine however, it seems that idea is off the table.
VMware has had their hybrid cloud product (vCloud) available for quite some time and whilst it satisfies most of the things I’ve been talking about so far it doesn’t have the sexy cloud features like an in-built scalable NoSQL database or binary object storage. Since Microsoft had their Azure product I had assumed they weren’t interested in competing with VMware on the same level but after seeing one of the TechEd classes and subsequently browsing their cloud site it looks like they’re launching SCVMM 2012 as a direct competitor to vCloud. This means that Microsoft is basically taking the same route by letting you build your own private cloud, which is basically just a large pool of shared resources, foregoing any implementation of the features that make Azure so gosh darn sexy.
Figuring that out left me a little disappointed, but I can understand why they’re doing it.
Azure, as great as I think it is, probably doesn’t make sense in a deployment scenario of anything less than a couple hundred nodes. Much of Azure’s power, like any cloud provider, comes from its large number of distributed nodes which provide redundancy, flexibility and high performance. The Hyper-V based private cloud then is more tailored to the lower end where enterprises likely want more control that what Azure would provide, not to mention that experience in deploying Azure instances is limited to Microsoft employees and precious few from the likes of Dell, Fujitsu and HP. Hyper-V then is the better solution for those looking to deploy a private cloud and should they want to burst out to a public cloud they’ll just have to code their application to be able to do that. Such a feature isn’t impossible however, but it is an additional cost that will need to be considered.