Friday, July 20, 2007

Where's the standard, bub?

Simon Wardley's Bits and Pieces blog has an interesting post breaking down what he thinks are the three key markets for utility computing:
  • Saas: Software as a Service

  • FaaS: Frameworks as a Service

  • HaaS: Hardware as a Service
Such as it goes, this is OK, but I think his most interesting comments surrounded the need for Common Service Providers in each of these areas, and the need for portability across those providers, and the mechanisms that he thinks will drive the standards that will enable portability. To quote:

The issues and the needs of a competitive utility computing market are also the same at each level - portability, multi-providers and agreed standards and solves the same class of problems - disaster recovery, scalability, efficiency and exist costs.

In today's world the fastest way to achieve a standard is not through committee, conversation or whitepapers but through the release and adoption of not only a standard but also an operational means of achieving a standard.

Hence such utility computing standards will only be achieved through the use of open source, without any one CSP being strategically disadvantaged to any owner of the standard.

To be sure, this is controversial, but it aligns nicely with an observation that I and others have had about Xen, and why it may struggle to supersede VMWare, despite being freely distributed by just about every major OS vendor out there.

One of my colleagues put it best in an email:

As to the larger question of why Xen is failing miserably, I would like to profess this opinion -- Storage. The Xen / KVM / Linux / RedHat community botched storage. Hence, they are failing in the marketplace.

To elaborate:

Virtualization brings two important benefits:
  1. Seperates the OS+App stack from the underlying hardware

  2. Enables you to package the OS+App stack into a VM that you can fling around with ease....this is the storage angle.
Xen accomplished (1) reasonably well.

Xen failed miserably with (2), i.e Storage. VMware solved the storage issues admirably well. So long as Xen solutions do not work well in the "copy virtual disk files around and run them anywhere" model, Xen will not succeed.
In other words, Xen has issues with portability by not providing a file representation of virtual machine storage that can be moved between disparate physical systems with ease. I know there are some virtual appliance vendors out there that do Xen, so maybe the problem is solved with their technologies. However, there is no standard proposed by Xen, and thus there is no portable standard for Xen VMs as files.

Alas, VMWare has a nice portable file representation of a VM. Granted, there are portability issues there, as well, but by and large VMWare has a much better solution to portability--within VMWare hosts. Unfortunately, there is still no solution (that I know of) that will run the same file system on both VMWare and Xen. Thus, no universal portability is coming soon from the VM space.

Recently, I have been telling anyone who will listen that this nascent utility computing market is still searching for a standard for server (VM/framework/application/whatever) portability across disparate utility computing service providers. I like the concept of a virtual appliance, but we need a (non-proprietary) standard, or we need another portability mechanism besides VMs. (As a side note to my new friends at eCloudM--this is definitely an opportunity, though it may not meet your criteria.)

Otherwise, utility computing will be "choose your vendor and build your software accordingly", not "build your software as you like and choose any vendor you want".

Please, if I am way off, correct me with a comment or a blog post. I would love to find out I am wrong about this...


Bert said...

Good observation James.

I read Simon's post as well, and as you rightly point out with your example I think he's over simplified the issue in asserting that the solution is open source.

On the issue of utility computing, though, in my admittedly biased opinion (being a founder of 3tera) I think mere virtual appliances aren't a viable solution. To truly depend on a utility service users must be able to migrate their entire presence between providers. IMHO the only proven way to do this is to have an application level abstraction.

swardley said...

Great post James.

My arguments for the use of open source are two fold.

Firstly, it's about creating a potential non-proprietary standard and overcoming fears of strategic control from any common service provider (CSP).

Secondly, it's about faster adoption of a potential standard by providing an operational means of achieving this.

However, this is based upon the assumption that you have an engine which allows for portability between one CSP and another.

This is applicable to all the levels of SaaS, FaaS and HaaS.

At the FaaS level if you build an application server, which you can't move your application from one instance of the server to another - then you don't even have a potential standard.

At the SaaS level, if you build an app which you can't extract your data from - then you don't even have a potential standard.

"Xen has issues with portability by not providing a file representation of virtual machine storage that can be moved between disparate physical systems with ease" - solve this, and then you have the start of a potential standard for a utility computing market at the HaaS level.

Anonymous said...

Only three ways to handle this situation:

1. Provision all servers at 15 percent.

2. Purchase VMWare and provision to 30 percent.

3. Buy a Mainframe and provision to 85 percent.

The true software solution, ie utility computing is too large of a problem for one company to solve unless your name is IBM or HP. Consolidation is coming as you cannot ignore the "old" to make way for what you are describing as "new"