Thursday, May 13, 2010

Best practices for Java applications running on VMWare Virtual Machines

Here is a nice article that talks about how to configure memory and virtual CPU allocation in virtual machines running Java applications.
  • Size the VM memory to support Java heap, OS running on the VM and memory to support any other apps running on that VM.
  • Set the memory reservation in the VM to allocate the memory when it starts.
  • Use large memory pages
  • Choose optimum virtual CPUs. Assigning too many vCPUs would be detrimental if there are other VMs contending for the same resources. If you assigned 4 vCPUs for your VM, ESX will wait until it has all 4 vCPUs available everytime your VM requests CPUs. So, fewer the vCPUs may be better.
  • For easier monitoring and load balancing, use one JVM per VM

Sunday, May 2, 2010

Virtualization and Cloud Computing

Virtualization and Cloud computing are the latest IT innovations that are transforming the IT infrastructure in a big way. Pretty much every company I know has embraced virtualization and has implemented it at some level. Considering all the benefits virtualization offers, I am not surprised. No more wasted resources sitting idle in the form of large production, fail-over and backup systems. Virtualization now allows us to utilize the available capacity very efficiently and get most bang for the buck, not to mention ease of provisioning, deployment and maintenance.

On the other hand, Cloud computing is relatively new. We may not realize it, but most of us probably are already using products and services such as Gmail, Google Docs, YouTube, Picasa, Flicker etc built using Cloud Computing techniques. As we keep producing hoards of email, pictures, video and expect these online services to scale automatically to support our needs without any performance degradation and to be available online from anywhere and anytime. Well, that's what the Cloud Platforms promise. Here are some of the promises of Cloud Computing:
  • No Up-front Costs
  • Utility Computing - Pay per Usage
  • Quick and Easy Provisioning
  • Elastic Capacity
  • Dynamic Scalability
  • Improved Business Continuity
  • Easy Disaster Recovery
  • Connect from Anywhere
  • Security
  • Low Maintenance through standardization
  • Resource Metering to Support Pay per Usage
We already have many companies offering cloud computing services to the public. To name a few: Google Apps, Amazon EC, Microsoft Azure, Yahoo, Salesforce, Rackspace, Zoho and many more. You can sign-up for an account with any of these providers and start deploying your web applications in a matter of minutes depending on the nature of your need.

In the future posts, we can look a little more deeper into these topics along with private infrastructure clouds, platform clouds,  application clouds, storage clouds etc.