Virtualization Services

Added by James Rabey , last edited by James Rabey on Apr 28, 2008  (view change)
Tags: 
(None)

Virtualization - the Core of Application Delivery

Virtualization separates how computing resources are used from where they physically exist and, therefore, it plays a major role in overcoming many of the limitations inherent in their original design and implementation. For example, system virtualization technologies enable multiple guest operating systems to execute on a single computer. The hypervisor and related dynamic virtualization services enable componentization, isolation, and logical representation of the underlying computing devices, capabilities that are necessary for hosting multiple operating system instances on a single device.

Server-side app virtualization allows the separation of the user from the computing system that is running the desktop and applications, providing application isolation and a suitable representation of the remote computing elements on the user's local computing device. In effect, a virtualization layer can provide the illusions required by the original physical computing elements to operate correctly. It also provides a convenient place to add new functionality and improved characteristics that are needed to meet new requirements.

Virtualization also enables the creation of new, specialized services from what were once monolithic computing elements that were restricted to predefined use cases; for example, a desktop service that runs in the datacenter, an application service that works with any end-user device, or a way to run both Linux and Windows Vista on the same personal computer. These virtualization technologies are essential, because they enable existing computing resources to be reorganized into modular computing components. Once modularized, these components can be flexibly reassembled to meet the specific needs of the user anywhere, on demand. This newfound flexibility enables organizations to embrace and leverage today's dynamic world---instead of resisting and struggling with the legacy of past design and purchase decisions that would otherwise exist indefinitely.

When core computing resources are virtualized and then separated across network boundaries, the result is a set of dynamic building blocks with inherent flexibility. These new building blocks can be combined to address a wide range of business challenges; for example, running a Windows desktop as a guest Windows operating system and accessing that desktop remotely through any device. Within each component's virtualization layer, it is possible to insert new functionality and behaviors that were not present in the original physical resource, such as disabling clipboard access in certain situations or adjusting the amount of RAM an application is able to use.

The four key virtualization technologies are:

Server Side App Virtualization 

Server-side app virtualization technologies separate an application's user interface from its logic, allowing the user interface to be remotely displayed and used while keeping one-hundred percent of the logic running on the server. The application's user interface is encrypted and transported from the server it is running on, to the end-user device, and returns the user's input to the application on the server. As an application runs on a server, its display data is intercepted, and a remoting protocol is used to send this data to the client software running on the end-user device.

Client-Side App Virtualization

Applications are first packaged by recording their installation and determining which components and system resources are required to stream them. The resulting application package is stored in a file share. The user downloads the application package from this file share, as necessary. The downloaded package is cached on the local device, where it is executed locally, and typically isolated from the rest of the applications and processes running on the end-user device.

The process of streaming media, such as music or movies, is similar to the process of streaming applications or operating systems. The image is transmitted from a centrally stored image to end-user devices where they are consumed. Like progressively downloaded media, certain forms of streaming allow the end-user device to begin consuming the image during the process of downloading it.

System Virtualization 

System virtualization creates a layer of abstraction between the guest operating system and the hardware that it is running on. Processor and other hardware instructions are handled by the virtualization software hypervisor. The hypervisor is inserted between the guest operating system and the hardware, either by the process of emulation, where instructions are trapped and then performed by the hypervisor on the behalf of the guest operating system, or by the process of para-virtualization, where the guest operating system is modified to act in conjunction with the hypervisor through the injection of drivers or other software components. System virtualization can be used for desktop operating systems (such as Windows Vista or Linux) or server operating systems (such as Windows Server 2003). These approaches are known respectively as desktop virtualization and server virtualization.

Server Provisioning

In a similar way to client-side app virtualization, server provisioning involves the streaming of an operating system from a remote storage device to the server, thus virtualizing the hard drive from the rest of the server's execution environment. A virtual disk image is created from a master client server's operating system and applications, by taking a snapshot of the operating system and application image, and then storing that image as a file on the network. Each target client device that will receive the streamed operating system image is often diskless, and it is configured with Preboot Execution Environment (PXE) firmware on its system BIOS or a network interface controller (NIC), which allows the client device to retrieve its boot file from the network, rather than from a local hard drive. The final image is then streamed to the client device, and it resembles a regular hard drive.