Saturday, December 06, 2008

The Two Faces of Cloud Computing

One of the fun aspects of a nascent cloud computing market is that there are "veins" of innovative thinking to be mined from all of the hype. Each of us discover these independently, though the velocity of recognition increases greatly as the effects of "asymmetrical follow" patterns take effect. Those "really big ideas" of cloud computing usually start as a great observation by one or a few independent bloggers. If you are observant, and pay attention to patterns in terminology and concepts, you can get a jump on the opportunities and intellectual advances triggered by a new "really big idea".

One of these memes that I have been noticing more and more in the last week is that of the two-faceted cloud; the concept that cloud computing is beginning to address two different market needs, that of large scale web applications (the so-called "Web 2.0" market), and that of traditional data center computing (the so-called "Enterprise" market). As I'll try to explain, this is a "reasonably big idea" (or perhaps "reasonably big observation" is a more accurate portrayal).

I first noticed the meme when I was made aware of a Forrester report titled "There Are Two Types Of Compute Clouds: Server Clouds And Scale-Out Clouds Serve Very Different Customer Needs", written by analyst Frank E. Gillett. The abstract gives the best summary of the concept that I've found to date:
"Cloud computing is a confusing topic for vendor strategists. One reason? Most of us confuse two fundamentally different types of compute clouds as one. Server clouds support the needs of traditional business apps while scale-out clouds are designed for massive, many-machine workloads such as Web sites or grid compute applications. Scale-out clouds differ from server clouds in five key ways: 1) much larger workloads; 2) loosely coupled software architecture; 3) fault tolerance in software, not hardware; 4) simple state management; and 5) server virtualization is for provisioning flexibility — not machine sharing. Strategists must update their server virtualization plans to embrace the evolution to server cloud, while developing a separate strategy to compete in the arena for scale-out clouds."
Get it? There are two plans of attack for an enterprise looking to leverage the cloud:
  • How do you move existing load to the IaaS, PaaS, and SaaS providers?
  • How do you leverage the new extremely large scale infrastructures used by the Googles and Amazons of the world to create new competitive advantage?
Around then I started seeing references to other posts that suggested the same thing; that there are two customers for the cloud: those that need to achieve higher scale at lower costs than possible before, and those that want to eliminate data center capital in favor of a "pay-as-you-go" model.

I'm not sure how revolutionary this observation is (obviously many people noticed it before it clicked with me), but it is important. Where is it most obvious? In my opinion, the three PaaS members of the "big four" are good examples:
  • Google is the sole Scale-out vendor on the list...for now. I hear rumors that Microsoft may explore this as well, but for now it is not Mr. Softy's focus.
  • Microsoft's focus is, on the other hand, the enterprise. By choosing a .NET centric platform, Azure, complete with Enterprise Service Bus and other integration-centric technologies, they have firmly targeted the corporate database applications that run so much of our economy today.
  • Salesforce.com is perhaps the most interesting in that they chose to compete for enterprises with force.com and Sites, but through a "move all your stuff here" approach. Great for the Salesforce.com users, but perhaps a disadvantage to those wishing to build stand-alone systems, much less those wishing to integrate with their on-premises SAP instances.
The point here, I guess, is that comparisons between Scale-out and Enterprise clouds, while sometimes tempting (especially in the Google vs. Microsoft case), are rather useless. They serve different purposes, often for completely different audiences, and enterprise IT organizations would do better to focus their efforts on the specific facet of cloud computing that applies to a given project. If you are a budding PaaS vendor, understand the distinction, and focus on the technologies required to meet your market's demand. Don't try to be "all cloud to all people".

Except, possibly, if you are Microsoft...