Virtual reality

Spotlight on: Waratek, the Cloud VM for Java

Elliot Bentley
waratek-logo-teaser

Waratek have spent the last decade quietly working to bring virtualisation to Java. Now they’re ready to “do to the JVM what VMware did to operating systems”.

Java
has a “big problem”, according to John Matthew Holt, CTO and
founder of Waratek. The shift towards increasing virtualisation and
cloud technologies has left it lagging behind competing JVM
languages, he says, and Java needs to be “significantly retooled,
or upgraded, as an architecture, as a language, and as a VM.”

He may have a point – after all, the introduction of cloud features
into EE 7 seem likely to be
pushed back a year
to version 8 due to their complexity. Java
is “not becoming cloud-enabled and cloud-ready quickly enough,” he
says.

Holt’s solution is Waratek Cloud VM for Java, a new type of JVM
able to provide “attributes like multi-tenancy, like elasticity,
like utility computing and control”. However, he emphasises that
Cloud VM for Java is more than just a stopgap while the official
solution lags behind.

“We aim to do to the JVM what VMware did to operating systems,
which actually is not multi-tenancy. Multi-tenancy is a side-effect
of virtualisation, and so is elasticity. There are other features
that virtualisation starts to provide that are not on any roadmap
from any standards body in Java at all.”

He explains further: “the [Waratek Cloud VM] JVM can start one
instance of this JVM, and the JVM can use this virtualisation
engine to create very, very lightweight – what are called Java
virtual containers – running within that JVM.”

The key to Cloud VM is the way that it allows multiple lightweight
‘Java virtual containers’ to be started in each JVM, says Holt. “A
Java virtual container is a lot like a Linux container, or a
hypervisor VM, in the way that it is a virtualised abstraction of
the physical server underneath, and it’s a secure, isolated domain
for the software running within.”

So within a single JVM, it’s possible to run 64 instances of RedHat
JBoss servers, boasts Holt. Or, alternatively, a single JVM could
host “28 Tomcats, 13 Jettys, one Glassfish and four [instances of]
JBoss 7”.

This is achieved by reducing the “bloatware” traditionally
associated with running multiple JVMs, each with their own
concurrent garbage collectors and JIT compilers. Instead, virtual
containers each take up only 400kb of memory, making it far more
efficient.

These virtual containers are also elastic, able to configure memory
allowances based on schedules; overall, Holt claims Cloud VM can
provide “far higher hosting density for Java applications – by any
measures, up to ten times higher”.

Cloud VM’s IaaS
architecture

The company released their first public beta of Cloud VM in June
at the RedHat Summit (available to download from their
site
). Holt said that feedback has been “very exciting, very
positive”.

Waratek as an organisation has existed since 2002, but Holt
describes its previous form as “principally a research project”,
adding: “there were no customers, no prospect of customers. It was
purely a think-tank.”

That said, saved versions of the Waratek website
dating back to 2004
on the Wayback Machine speak of a “grid
computing technology product for J2EE” called Replicode, which a
press officer later told JAXenter was a development name for Cloud
VM.

In 2009, he founded the modern incarnation of Waratek, now based in
Dublin. “We saw Dublin, or Ireland, as the Silicon Valley of
Western Europe,” says Holt. “Just a few blocks from here, we have
the EMEA headquarters of Google, Facebook, Oracle, Yahoo!,
Microsoft, Intel, IBM research laboratories. So Ireland is a bit of
a hub of technical expertise.”

Since Java SE 7 was released after development of Cloud VM began,
the team decided to focus on SE 6 certification for the first
version for a solid grounding. “We’ll release the SE 7 enhancements
with the certification test in the months ahead, more likely in the
beginning of next year,” says Holt.

Besides that, future enhancements will include improvements to
garbage collection and support for Libvirt, Red Hat’s
virtualisation API. “Because our JVM behaves like a hypervisor for
Java, we have developed our own driver for Libvirt,” says Holt. “So
Libvirt can now attach to our JVM and treat our JVM as if it was a
Java hypervisor – starting and stopping virtual containers within
the JVM, just as if they were hypervisor VMs within
hypervisor.”

It may have been a long time coming, but with the release of a
beta, Waratek Cloud VM for Java is finally tangible. Now, the
company has to prove it can deliver on its promises of bringing
virtualisation to Java.

Author
Comments
comments powered by Disqus