Friday, November 14, 2008

What's Holding Back Cloud Computing

I saw this interesting Gartner slide in a blog posting entitled "What's Holding Cloud Computing Back?" Since I didn't realize cloud computing was being "held back" :) I paid some attention to it. Here's what Gartner listed as reasons, verbatim:

Service Management - technologies immature

Scalability - parallel processing, no problem; sequential processing, different story

Costs - economies of scale only go so far, unless customer is willing to trade data or advertising views for services

Culture - trust, chargeback, sharing

Connection - only as good as the Internet, unless you pay to harden your connection

High Availability - for workloads that are stateless, no problem; for stateful workloads, same issue as enterprises

Customization - difficult - at least with monolithic applications

Gartner is of course talking about the state of cloud computing generally as they see it. I thought it would be interesting to analyze whether these points ring true or not--and how deeply--with Windows Azure specifically in mind. Here's my take on it:

Service Management - technologies immature. It's true many of the technologies are immature, this is just the start of a big wave with many implications. A good example is SQL Services compared to SQL Server in the enterprise, the enterprise version is far more capable today. However, in the case of Windows Azure not everything is immature. Microsoft has been doing online for some time now, growing in the scale and variety and reliability of what they offer--and some of these properties have been using the data center infrastructure. In other words, the cloud platform Microsoft is offering is also used by Microsoft itself.

Scalability - strong parallel processing story, poor sequential processing story. This may be true of cloud computing offerings in general but here I think Azure has a very good story. One of the .NET Services in the platform is the Workflow Service. That would seem to address any kind of processing you have in mind, whether sequential, parallel, or a mix.

Costs - economies of scale go only so far. I'm not sure what they're getting at here, they might mean that there's only so much cost savings to be realized. Well, so what? It's still a refreshing set of new choices, and no one's taking the traditional choices away. Cloud computing--at least in the Microsoft vision of Software + Services, is not about abandoning the enterprise and traditional ways of doing things. The whole idea is have some software local and some software in the cloud. The beauty of the S+S approach is that each organization is free to make their own determination about what makes sense local and what makes sense in the cloud. Obviously, cloud computing going to have a stronger appeal for some more than others.

Culture - trust, chargeback, sharing. I do hear from some folks that they think the whole idea of putting software or data in the cloud is unrealistic, at least for their organizations. I guess my answer to that is threefold: 1. You may well be right, in your individual case. Some things just belong in the enterprise. 2. Secondly, the existence of a hosting industry testifies that some organizations are perfectly willing to put software and data "out there" as long as they can be satisfied about the security arrangements. 3. You might well change your mind down the road. Similar to web services, there are going to be the pioneers and the settlers in this new space. Not everyone's gong to be a pioneer, but the wave will likely hit everyone eventually one way or another.

Connection - only as good as the Internet. True enough. But in case no one's noticed, we're all becoming very dependent on the Internet. That includes how customers interact with your business.

High Availability - applications must be stateless. Well, that's true. The load balanced, virtualized, automatically provisioned nature of the platform needs stateless software to do well. But stateless has been a recognized best practice for some time now, especially in SOA, so this doesn't seem like a terrible restriction to me. And there are ways to pass state around even in nominally stateless applications.

Customization - difficult - at least with monolithic applications. Once again I'm a little unclear as to what's being said here. In the case of Azure, I can't think of any customization restrictions the platform forces on you as compared to using .NET on premise. There are, in fact, some very nice customization capabilities in the platform including the ability to simultaneous support different security systems through federated security.

Putting it all together, I think Azure stacks up quite well against where the rest of the industry is in cloud computing. No one's pretending platform maturity, but what does exist is already compelling and competitive.