Saturday, April 08, 2006

Genesis : The new box in town is Virtualization

It is imperative for all of us in the tech community to separate vaporware from real technology that will change our future. Thanks to millions of dollars spent by big vendors we come across new buzzwords every now and then. Some of them are promising, some of them are new wrappers around old candies and a lot of them are an unremarkable display of marketing trash.

Let me try to focus on the utility computing side of the tech world.

Wikipedia/SearchCIO says :

"Utility computing is a business model whereby a service provider makes available computer resources to their clients and charges them for the usage rather than the hardware. Like you pay the gas company or the electric company for its service based on usage, computing resources are metered and the user charged on that basis."

"
On Demand computing is an increasingly popular enterprise model in which computing resources are made available to the user as needed. The resources may be maintained within the user's enterprise, or made available by a service provider "

"
Grid computing is an emerging computing model that provides the ability to perform higher throughput computing by taking advantage of many networked computers to model a virtual computer architecture that is able to distribute process execution across a parallel infrastructure. Grids use the resources of many separate computers connected by a network (usually the Internet)
to solve large-scale computation problems. Grids provide the ability to perform computations on large data sets, by breaking them down into many smaller ones, or provide the ability to perform many more computations at once than would be possible on a single computer, by modeling a parallel division of labour between processes."

"Autonomic Computing's aim is to create self managing computer systems to overcome their rapidly growing complexity and to enable their further growth."

Distributed Computing
Model has over the years evolved from client server computing to multi-tier computing, the end to end connection model has evolved into peer to peer discovery, the web services loosely coupled model has evolved into syndicated feeds based client assembled mashups. Is it time for Utility Computing to evolve ?

I tend to disagree with marketing folks who separate utility-computing from on-demand model or grid computing paradigm. The essense of the technology is to overcome the challenge of enterprises, universities and collaborating organizations to efficiently use resources. It is therefore by definition a way to provision/find new resources to meet the fluctuating demands of the business. So utility computing in my book is not buying computing like power from a service provider. Utility Computing in my book is the infrastructure support to enable the convergence of autonomic, grid and on-demand computing. It is about satisfying the application in real time with the changing requirements on the wire, on the disk, in the socket and on the DIMM.

Where are we heading ? Is this a new paradigm in distributed computing. A model where computing resources, the peripheral fabric and the causality of service composition is created on the fly to satisfy the changing demands. A model where the business rules of the company are dictated by an adaptive resource broker that can allocate/deallocate resources to different services in the organization. A model where the resource allocation is based on network intelligence. The resource ownership is not the issue here. The issue is the flexibility in determining the demands and provisioning the services with the computing container (hardware, operating system, applications, customizations, network/storage fabric) on the fly.

Have we made enough progress to effectively determine the changing demands of the
applications ? Can we efficiently grab/create new resources in real time ? There is still a long way to go. Most of the challenging problems in computer science have been solved using some sort of indirection. This time, for this problem, i for one belive that virtualization is the indirection.

Software industry has been plagued with diversity for good and bad. Big vendors have big ego's and it has taken quite a long time for computer scientists to break the walls so that all kinds of software can interact. The next obstacle is breaking the one service in one *will work for the next 2 years* and *will not need to expand or shrink* box problem. Software running on the box will never be able to grow the box with the changing requirements on its own. Operating Systems are designed to control the hardware. They are not designed to satisfy the fluctuating demands of the service.

The new box has to sit below the old box. The new box has to promise that it will focus on new problems. The new box is not constrained. The new box offers mobility. The new box is not only Systems. The new box is the Application. The new box is Utility Computing.

The new box in town is Virtualization !