Hot on the heels of their announcement that they are open-sourcing key parts of their software technology stack as part of the Managed Runtime Initiative, Azul Systems has announced their upcoming fourth generation product, Zing, a Virtualisation system for Java. Zing comprises a software-only port of Azul Systems' entire technology stack optimised for the x86 platform, and has the same capabilities as Azul's Vega-based solutions. It shares some components that have been open-sourced as part of the Managed Runtime Initiative.
Zing uses Virtualisation as a way of bypassing the limitations of the current generation of Operating Systems. This contrasts with the approach taken by the Managed Runtime Initiative, which aims to deliver enhanced interfaces across the entire system stack, including the Operating System; an effort that is likely to take several years. The Managed Runtime Initiative will doubtless have some advantages in terms of performance and scalability, but Zing can be delivered now, without having to wait for Operating System vendors to catch up.
The Zing platform comprises four main components:
- The Zing Virtual Machine
- Zing Virtual Appliances
- The Zing Resource Controller
- Zing Vision
Core to how the product works is what Azul describe as virtualising the JVM itself, something they have been doing with their Vega platform for around five years. Azul offers a JDK for a wide range of Operating Systems including Linux, zLinux, AIX, Solaris, HP-UX, and Windows. Vice President of Technology and CTO for Azul Systems, Gil Tene, told InfoQ
When you execute our JDK what you have actually executed is a thin virtualisation proxy that pushes the actual solution, the actual Java stack, away from your Operating System and into a better execution stack. In the case of Vega that better execution stack was our own custom appliances. In the case of Zing that is a virtual execution stack running as a virtual appliance on x86.
The Virtual Execution Stack - the Zing Virtual Appliances - can be run on either RedHat's KVM or VMWare's vSphere Hypervisor products. According to Azul, Zing's runtime is able to scale very smoothly over a wide range, limited only by the hypervisor that surrounds the virtual appliances. So for example, on VMWare's vSphere the technical limitation at the time of writing is 8 x86 cores and 256GB memory per virtual appliance instance (and therefore per JVM). On KVM the figures are double that for each metric - 16 x86 cores and 0.5TB of memory. Both of these figures are likely to have improved by the time Zing reaches General Availability later this year.
Rounding out the product offering are two management components - Zing Resource Controller and Zing Vision. Zing Resource Controller is the system administrator tool and is designed to give a high level view of the entire Java application infrastructure. Zing Vision offers zero overhead production visibility of running Java applications. As such, when a problem occurs in production, Zing Vision provides a means of getting real information out of an application in distress without exacerbating the underlying problem. This capability has been available through Vega for around two years. Originally built as a tool for gathering statistics on running systems to guide future developments of the Azul technology stack, Tene explained that key to the way Zing Vision works is that it uses statistical information that is already available from processing occurring within the JRE. For example a JIT compiler, in order to know how to correctly optimise code, what to inline and which way to assume a branch will go, will collect information such as tick counters and hotspots about a running program. Similarly, the Garbage Collector traverses every object in memory in every cycle; it gets class instance counts, what classes are pointing to what other classes and lots of other information that is generally thrown away once the GC cycle is complete. By collecting this information Zing Vision is able to achieve its real-time profiling without adding any performance overhead (which can occur if other techniques like byte code instrumentation are used), meaning that it can be used even in production systems.
The announcement of Zing offers something of a change of direction for Azul Systems, shifting from hardware to software, as the commodity hardware players are catching up with what Azul can currently do. Tene told us that he suspects within five years Azul will no longer be selling dedicated hardware
It may sound strange but the way we've always looked at what we do at Azul is that we build a solution for Java runtime stacks, and we'll build whatever it takes to do that. For the first three generations of products we built chips to do that. And every time we looked at those chips and we designed them we asked the question, "Can we find something else that can power our solution?" and for the first three generations the answer was, "No; there are no parts to buy, there are no systems to build this on, we have to do our own". When it came to designing our fourth generation with Zing, we looked at the roadmaps from Intel and AMD and we were very happy to see that with Nehalem-EX and now Magny-Cours from AMD we will be able to run the workload that we want on off-the-shelf servers
At present Nehalem-EX systems, such as the eight-core Xeon X7560, can overlap with the smaller two configuration options for Azul's Vega-based systems - around 60%-70% of all the systems Azul sells according to Tene. He expects that by the end of 2011 x86 systems will have the same sort of capacities as Vega has now. As such Azul will not be building a Vega 4 chip, though it expects to be shipping a considerable number of Vega-based systems over the next 2-3 years.