Recently I had the opportunity to speak with representatives of Evergrid, a company that focuses on how to apply high performance/grid computing techniques in enterprise computing environments. Since I've spoken to many companies attempting to deploy open source tools, such as Beowulf or Grid Engine, in commercial data centers, I was prepared to be very skeptical.
Most high performance/Grid computing products require organizations to either segment applications into functions or services that can execute on separate machines (sometimes called "decomposing") or partition data into independent units that can be processed separately. Since organizations are unlikely to touch existing applications because this sort of thing violates one of the Golden Rules of IT, this technology has been a hard sell to commercial organizations.
What are the Golden Rules of IT, you say? Here's a quick list:
- If it is not broken, do not fix it.
- Don't touch it; you'll probably break it.
- If you do touch it and break it, it will likely take longer to fix than you expect, cost more to fix than you thought and you may be forced to bring people back from retirement or hire an expensive consultant if a mainframe is involved in some way. So, see Rule Number 2 before touching anything.
- Good enough is good enough. If you strive for excellence then by the time you get there the organization's requirements will have changed and what you built probably won't be needed anymore. In this case you'll be seen as someone who wastes the organization's limited supply of money and not as a visionary.
- Do not touch anything until people are screaming. If they're NOT screaming, see Rule Number 4 and stop. If they ARE screaming see both Rule Number 2 and Rule Number 3.
I had to put my skeptical analyst position aside during my conversation with Evergrid. The company's product portfolio (Evergrid Availability Servces, Evergrid Resource Manager and Evergrid Cluster Availability Management Suite) comes at virtual processing from a perspective that I've only seen once before. A company called Softricity created a product called Softgrid based upon the same approach. The idea is so powerful, that Microsoft acquired Softricity and appears to be incorporating the technology into many of its virtualization products.
What's this unique idea? It's simple to say but, very difficult to implement. The simple idea is to insert a layer between the operating system and all applications, application frameworks, development tools, data management products and even other clustering products.
This means that each and every call to the operating system, regardless of the purpose can be examined and re-directed if necessary. Applications no longer have to be changed to create a Grid computing environment! It would even be possible for the same application to be loaded on several machines and the user interface portion of the application would always run on one machine, the application processing on another, the data management layer run on a third machine and all storage management functions could run on a fourth. It would also be possible for common routines from many instances of a program to only exist once on the network for more optimal use of system resource.
The ramifications of this idea are both broad and deep. I intend to explore this future in future posts.
If your organization could adopt Grid computing techniques for improved performance and higher application availability without restructuring applications, would you be more likely to create and deploy a Grid?