Souped Up Java with Azul: Part I
Azul's answer to the challenges of Java application deployment is a "plug and play" compute appliance called Vega 3. This box contains all the "secret sauce" behind Azul's high performance Java solutions, says Sellers. When a company puts the Azul box inside their datacenter, it gives Java applications a huge advantage compared to those running on a general-purpose servers. Sellers explains, "What's inside the box is a combination of really innovative microprocessors as well as a tremendous amount of software technology that solves the limitations of Java on off-the-shelf platforms. What's neat about it, is that we're able to take Java applications, unmodified, from any and all existing operating environments (Solaris, Linux, AIX, HP UX, even zLinux) and we can transparently offload Java applications from those legacy operating environments onto our compute appliances." That's when Azul's appliance can work its performance and scalability magic. The box also delivers a hardware infrastructure that is inherently virtualized and much easier to manage. Sellers says that Azul's management tools make Java applications running on the Vega 3 appliance highly visible as opposed to the black box nature of todays JVMs.
But what if you run all of your applications on a public cloud? Sellers says in this case they would sell to the cloud provider and he says that Azul is already working with a number of them. He says that using the Azul appliances saves money on more than just infrastructure. It saves on power, cooling, and management. "Instead of buying ten or twenty servers, you can buy one of our appliances," said Sellers.
Today, Java shops can buy high-capacity servers for relatively low prices, but Sellers says that a given JVM instance can only tap into a tiny fraction of that memory. "The way that Java applications work today is a bit of a two-edged sword. When you get to the deployment side, this is when many of the problems associated with Java are seen," said Sellers. "For example, it's pretty much a given that when you're running on an off-the-shelf server, and you're trying to run a memory heap size that's beyond a couple of gigabytes, inevitably that application will get hammered by the internal garbage collection process of the Java runtime. Basically this means that at an architectural level, you have to architect your application to make sure that you never have any Java instances that are beyond 1-2 gigabytes in size."
There's a terrible disconnect between the capabilities of the hardware and what's possible given the limitations of the Java runtime. On general application servers, an application usually needs to grow its memory footprint. This might be because you need more state information to be held in the JRT for more users or you need to cache more information because, Sellers says, in today's three-tiered architectures you want to minimize accesses to the database. Sellers said that everyone today is faced with this limitation of a couple of gigabytes for each Java application instance.
With Azul's appliance, Sellers says this isn't a problem. "We have customers that are running 300 to 400GB single-instance heaps, with worst case pause times measured in the tens-of-milliseconds," said Sellers. "That's literally three orders of magnitude better than any other JVM or hardware platform." Sellers made a reference to the movie Spinal Tap, saying, "you plug in Azul, you turn it up to 11, you let it take as many requests as it possibly can, it'll grow into as much memory as you need, and it won't skip a beat in terms of the response time."
Sellers also mentions that there's traditionally a lot of tuning required to get Java applications working. "Whether it's in banking, insurance, or web portals, customers will be spending months and months tuning all the 35+ different flags you can tune with a JVM just to get the darn thing to work somewhat reliably and consistently." With Azul's Vega 3, customers can skip the months of tuning and get their deployments out the door quicker. They just specify the beginning heap size setting and run the JVM, that's it.
In the second part of this interview, Scott Sellers talks shares his thoughts on the possible impact of the Oracle acquisition on the Hot Spot JVM , (which is the JVM that Azul enhances), and the possibility of running JVMs natively on hypervisors.