Custom Search
Sunday, October 25, 2009

Economics always guide adoption

In her recent article, "Study Says Economics Not A Driving Factor in Cloud Computing Adoption", Lori MacVittie reports on several studies that show that the current macroeconomic climate is not having a big impact on cloud computing adoption. In particular, the cost-savings purported to be offered by the cloud do not seem to be the major selling point. And yet, companies are adopting cloud computing technologies left and right, so it must make business sense: in other words, economics are driving adoption.

Many analysts look solely at virtualization and elastic computing services like Amazon's EC2 as the major technology at play in the infrastructure-as-a-service market. While certainly it takes less time to spin up a virtual machine image in the cloud than it does to rack and install actual hardware, this is probably not the major contributor for cost savings; at even a modest enterprise size, it's still cheaper to run the servers yourself. Indeed, even with virtual hosts, you must still manage capacity, allocate applications to servers, and monitor application health, meaning your technical operations staff is still very much needed.

Overlooked in many ways here are what I would call application building blocks available in the cloud, like Amazon's Simple Storage Service (S3), Simple Queueing Service (SQS), and SimpleDB. Google App Engine has its BigTable-based datastore, which with a modicum of effort can be exposed as a GData-style data webservice. In all of these cases, these application building blocks offer:

  1. very simple programming interfaces;
  2. automatic distribution of data across data centers;
  3. easy scalability; and
  4. understandable cost models
These capabilities would require a significant amount of effort for an enterprise to develop for itself. For example, I estimate developing an internal, enterprise-class S3 service might require a half million dollar investment in labor and servers, assuming you already had multiple data centers in place and could leverage existing open source software like Cassandra, Project Voldemort, or Dynomite.

Instead, time-to-market pressures are the real forces behind cloud computing adoption in the enterprise. These application building block services allow for rapid prototyping of new functionality, where the production architecture and the development architecture are the same. Where business agility to react to new opportunities is crucial, especially in the ever-changing Internet landscape, the ability to rapidly bring features to market, test their adoption, and then evolve is the key to long term competitiveness. Companies that cannot roll out new consumer value out quickly will find themselves left behind by more agile competitors. As the competition adopts cloud computing and gains time-to-market advantages, companies are forced to follow suit.

Cloud computing adoption is always about economics.


Sridar G said...


Good arguments, the question is probably how many of today's cloud users and IT departments are considering using these application building blocks directly.

They would prefer to leave this problem to the application vendors, do these people see cloud based application blocks answering their application development needs ?

While addressing some problems (scaling, replication) they arent sophisticated enough for many business problems or the current levels of application design havent got around to thinking of solutions with these building blocks as "legos".

g s

Jon Moore said...

@Sridar: Again, speaking as a technical architect working for a Fortune 500 company, I'm not sure I agree with your assertion that these building blocks aren't sophisticated enough for many business problems. Rather, I agree that people simply aren't used to designing applications with this types of building blocks in mind.

Case in point: you have a need to run in multiple datacenters due either to geographic locality or purely for high availability reasons. The CAP theorem says that you can't guarantee availability and consistency at the same time here; many of the cloud building blocks don't give you strong consistency guarantees (e.g. transactions), but you've already gone down that road anyway once you've built a distributed system (assuming that availability is more important that strict consistency, which it usually is).

I think this will eventually sort itself out in the market; vendors and software companies that use these techniques will enjoy faster times to market and economies of scale and hence will drive out those who don't understand these techniques through pure economic Darwinism. Evolve or perish.

Post a Comment