My VMworld 2012 Sessions Covering Java

Image

Speaker Biography: Emad Benjamin has been in the IT industry for the past twenty years. He graduated with a Bachelor of Electrical Engineering from the University of Wollongong. Earlier in his career, he was a C++ software engineer, then in 1997, he switched to programming with Java, and has been focusing on Java ever since. For the past seven years, his focus has been Java on VMware vSphere, vFabric GemFire and SQLFire. Emad has been at VMware since 2005, and is the author of the Enterprise Java Applications Architecture on VMware book.

Middleware virtualization has three key trends that we are observing with our customer base: 1) Consolidation, 2) Elasticity and Flexibility, and 3) Performance.  In this blog, we examine each one of these trends briefly and invite you to come along for technical deep dive at this year’s VMworld session APP-CAP1426 – The Benefits of Virtualization for Middleware to be presented in both San Francisco and Barcelona.

Consolidation

Many of our customers find that their middleware deployments have proliferated and are becoming an administrative challenge associated with higher costs.  We see a trend across customers who look to virtualization as a way of reducing the number of server instances.  At the same time, customers are taking the consolidation opportunity to rationalize the number of middleware components needed to service a particular load.  Middleware components most commonly run within a Java Virtual Machine (JVM) with an observed scale of 100 to 1000s of JVM instances and provide many opportunities for JVM instance consolidation.  Hence, middleware virtualization provides an opportunity to consolidate twice – once to consolidate server instances, and, secondly, to consolidate JVM instances.  This trend is far-reaching, because every IT shop on the planet is considering the cost savings of consolidation.

One customer in the hospitality sector went through the process of consolidating their server footprint and at the same time consolidated many smaller JVMs that were less than 1GB heap.  They consolidated many of these smaller 1GB JVMs into 2 categories, those that were 4GB, and others that were 6GB.  They performed the consolidation in such manner that the net total amount of RAM available to the application was equal to the original amount of RAM, but with fewer JVM instances.  They did all of this while improving performance and maintaining good SLAs.  They also reduced the cost of administration considerably due to the reduced number of JVM instances they had to manage, and refined environment that helped easily achieve SLA.

Another customer, in the insurance industry, was able to achieve the same as the above customer, but additionally was able to over-commit CPU in development and QA environments in order to save on third party software license costs.

On the other hand, sometimes we come across customers that have a legitimate business requirement to maintain one JVM for an application, and/or one JVM per a line of business.  In these cases, you cannot really consolidate the JVM instances, as that would cause intermixing of the lifecycle of one application from one line of business with another.  However, while such customers don’t benefit from eliminating additional JVM instances through JVM consolidation, they do benefit from more fully utilizing the available compute resource on the server hardware, that otherwise would have been underutilized in a non virtualized environment

 

Elasticity and Flexibility

It is increasingly common to find applications with seasonal demands. For example, many of our customers run various marketing campaigns that drive seasonal traffic towards their application.  With VMware, you can handle this kind of traffic burst, by automatically provisioning new virtual machines and middleware components when needed, and then automatically tear down these VMs when the load subsides.

In addition, the ability to change updating/patching hardware without causing outage is paramount for middleware that supports the cloud era scale and uptime.  VMware VMotion gives you the ability to move VMs around without needing to stop applicators and or the VM.  This flexibility alone makes virtualization of middleware worthwhile when managing large-scale middleware deployments. One customer in the financial space, handling millions of transactions per day, used VMotion quite often to schedule their hardware upgrades without any time downtime.  What otherwise would be a costly scheduled downtime to their business.

Performance

Customers often report improved middleware platform performance when virtualizing. Performance improvements are partly due to the updated hardware that customers will typically refresh during a virtualization project. There is also some performance improvement due to the robust VMware hypervisor.  A recent customer that reported a great level of performance provided the following testimony

With our OrderExpress project we upgraded our Middleware Services, Commerce, Portal, WCM, Service Layer, DB2 Database; migrated from AIX to Linux; virtualized on VMware; moved the application into a three-tier DMZ; increased our transactions by over 150 percent; and added significant new capabilities that greatly improved the customer experience. Changing such a wide range of technology components at once was a huge challenge. However using VMware vSphere and additional architectural changes we were successful in improving performance by over 300 percent; lowered costs in the millions; improved security, availability, and scalability; and how we plan to continue evolving this application to maintain greater than 30 percent yearly growth.”

– Jeff Battisti, Senior Enterprise Architect at Cardinal Health

In this session, I will show some actual JVM and VM sizes for middleware components both small and large JVMs.  I see the sizing question as the most commonly asked question with our customer base and hence, I plan to focus on it during the session.  Here is an example of a 4GB JVM with 5GB reservation:.

 

The second most common question is about GC tuning, now while GC behavior doesn’t change when virtualizing, it is something that our customers have asked us about and we have greatly assisted them in tuning for more optimal GC cycle.  I will show actual CMS and ParNewGC combination form an actual example:

I trust that by the end of this session you will be well equipped to tackle sizing, best practices, and JVM tuning.  In fact the answer to the below question will become apparent at the end of this session, which is, “Given 4vCPUs to configure with which below configuration will yield the best performance and scalability?”

Thank you for reading!

Here are my VMworld sessions for this year

APP-BCA1247- Virtualizing Large Scale Java Apps at Cardinal Health (Tuesday, Aug 28, 2:00 PM Room 3009/3011)

APP-CAP1426 – The Benefits of Virtualization for Middleware (Thursday, Aug 30, 10:30 AM Room 3010/3012)

I plan to extend the talks this year into a deeper dive about how to size JVMs and VMs for small, medium, and large-scale deployments.  I will also have a section on Java garbage collection tuning.

See you there!

Emad Benjamin.

Advertisements

VMJava Launch

This site is dedicated for all things concerning running Java workloads in a VMware environment.  Posts to follow will discuss various Java tuning techniques pertaining to physical environments and that are equally applicable to Virtualized Java workloads.

I finally had time to put this page together after finishing the work on the book that I have just released.  The book is entitled Enterprise Java Applications Architecture on VMware, and can be obtained (internationally) from createspace: https://www.createspace.com/3632131

I wanted to take this opportunity to thank Steve Jin (Author of VI Java API) for his blog on my book, here

 

The book contains the following chapters:
Chapter 1: Introduction
Chapter 2: Why Virtualize Enterprise Java Applications?
Chapter 3: Enterprise Java Applications on VMware
Chapter 4: Design and Sizing of Enterprise Java on VMware
Chapter 5: High-availability Designs of Enterprise Java
Chapter 6: Enterprise Java on VMware Best Practices
Chapter 7: UNIX-to-Linux Migration Considerations
Chapter 8: Run Effectively in Production
Chapter 9: Performance Study
Chapter 10: Application Modernization and vFabric
Chapter 11: Troubleshooting Primer
Chapter 12: FAQ—Enterprise Java Applications on vSphere