Waratek's 'JVM manifesto' sets out features needed to retrofit Java runtime for the cloud

Page created by Wesley Mitchell
 
CONTINUE READING
Waratek's 'JVM manifesto' sets out
       features needed to retrofit Java
            runtime for the cloud
Analyst: John Abbott
18 Apr, 2013

Waratek, the Dublin-based software house that's focused on tuning up Java for multi-tenancy
operation, has been talking about its wider plans for the language and its runtime environment,
the Java Virtual Machine. The company has compiled a 10-point JVM Manifesto of features that it
believes are essential to update Java for as-a-service use cases, including cloud platforms from
service providers or from enterprises looking to leverage their existing Java applications in both
private, public and hybrid cloud scenarios. And since we last spoke to the company in October
2012, Waratek has also launched a new product – Elasticat for Apache Tomcat – and announced
a new partnerships with Java analysis-tool vendor JClarity.

   The 451 Take

   The Java runtime environment is separate from the language itself, and over the years, it has
   accumulated an unequaled set of libraries from multiple commercial and open source
   contributors. Other languages, including Ruby and Python, are now being plugged into the
   JVM. So while new languages are emerging and gaining popularity, the JVM could keep its
   relevance for many years to come. So it's even more essential that the runtime itself be
   updated to reflect the requirements of cloud computing. If that can't be done at Oracle or
   through the standards initiatives, then independent vendors such as Waratek are likely to
   take up the challenge. The promise of live migration for JVMs as a lightweight alternative to
   VMotion is particularly intriguing.

Copyright 2013 - The 451 Group                                                                       1
Context

Waratek, which began life in Australia back in 2004, has three primary targets as customers for its
Cloud VM for Java product, a multi-tenant JVM. They are: large enterprises running lots of Java
applications (such as JBoss, Tomcat, Oracle's WebLogic and IBM's WebSphere); service providers,
which require more density, elasticity and control over their infrastructure; and SaaS ISVs that
might integrate and embed the technology to make their offerings more competitive. The primary
advantages it pushes are application density, scalability and elasticity, the benefits of virtualization
and isolation, and reduced licensing costs, which combined can provide between five- and 10-times
cost savings over alternatives, the company claims.

Details

We have discussed the technology behind Waratek's Cloud VM for Java in some detail, but
essentially it's a multi-tenant virtual container architecture built inside the JVM itself. That means a
single JVM can host multiple Java applications. For instance, up to 64 instances of the JBoss
application server can be run on a single JVM, or older Java applications can be run alongside newer
ones.

In fact, it's virtualization for the JVM, and like server virtualization, it makes better use of typically
underutilized resources, adding elasticity and highly granular isolation while cutting down on
resource overheads. And because everything is written in Java, it's all extensible, so that containers
can be tailored and optimized for specific applications. Now Waratek has issued its JVM Manifesto,
which serves as something of a road map for the technology. In fact, of the 10 points on the list, it's
already covered seven of them. Let's look at those first before getting onto the three new items.

❍   First and foremost, as we've already pointed out, is multi-tenancy. Running up to 64 Java
    workloads on top of a single JVM will require much less memory and compute resources than
    setting up and running the same number of distinct JVMs, each with their own OS infrastructure,
    compiler and garbage collection overheads.

❍   Second is elasticity, a property that comes out of the increased granularity of the containers.
    Resource allocation can be done in real time, whereas applications on traditional JVMs have to be
    allocated a fixed, dedicated resource with enough overhead for emergencies. That can free up
    even more memory.

Copyright 2013 - The 451 Group                                                                               2
❍   Third is isolation, so that applications that crash or try to hog all of the resources can't affect the
    others.

❍   Fourth is resource control, where the configuration of CPU priorities, memory limits and bandwidth
    quotas (among other criteria) can be set so that applications can get access to resources when
    they need them.

❍   Fine-grained metering is number five, measuring application usage in GHz/hour for CPU resource
    usage and GB/h for application memory usage, which could be used as the basis for chargeback
    by application.

❍   Six is virtualized application platforms, where servlet containers are preconfigured with an
    off-the-shelf application platform such as Apache Tomcat, JBoss or WebLogic, increasing the
    number of applications that can be run per server. Waratek's new Elasticat product for Tomcat is
    the first example. Tomcat applications gain all the attributes outlined above with no code changes,
    and can also be uploaded onto Amazon Web Services for instant 'cloud enablement.'

❍   Finally, in the already covered section, is an open API. The Java Virtualization Interface provided
    by Waratek is intended for developers that want to build custom JVM profiles and custom
    virtualization features for their own apps.

Roadmap

