Skip to main content

Clustering's new alternative

Posted by johnreynolds on April 14, 2005 at 5:44 PM PDT

The current approach for scaling J2EE applications is to
cluster application servers. Some really good work has been done
and clustering has improved to the point where it's a basic
commodity. Even “free” products such as JBoss and JOnAS
offer complete solutions that include clustered caches to keep
servers in sync. The process of setting up and deploying applications
across J2EE clusters isn't standardized across vendors, but we really
don't mind mastering the details.

“JVM appliance”
is a totally different approach at
dealing with JVM scalability: . Azul replaces the JVM on a server
with a proxy that redirects processing to a specialized grid of “JVM
tuned” processors. As the processing and memory needs of the
system increase, you add processors and memory to the “JVM
appliance”. The application is completely ignorant that the
“JVM appliance” exists, so presumably the application's
design can ignore many scalability issues.

Azul's “appliance” approach to JVM scalability is
intriguing, but what leaps out at me is the realization that we may
be in for another big shift in how we write and deploy applications. With Azul's approach and technologies
on the horizon such as Sun's
Multi-Tasking Virtual Machine
, 10
Gigabit Ethernet
, Computational
, et cetera, it seems pretty likely (to me) that our notions of how to scale an application are going to have to change

Take this prediction with a huge grain of salt:

In the future we will
design applications as if they were executing on a machine with
unlimited CPU power and unlimited memory... Tools will figure out how
to map those designs onto the reality of the available network

Hardware constraints and network latency are never going away, but
they are guaranteed to change. Automating the task of porting an
application from a single “virtual machine” to a network
of servers (or a grid of processing units) is not fantasy... science
fiction maybe, but no laws of physics are violated. It is going to
happen some day

Building on David
Rupp's blog entry
on teamwork between humans and computers, I
envision an environment where “the computer” comes up
with options, and humans use insight and experience to make the right
choice. Picture the dialog that you have today with your peers when
mapping business requirements on to your company's IT
infrastructure... Can't you envision an expert system taking part in
that conversation?