Some combinations -- such as peanut butter and chocolate -- just go together. Similarly, with myriad virtualization options, several methods can work well together.
Virtualization has proven effective in addressing many of the challenges of data center management. But organizations that have invested in virtualization often encounter new and different problems. This tip discusses using application virtualization for server-based virtualization, the problems application virtualization attempts to solve and how this virtualization approach can improve virtualization administration and the management of data center resources.
Managing server virtualization challenges
While server virtualization can address pressing cost administration concerns, it can introduce management problems of its own. The list of highlights includes the following.
- Application interdependencies. Modern applications are complicated and require many services to function properly. even a relatively simple website, for example, might require a specific Web server, custom configuration options, firewall modifications and a connection to a database server. All these components must be properly configured for the site to be deployed to or moved between virtual machines (VMs).
- Creating and managing multiple images. Generally, administrators of virtualized environments create a set of base VM images that serve as a template for new deployments. Prior to deployment, however, one or more applications or services must be installed. In some cases, this can be as simple as enabling a server role or changing a few configuration settings. In other cases, it can take hours or even days to set up a new application. And, even then, there's a risk of configuration inconsistencies. The result is higher costs for library management, a potentially large number of VM images to maintain (including all common combinations of applications and services) and additional time for the deployment of new virtual servers.
- Application updates and maintenance. Organizations often automate the deployment of patches and updates, but the requirements and technologies for different applications can vary widely. Upgrading an application or service that has been deployed to dozens of VMs can be painful. In some cases, scripting and automation can simplify the process. But that approach requires significant testing effort, extended downtime and application expertise.
- Combining applications and services. Standard IT services tend to include application servers, Web servers, database servers and line-of-business applications. To simplify the deployment of many potential combinations of workloads, IT departments have to manually create or configure each of them. By using application virtualization, administrators can simply pick which applications they want to deploy to each image when needed. This results in faster deployments and reduced testing and image management overhead.
- Supporting cloud computing and heterogeneous host operating systems. Deploying applications to a single platform can be challenging enough, but many environments have invested in more than one hypervisor. Furthermore, cloud computing continues to promise improvements in efficiency. Application virtualization can allow organizations to create fewer images of servers and workloads and then deploy them to the most appropriate targets. In an ideal world, administrators could move a workload from internal servers to hosted environments with little effort or risk.
Server-side virtualization solutions
All these potential challenges can make server-based application virtualization more attractive. Packages of virtual applications can contain all of the executable files and settings that are required for them to run. Such a package would likely include details for more than one application, but it must encompass everything that's needed to get it running on another server. Administrators can then deploy that application package to a compatible server.
When maintenance and application updates are required, administrators can alter the application package (or create a new one) and then deploy the change to each server. Since the applications typically run in isolated environments, the risks related to testing and compatibility are minimized.
Virtualization provides a powerful paradigm -- the decoupling of OS, applications and services from the hardware on which they run. The idea of using application virtualization on the server side might seem obvious. This technology is similar to virtualization for client-side applications. But there are specific concerns for managing complex, interdependent applications and for supporting heterogeneous operating environments. As with desktop virtualization, it's important for IT pros to thoroughly evaluate and test the products they evaluate to manage their production environments. VMware, AppZero, Enomaly, Microsoft, rPath and Cohesive Flexible Technologies are among the vendors to watch.
With any luck, your organization will stumble upon a new mix of virtualization flavors that taste good together.
About the author
Anil Desai has managed data center environments that support thousands of virtual machines. He is an MCSE, MCSD, MCDBA and a Microsoft MVP (Windows Server -- management infrastructure). Desai has written numerous books focusing on Windows Server, virtualization, Active Directory, SQL Server and IT management. Most recently, he has written The Rational Guide to Managing Microsoft Virtual Server and The Rational Guide to Scripting Microsoft Virtual Server.