Two alternatives to server virtualisation
Friday, 17 July, 2009
You have a server, and it is not busy enough. Understandably, you want more value from your hardware investment. The default answer now -- and a good one, much of the time -- is to virtualise. With virtualisation, you can easily use 80% or more of capacity rather than 10% or less in non-virtualised environments.
But virtualisation is not without its flaws. First, it adds an entirely new tier of infrastructure, with associated staff learning curves. Second, you must license (if you are using Windows) an operating system (OS) for each virtual machine -- which requires money to purchase and maintain, and staff time to track. Finally, using virtual machines is heavy: Each virtual machine (VM) drags along with it the weight of an entire OS instance, and that's a lot of overhead for one application.
There are alternatives to virtualisation
The first alternative is to install multiple applications on a server to keep it busier. Windows systems administrators are used to running one application per server. But system administrators running any Unix variant expect that any given server will be able to support many applications. Sun, IBM and HP offer fine-grain control of server resources to make sure processes get what they need. Windows has made great strides in this in the last decade. For Java, this is just a matter of running more apps inside the application server. For other applications, tools like Librato LoadManager and HP Resource Partitioning Manager can help consolidate workloads without losing control of resource allocation among them.
Virtual OS and virtual applications to the rescue
If, however, you can't run multiple applications on the OS instance -- for reasons of risk, compliance, performance or compatibility -- consider alternatives for partitioning at or above the OS level, rather than below it.
OS virtualisation adds a partitioning layer above the OS that lets each application think it has its own copy of the OS. By isolating the apps from seeing one another, OS partitions prevent the applications that don't play nicely together from interfering with one another. Parallels Virtuozzo and Solaris Containers are good examples of this option.
Another option is to use application virtualisation, which works in one of two ways: streaming or containerisation. A streamed virtual application works by pulling an executable over block by block, as needed. This mode of virtualisation doesn't help resolve resource conflicts, since as far as the OS is concerned the streamed app is just another app.
A containerised application works more like an OS partition. Each virtualised application is installed in a software envelope that keeps the application from interacting directly with the OS. Likewise, it keeps applications from interfering directly with one another. This form of virtualisation can smooth over versioning differences, allowing the same system to run multiple versions of the same application, or an application written for an older version of the OS to run on the current version. Citrix XenApp offers this mode of virtualisation. Because it works at a higher level of abstraction (above the OS), it is, in turn, lighter-weight than partitioning the OS and so can be expected to have a lower performance overhead.
Using lean OS images with virtualised servers
If you do decide to virtualise servers in order to boost resource utilisation, at least lighten the load by building lean OS images. A lighter-weight OS means more VMs per host and more real work accomplished by the 80% utilisation on that host. This is something you can do by hand or with the aid of tools like FastScale (which claims to be able to strip a Linux system down to about one-tenth the size it would be by default, or a Windows system to about half its normal size).
Getting more work out of your hardware investment is always a worthwhile goal. Virtualisation is a good way to achieve it, but not the only one. Explore your options before charting your course.
It's out with chatbots, in with empathetic AI concierges
Despite not always living up to customer expectations, chatbots have laid the foundation for more...
Safeguarding Australia's global resiliency
There are three essential steps to design applications for maximum resiliency.
Staying ahead: business resilience in the hybrid cloud era
The rise of cloud computing and advancements in virtualisation have revolutionised how businesses...