Nati Shalom recently wrote The Missing Piece in Cloud Computing: Middleware Virtualization. In this blog, Nati talks about the role middleware should play in making it simple to build applications to run on the cloud and he introduces the concept of virtual middleware.
Last week, I came across Mitchell Ashley's Virtualization Predictions Forrester Forgot on Network World. This particular one caught my attention:
Virtualization's Real Test: High Performance, Mission Critical Applications
To be more than a server consolidation technology, virtualization must cross the barrier and run high volume, mission critical production systems. We'll know virtualization has truly arrived in full force when payment processing systems, content streaming, claims processing and other business critical systems are running as virtualized applications.
The reason it caught my attention was that these are exactly the kinds of applications that our customers use GigaSpaces for, and even more demanding apps, such as automated trading, virtual switching and online gaming. Then I see this ComputerWorld piece about the New York Stock Exchange, a GigaSpaces customer. In it, the reporter interviews NYSE CIO Steve Rubinow and writes:
One technology that the NYSE isn't adopting so eagerly is server virtualization, which comes with a system latency price that Rubinow said he can't afford to pay. In a system that is processing hundreds of thousands of transactions per second, virtualization produces "a noticeable overhead" that can slow down throughput, according to Rubinow. "Virtualization is not a free technology from a latency perspective, so we don't use it in the core of what we do," he said.
Charles King, an analyst at Pund-IT Inc. in Hayward, Calif., believes there is a broader concern among IT managers about virtualization overhead and its impact on transaction processing.
What we're seeing here is the need to take virtualization to the next level. OS and server virtualization a-la hypervisors (VMWare, Xen, etc.) only address a narrow definition of virtualization: making one computer behave as many. Under this narrow definition, grid and other distributed computing technologies can be viewed as "reverse-virtualiztion": making many computers behave as one.
We need a broader definition of virtualization, and that is the complete de-coupling of the logical components of an application (represented by the components of the software stack) and the physical resources. In the case of middleware, whether it is data access, messaging or the business logic, the physical location of the resources should not matter to the developer and to the end user. This is not a trivial thing to do, especially when it comes to data-intensive, stateful (transactional or otherwise) applications and services.
Nati explains how GigaSpaces lets you achieve this with middleware virtualization.