A startup has pledged to deliver for Java what the brains of Larry Ellison’s mighty Oracle and the entire Java community cannot: cloud scalability - now.
It also hopes to spread the love to Java-hating sysadmins.
Waratek is planning the general release of its Cloud VM for Java at JavaOne next week. The Cloud VM product is a virtualisation engine built by Waratek to deliver multi-tenancy and elasticity for Java apps. It will also release APIs that let you build for Cloud VM for Java at the event.
Cloud VM introduces Waratek’s substrate layer into the Java container that controls the memory and CPU allocation given to each and every Java app. The idea is to make Java less of a resource hog and easier to manage.
“We have a community of sysadmins who hate Java because they need a guy to develop and to run Java,” Waratek founder and chief technology officer John Matthew Holt told The Reg. “They can’t consolidate and run Java. Each time somebody starts up a Java app, it hogs memory and CPU.”
Holt has also promised to deliver on Java’s founding principle of write once, run anywhere. Cloud VM for Java lets you run your existing app – rather than having to modify or build it to run in the cloud – by using specified API whitelists, such as the Google App Engine API whitelist.
“The industry has to find a binary-compatible solution," Holt said. “The cost is to fracture and fragment Java.”
Cloud VM for Java is a clean-room implementation based on Oracle’s OpenJDK, and has official Java certification – a process overseen by Oracle and the JCP.
Java’s memory and CPU problem are as old as the language itself: take for example the garbage collector used to manage memory and objects used in a process. That has to run with the application, swallowing up memory and CPU cycles, and must be carefully managed.
The problem magnifies if, say, you spin up 10 apps, because you also get 10 JVMs along with 10 JIT compilers and 10 sets of class libraries. You could run one virtual machine per operating system to sidestep this, or perhaps one operating system with 10 VMs, but neither approach is tolerant of financial or physical resources.
The Oracle-led Java community had been working on making Java suited to running in Platform-as-a-Service (PaaS) and multitenant (Salesforce) environments in Java Enterprise Edition (Java EE) 7.0 due the fourth quarter. But because of the sheer scale of the work involved, that’s now been delayed until Java EE 8.0 in 2015.
Cloud VM for Java virtualises the Java app in a secure VM that creates Java virtual containers. Each container acts like a VM hypervisor, by virtualising the physical server in a secure, isolated domain for the application running inside. Holt claims Cloud VM for Java can run 64 instances of RedHat’s Jboss server in a single JVM and can install in less than 400Kb, smaller than a regular email attachment.
Cloud VM for Java runs on Red Hat and CentOS but will be expanded to Debian, SuSE, Ubuntu and Windows over time, Holt said. Waratek consists of 35 people working on the JVM, with various backgrounds including Intel, IBM and academia. ®