Must all apps be virtualisation-aware for the cloud?

On the face of it, reluctance to virtualise certain applications could conflict with a shift to cloud computing, says Lori MacVittie

Some people argue there are still some applications that should not run on virtualised servers, but that assertion is surprising given the shift to the cloud, says Lori MacVittie.

Two trends are taking place that appear to be at odds with each other. On the one hand, interrelated approaches, including virtualisation and cloud-enabled services, are driving the shift towards organisations owning less hardware, as set out in a briefing note from analyst firm Gartner.

On the other hand, the adoption of virtualisation, though widespread, still accounts for less than 40 percent of all servers in datacentres today. What makes this particularly interesting is Gartner's prediction that "by 2012, 20 percent of businesses will own no IT assets."

Conflicting trends
These trends appear to conflict because most applications being deployed in the cloud today rely on virtualisation, yet organisations are not entirely sure that all applications should be virtualised.

It seems unlikely Gartner's prediction will even come close to becoming reality. A CDW report highlights why organisations are not virtualising more applications, including the view that "some applications may not be supported by their vendors in a virtual state".

So the future of cloud computing seems dependent on the successful virtualisation of custom and packaged applications. Given the concerns about virtualisation cited by CDW, one may be tempted to conclude that for cloud and virtualisation to maintain momentum or increase adoption rates, applications will have to become virtualisation-aware.

Direct access
Microsoft defines virtualisation-aware implementations as applications that directly access hypervisor core architectures, bypassing the device emulation layer.

For example, Microsoft describes 'enlightened I/O' as "a specialised virtualisation-aware implementation of high-level communication protocols, such as SCSI, that utilise the VMBus directly, bypassing any device emulation layer. This [approach] makes communication more efficient but requires an enlightened guest that is hypervisor- and VMBus-aware."

Similar mechanisms are provided by VMware that can improve performance and reduce the overhead associated with the virtualisation of applications.

Reduced overheads
So virtualisation-aware applications are those that know they are running in a virtualised environment and bypass the emulation layers to reduce the inherent overhead associated with such layers of abstraction, thus improving application performance and, ultimately, the efficiency of the virtual machine.

Virtual-machine efficiency is important because it affects virtual-machine density — that is, the number of virtual machines that can effectively be running on a given hardware platform.

But this process is not trivial. Applications need to be rewritten to be virtualisation-aware and, if they are, they will not necessarily...

...execute in a traditional environment. This problem puts organisations in a difficult position because they must either commit to a virtualised environment, losing any flexibility to employ virtual and physical resources, or accept the inherent overhead associated with non-virtualisation-aware applications and be less efficient.

Inherent inefficiencies
Although the lack of virtualisation awareness is cited as a concern by organisations, datacentre and cloud computing providers have other ways of addressing the inherent inefficiencies of non-virtualisation-aware applications.

For example, exploiting the optimisation capabilities of modern load-balancers is one way to increase virtual-machine density and negate the impact of virtualisation on application capacity and performance.

Given that almost every cloud provider uses some form of modern load-balancing system and can easily enable these optimisation capabilities, it seems unlikely that the lack of virtualisation awareness in applications would be detrimental to cloud-computing adoption in the long run.

In fact, the ability to exploit traditional and virtual resources, thus combining the local datacentre with cloud-computing resources, would seem a boon to organisations seeking to address capacity concerns without moving their entire infrastructure to an external entity.

Also, the ability to optimise through systems required to implement a cloud computing infrastructure ensures that organisations moving to an internal cloud deployment are not forced to replace their entire infrastructure to support virtualisation-aware applications.

Negative effects
While there are certainly advantages to making applications virtualisation-aware, there are also some negative effects on infrastructure, architecture and organisational flexibility.

With other options available — options that do not restrict organisations or force them into specific architectural choices — it seems far more likely that a lack of virtualisation awareness will engender success of the cloud-computing model rather than hinder it.

Virtualisation-awareness may be advantageous, it is certainly not a requirement and whether it is more fully adopted or not is unlikely to have any impact on the success and adoption of cloud computing.

Lori MacVittie is responsible for application services education and evangelism at application delivery firm F5 Networks. Her role includes producing technical materials and participating in community-based forums and industry standards organisations. MacVittie has extensive programming experience as an application architect, as well as in network and systems development and administration.