As often happens, this blog post is born of threads coming together from many directions at once. It is pure serendipity, because no one thread is something I’d write about, and perhaps the threads exist only in my own world model, but nevertheless, I must write.
There is a discussion among the Enterprise Irregulars about Cloud Computing and Amazon as I shared my latest Amazon post on Windows support with them. It’s an interesting discussion as there is much back and forth about how good or bad the Amazon and other Clouds may be. Some have heard of people moving off Amazon because it was too expensive compared to their own data center. Some have heard of performance problems of various kinds, though others comment they’d heard that early on and not so much lately. Still others jumped in to talk about the advantages of the platform their company has built versus Amazon. The latter led to a further discussion about whether Amazon adds enough value to justify its price, whether elasticity is really important to very many apps, what services should these platforms provide, and a general yada, yada. Good stuff!
Another piece of the puzzle comes from venture capitalist Bruce Cleveland’s excellent post on proprietary platforms such as Force.com or Netsuite’s platform. Cleveland hits on two critical themes when he talks about SaaS companies using someone else’s Platform as a Service. First, since SaaS has slender margins to start, it is imperative that they be able to drive costs down to a small percentage of their fees. Traditionally this has been done by building your own data center and taking advantage through multitenancy of the fact that every customer doesn’t need every available cycle all the time. It takes less hardware than if everyone installed their own on-premises solution, in other words. Elasticity from a service like Amazon can offer the same benefits, provided the service is cheap enough relative to owning a data center.
A bigger issue for Cleveland is one I’ve raised in the past as well: Will there be a downstream conflict of interest with your PaaS vendor? After seeing you business succeed, will they want to take it away from you, and will they have an unfair advantage to help them take it away? With some platforms, this is particularly easy as they dictate the data model and many of the objects your application uses, so they have the ability to access all of your data. Other platforms that are largely offering virtual hardware, such as Amazon, are far enough from the data that it would be a much bigger project for them to intrude, and likely it would look very bad for them if they were sued over it.
At the same time, I’m reading that Richard Stallman, he of the GNU Open Source “Nobody Owns Software” movement, feels that Cloud Computing is just another evil plot to create a massive proprietary locked down walled garden. It’s a trap that must be avoided by any right thinking Open Source believing denizen of the digitopia. Like any hot meme, that one flew right up to prominance on Techmeme in no time and had the blogosphere buzzing.
Stallman says, “Do your own computing on your own computer,” lest you lose control of your data in the Cloud. BTW, Valley Wag, the site I just quoted Stallman from, and a lot of others lately don’t do Trackbacks. The link love with them is one way only. I gotta figure Stallman would frown on that too, but we digress.
Fellow Enterprise Irregular Zoli Erdos sees no fundamental conflict between Open Source and the Cloud, and I agree. Heck, a lot of what is Amazon is Open Source and the platform has certainly favored Open Source software up until they’ve announced Windows support.
Nick Carr humorously juxtaposes Stallman’s issues with Cloud Computing against his campaign to convince people not to buy Harry Potter books. When you put it that way, it does make Stallman look a little extremist! Nick’s is another blog with no trackbacks (my own personal crusade), incidentally. Mathew Ingram similarly dismisses what he calls Richard Stallman’s “Chicken LIttle Routine.” In fact, most of the posts I’ve read are dismissive of Stallman’s stand against Cloud Computing while occassionally pointing out that he is still a very smart guy and a legendary figure in computing.
Okay, so there’s the threads, but what do they have to do with one another?
Just this: I think Stallman and some of my Irregulars colleagues are just not thinking about what Cloud Computing really is (or at least versions of it are). Stallman is a software guy and wants to see it as software. What if instead of viewing it as software, we simply view it as a new form of hardware? After all, we live in an age of virtualization, and a lot of Cloud technology really is nothing more than virtual hardware. That’s certainly what Amazon EC2 boils down to.
When you buy hardware, you generally avoid the really expensive proprietary hardware that will only run a few kinds of software unless you really really have to have it. The supercomputer industry learned this the hard way some time ago, as did makers of specialty graphics workstations such as SGI. Commoditization rules the hardware world.
Now given that we need some kind of hardware somewhere on which to run our software, why would Stallman see cloud hardware as somehow less open than any other hardware? In fact, I think that the right Cloud infratructure looks exactly like extremely open hardware with a much better payment plan involving elasticity.
The key to being able to view the Cloud as hardware is in which services from the Cloud you consume. Does the Cloud Platform you’re looking at present you with essentially virtual hardware, or is it focused on fairly proprietary services? In other words, are these Cloud Services something that impacts your software architecture very little and is it easy to find extremely similar services from many vendors?
I would argue that Amazon EC2 and S3 qualify as virtual hardware while Amazon SimpleDB does not. The first two are very easy to embrace, they make minimal demands on your software architecture, and it is likely that the changes you make will be useful on other clouds that have virtual Linux instances and archival storage services. OTOH, SimpleDB is kind of an esoteric beast, as are the uniquely scalable equivalents like Google’s Big Table. They’re tantalizing, and interesting, but in the end, they radically change your architecture versus using MySQL and once you’re locked in by these big changes to your software, you can only buy the service from one vendor.
When we view the Cloud as Virtual Hardware rather than software, we open the door to benefit in three ways:
– Not having to build a datacenter, a distinctive competency that is hard to grow and offers little competitive advantage until you get really big like Google or Amazon.
– Elasticity. You can spin up and provision a server for hours or days, and then shut it down and quite paying. There’s no need to ever touch the machine.
– Commoditization: Because we’ve chosen only Clouds that offer virtual hardware, we can get similar services from a lot of places. That drives prices down.
These three all add up to compelling cost savings for most organizations, and they’re built on a plan that avoids the potential lock-in risks some Cloud Platforms bring.