Three items on the list haven't yet made it into Waratek's feature/product lineup. They are an
indication both of the company's future direction and more generally of the kind of features Java
application users might be looking for over the longer term.

Live-sleep/ live hibernate is an intriguing new take on turning off resources when they aren't being
used. That concept hasn't been widely taken up at the server level, despite being offered as a
feature by a number of power management software houses. Datacenter operators simply don't
believe it can be done without compromising availability and performance. But could it be done at
the JVM level? The idea is to send live server applications running within the JVM to sleep without
losing memory state. That would compress live server applications down to a zero memory
footprint until they were required, on demand. Waratek believes they could be resumed
instantaneously. The benefit would depend on how heavily the application portfolio is being used,
but it's not uncommon for up to 70% of applications on a system to be idle at any one time.

Copyright 2013 - The 451 Group                                                                                3
A related feature to this is next on the list: live migration. We're talking here about 'JMotion,' or the
ability to live-migrate workloads in the manner of VMware's VMotion, one of the most compelling
features of virtualization to emerge over the past five years. Virtualized Java applications could be
moved from one server to another with preserved memory and execution state. But the key
difference is the ultra lightweight nature of this approach, which doesn't require the whole
operating system to be moved along with the workload, as vMotion does. All that is moved is the
Java Virtual Container, neither the OS nor the JVM needs to be transferred across. VMotion can't
really be considered 'live' migration at all, due to the time taken to move large workloads from one
location to another. JMotion could be close to instantaneous. We believe that this feature could turn
out to be a winner with Java ISVs that are looking to extend their products into the cloud.

The final new item on the list is Java Virtual Appliances, the ability to package complex software
stacks by assembling everything as a turnkey virtual appliance, the equivalent of the OVF open
virtual format The advantages here are the avoidance of 'jar-file hell' conflicts, the simplification of
installation and configuration, and lower maintenance costs.

Waratek isn't saying when these features will make it into their product lineup. But one addition
that will be integrated into the next generation of CloudVM for Java will be analysis tools derived
from new partner JClarity. The first of JClarity's tools, Censum, was launched at the end of last year
and helps customers locate and fix performance problems associated with Java's garbage-collection
mechanism, a major cause of system delays.

Competition

We haven't found a direct equivalent to what Waratek is doing, but it's clearly on the mind of the
Java community, including Java custodian Oracle, which is promising multi-tenancy features for Java
EE 8 and SE 9 – although that's not due until some time in 2015, so far as we can tell. In its
pre-Oracle days, Sun Microsystems was addressing multitasking virtual machine issues through
Project Barcelona.

IBM has spoken at conferences about extending its J9 JVM to host multiple applications. The Athena
Framework supports native multi-tenancy, and the Java Runtime Environment White List details
specific Java language features and classes that can be safely used in multi-tenant deployments.
Other ongoing efforts within the Java Community Process include JSR 121 (application isolation) and
JSR 284 (resource consumption management).

Java-related PaaS cloud application engines on the market include Google App Engine, Amazon Web

Copyright 2013 - The 451 Group                                                                              4
Services' Elastic Beanstalk, CloudBees Platform Architecture, the Jelastic Java Cloud Platform and
WSO2's Stratos, though these all approach the multi-tenancy problem in their own individual way.
Other small companies focused on extending the Java platform for cloud and addressing
performance and scalability problems include Azul Systems (optimized Java collection and support
for large heap sizes), Hazelcast (clustering and distributed caching) and ZeroTurnaround
(coding-efficiency tools).

SWOT Analysis

 Strengths                                                   Weaknesses
 Waratek currently has some unique technology and            Establishing standards in the Java world – mainly
 addresses a clear pain point in the Java world without      through the Java Community Process – has always
 requiring any changes to the application code. It           been something of a long and arduous process.
 applies to languages other than Java, including Ruby        Waratek will need partnerships and community
 and Python.                                                 support to push it through.
 Opportunities                                               Threats
 There's a huge installed base of Java applications – it's   Oracle owns Java and talks about its own
 still the most important enterprise and e-commerce          approaches to multi-tenancy at the OS and
 language, in use at 80% of the top corporations. The        middleware (WebLogic) layers. It's unclear at this
 Java platform needs to be extended toward the cloud         stage whether Oracle will turn out to be a partner
 to remain relevant.                                         or competitor to Waratek.

Copyright 2013 - The 451 Group                                                                                    5
Reproduced by permission of The 451 Group; © 2013. This report was originally published within 451
 Research’s Market Insight Service. For additional information on 451 Research or to apply for trial access, go
 to: www.451research.com

Copyright 2013 - The 451 Group                                                                                    6
You can also read