As IT finds itself slowly but irresistibly sucked into the virtualization phenomenon, vendors of application servers have begun to participate in the new trend. Perhaps the most aggressive and innovative of these vendors has been BEA, a company that has always prided itself on being an early adopter of new standards and technologies.
Several years ago, BEA began research into the feasibility and benefits of running its JRockit Java VM directly on the virtualization platform, or hypervisor, rather than relying on intermediate operating systems. At the time, this effort was intended as a performance boost. By eliminating the operating system, the Java VM could communicate directly with the server VM about key activities such as thread scheduling. The version of JRockit that resulted from this research was called BEA LiquidVM, and although it was not released as a separate product by BEA, it forms the basis of a virtualized appliance that runs the company’s flagship WebLogic application server. This appliance, known as BEA WebLogic Server Virtual Edition (VE), delivers interesting innovation, but awaits the arrival of a central management system before it is ready for deployment in production environments.
Inside the appliance
The concept of virtual appliances might need some explanation. Appliances consist of a stack of software that runs on top of a virtual machine. What makes it an appliance is that the layers of the stack have been wired together beforehand and properly configured so that users simply install the stack as a single product and use it without additional configuration. It’s a turnkey implementation. VMware, the market leader in virtualization, offers an online directory of virtual appliances. Many of the entries there are free, as they capitalize on the wealth of open source software to create useful stacks. For example, you can find an appliance called OpenBSD MailServer, which integrates the OpenBSD operating system, a mail server, a spam filtering package, and a Web server interface, all preconfigured and ready to run. The virtual appliance model will surely become more common in IT; in fact, I expect it will soon be the default delivery vehicle for packages. BEA might well be the vendor that first familiarizes IT sites with this approach.
The VE appliance includes the WebLogic 9.2 Server Premium Edition, the LiquidVM, and a thin interface shim that operates between the JVM and the VM. In this case, the VM must run on VMware ESX Server. (Demo versions are available for VMware Workstation.) The shim layer between the JVM and the VM is where the magic occurs – it’s the stand-in for what is usually the operating system layer. And while it replaces key functions, it does not include a file system – that is, not one that is accessible by the layers above the JVM. Consequently, all files used by the app server must reside on a remote device, such as a NAS or SAN.
This design means that disk I/O will be somewhat slower than if the accessed files were local to the app server. However, it provides a crucial advantage: The appliance remains fairly small in size and is easily migrated from system to system. This last point is central to understanding the value of the product, as I explain in the next section.
What’s it for?
The WebLogic Virtual Edition is not a performance play, even if that was part of the original inspiration. Benchmarks show that it appears exactly where you’d expect: in the narrow range between the slower virtualization with a full operating system and the faster native binaries running without virtualization. As virtualization performance has improved (due in good part to virtualization-specific optimizations in the processor), the differential between virtualized and native performance has continued to shrink. So, the small lift this product provides inside that narrow performance differential between the two platforms is not the main goal.
Rather, effective management is. The obvious management benefit is deployment and provisioning. No longer do you have to spend days loading up a Java app server and configuring it for the hardware it runs on. Now, the server comes preconfigured and ready to run. The second benefit is that as an appliance, VE can be moved around easily. It can be stopped and migrated to another system for maintenance on the underlying hardware, for system upgrades, and especially for load-balancing purposes. This last usage is the one contemplated by BEA. A site would have multiple instances running on different machines. These could be started up as needed, then migrated across hardware platforms as requirements, loads, and resources dictate.
To this end, the company is working on a release of its Liquid Operations Control (LOC) that enables visual management and administration of a VE instance as a mobile, deployable asset. Currently in beta, the LOC console will make it easy to manage many VE appliances at large sites.
A final management benefit occurs at the hardware level: The LiquidVM requires less memory than an OS-based VM implementation. The reason is that the JVM knows how much memory it needs. It also can release memory back to the system when it’s no longer needed. In comparison, operating systems run numerous extraneous services that consume RAM, and they frequently have to allocate large memory blocks (especially in the case of Windows) reserved in the event of a sudden spike in processing load. This reserved space remains mostly unused and unavailable to other applications. Because VE does not do this, more instances of the appliance can share a server, resulting in better use of the hardware.
Impressions from the lab
I examined a shipping version of VE and found it to be somewhat uneven. Installation was hampered by insufficient documentation, and I had to make use of the tech support staff at my disposal for simple provisioning – exactly the opposite of the expected experience. Ultimately, I got VE running satisfactorily. The server is in all key regards the native version you’d get from BEA, and the VE administration console looks like that of the regular WebLogic product. However, VE is currently stuck at release 9.2, whereas the flagship version of WebLogic for native systems is at release 10.3. VE does cost slightly less than its native version counterpart. Presumably the idea is to encourage adoption of multiple instances because of the management and operational benefits mentioned previously.
The biggest drawback by a wide margin, however, is the lack of a console to manage these VE instances. Right now, all deployment has to be done using command-line arguments. Because this console is the principal tool for deriving benefits from VE, its absence is a serious drawback, limiting sites to doing no more than kick the tires on VE until the management software is ready.
In our product reviews, we normally include a report card that grades the salient product features. However, when key parts of a package have yet to ship and the product is a one-of-a-kind item, fair ratings are nearly impossible to compute. As a result, we have opted to include a list of features and the respective pros and cons that relate to VE as it ships today.
As can be seen from the table and my foregoing discussion, sites considering evaluating VE should, in my opinion, wait until the LOC ships in the first quarter of 2008. By that time, BEA might also have a more recent version of WebLogic available.