Monday, March 03, 2008

Is Cloud Computing just Provisioning?

There is more and more buzz on Cloud Computing (and, it just happens, that is why I've been too busy to blog lately ;-). However, one of the common assumptions that seems to be floating around is that Cloud Computing is nothing but a provisioning exercise. As an example (btw, an example of some pretty cool technology) is this reference to Cohesive Flexible Technologies which does some cool stuff with provisioning. Or, 3tera has a great demo for provisioning.

But provisioning is only a part of the story, and, in some ways, only the beginning of the story. There are several other key elements that make cloud computing ultimately more valuable in a business sense. For instance, virtualization is almost a requirement for great cloud computing. Several solutions are already based heavily on virtualization, but most provisioning solutions to date have been focused on deployments on physical hardware, with a few looking at deploying on virtual hardware. Why is virtualization important? Hmm, short answer is that it allows consolidation, migration, isolation, security, and several serviceability requirements than increase the overall value of the cloud. I may go into more depth on that in a future article because the benefits may not all be as visible on the surface.

Another part of the story is image managment, which today is less well evolved than it ultimately needs to be. I've mentioned rPath & rBuilder previously, Amazon provides views of images, but we are basically in that early stage of image management where the number of solutions and repositories tends to boggle the mind. This portion of cloud computing will need some additional standardization, improved tooling, better life cycle management, etc. and will be key to deploying solutions within clouds.

Management of the life cycle of applications or images (or virtual appliances, as some call them) within the cloud is also a challenging area in which there is very little product available today. For instance, people tend to deploy singletons or redundant sets of servers or images. But HA hasn't done a large merge yet with cloud computing. For instance, it should be possible to deploy a virtual appliance which "rarely fails" or "never fails" from a customer point of view. HA solutions can be crafted that way today, but usually they are hand tuned, hand configured. In a true cloud computing environment, that should be merely a parameter to the deployment.

Other aspects include handling things preventive maintenance - does your service go down whenever someone needs to install a new service pack or update the hardware? In a cloud environment, there should be other resources your application could use - so why not just migrate your application to those resources without disruption? Oh, but how do you handle migrating network connections, how do you handle access to the license server? Is someone collecting usage information for charge back? How is that usage information integrated across the cloud for charge back? How do you measure and manage your response times for multi-tiered applications?

I think all of these are aspects that will eventually be included in the expectations of things that a Cloud just handles. And, some of the services that a Cloud will soon offer will cover those bases and potentially many more. Clouds are much more than just provisioning.



At 5:03 PM, Blogger Bert said...


Interesting post. You've hit on a couple critical issues in the whole cloud computing discussion.

First, that the notion of cloud computing is still in flux. Is it a programming interface, as some argue? Or, is it more of a consumer service, which is the way I see it being used more often lately? Either way, what I see as a common thread is a desire for a new abstraction layer that shields users from the dirty details of infrastructure.

Second, the services stack required to actually enable cloud computing on a large scale is still being defined. Clearly, as you point out for instance, hardware provisioning and basic HA (remapping an appliance to functional resources) isn't something that should be exposed at the "cloud layer". I'd also argue the same for storage.

Thanks for mentioning 3tera,
Bert Armijo

At 7:48 PM, Blogger Gerrit said...

Bert, good questions. I think the real value of Cloud Computing, as opposed to Grid Computing, is that it is viewed as a consumer service. Grid computing and cluster computing, as well as SOA do a good job of providing the programming interfaces, and those can be used on top of a cloud, or within a cloud. The abstraction now is the simple instantiation of the service, the virtual appliance, the capability that the end user ultimately wants.

As far as the services stack, that is still a dark art at best. But your points on storage are also well taken - storage is equally capably of providing cloud-like services and I'll probably expound upon that at a later time. There are some interesting complexities in storage, and yet, it is often deployed in a most cloud-like fashion. The dichotomy is somewhat delicious. ;)

At 7:41 PM, Blogger PatK said...

As one of the other companies mentioned like 3Tera - I will comment like Bert.

I think you raise a number of points we definitely agree with. One of them we have been tackling has been sharing resources across different clouds/hosters, so that we have a Virtual Private Data Center. We have done some interesting work on top of OpenVPN to facilitate this in an Open Source project we call VcubeV. See our developer page for it (and the pointer to an article about it in this months Linux Journal):

Also - just as an FYI - if provisioning means getting the VMs to the cloud or to the physical server in the data center - then we do some of that. However, the main purpose of Elastic Server On-Demand is to allow people to assemble their VM's from component libraries of their choice, inject them with identity and manage them once they have been provisioned/deployed to a hypervisor slot for execution.


Pat K
CTO, CohesiveFT

At 11:51 AM, Blogger Deepak said...

I think, the cloud computing technology in Linux/Windows is ZenWorks Orchestrator by Novell which virtualizes the applications on Virtual machines (Windows & Linux).


Post a Comment

Links to this post:

Create a Link

<< Home