If you haven’t noticed, the cloud computing conversation is in full swing. There has been a vigorous discussion recently on both blogs and the Cloud Computing Group around defining ‘cloud computing’ and everyone is taking a swag at it; usually with their own bias. Of course, I already have my own bias (ha!), but Reuven Cohen, CTO of Enomalism, had a recent posting, Describing Cloud, that I want to respond to.
Internet Centric Services Reuven uses the notion of ‘internet centric software’ to describe cloud computing services and talks about a shift happening from a ‘single tenant approach to software development’ to a ‘scalable, multi-tenant, multi-platform, multi-network’ approach. I like the notion of ‘internet centric software’ and for me, it says much about the fact that the latest boom is one where people are trying to find new Internet-relevant business models rather than trying to move bricks and mortar online.
Calling it ‘software’ still irks me, though. Developers aren’t consuming software in this new world. They are consuming cloud services, adding traditional software development, and putting together all new applications that are greater than the sum of the parts.
The Real Buzzword What really irks me more is the notion that there is one problem: scale. If there is one buzzword that is more useless or more watered down than ‘cloud computing’, it’s got to be so-called ‘scale’. Beyond the fact that it’s misunderstood and treated like a panacea is the fact that it masks a whole set of real, compelling problems and solutions. On-demand is in Demand Let me walk you through this. Amazon has already told us that the majority of their AWS customers aren’t startups, but large corporations. Are large corporations building scalable websites?
No. They have other needs. Cloud services value propositions serve both ‘scale’ and these other needs.
As I see it, the fundamental value props of cloud services are:
Scalability Everyone knows this one, so I won’t dwell on it too much, except to define it clearly. Scale is the ability of your resources to service demand. A scalable site, system, or business is able to manage resources in such a way that it meets the service, product, or consumer demands as they grow. That’s it. Nothing more. The trick is that most things, online or off, aren’t designed to scale by default. In the simplest terms, it’s your ability to handle the Slashdot or Digg Effect.
Leverage This gets lumped in with scalability, but it’s not exactly the same thing. You get leverage when you are able to go from zero to ‘lots’ quickly, but not necessarily because you have a consumer or other uncontrollable demand. For example, you might need to crunch a large amount of data periodically or perhaps you need to do 10 test runs of your application deployment simultaneously. It’s a predictable, quantifiable need that is under your control, but now you can get on-demand resources to service that need, where before you couldn’t. I think the majority of greenfield cloud usage is of this type.
Speed Easy: “I need 10 servers in the next hour to finish this project on time.” I believe this particular use case is extremely prevalent with enterprise customers right now. There is much less friction in turning on 10 servers on EC2 than trying to get them through corporate IT. Combined with elasticity, you can get tremendous leverage and significantly reduce time to market or time to complete a project.
Reach This is part of what Reuven was alluding to in the original posting where he says ‘global’. We haven’t seen this as much yet, but will soon. As clouds go global, your ability to more directly reach a given market goes up dramatically. I like to think about the Friendster case.
Friendster is a U.S. bred-and-born social network; one of the first in fact. It had strong initial traction in the U.S., but was eventually eclipsed by MySpace and Facebook. Yet, Friendster is still around, mostly in Asia. In fact, 39% of it’s traffic is from the Philippines. In a world where clouds are global, it will be easy for a Friendster to shift infrastructure as markets shift, resulting in better service to and huge cost savings in serving those markets.
Summary So what’s the punchline? It’s going to take a while for the terms to settle down, but don’t be overly swayed by the ‘scalability’ proposition. Not only is scalability not easy to create, but it’s not just about scale. There are some very powerful ways to gain leverage through the elasticity that cloud computing services enable.