Why Software Vendors Need to Care about Virtualization

Enterprise customers increasingly use applications in virtualized environments, and software vendors must consider the implications of this ascending model. The rise of virtualization provides a competitive advantage for those vendors that give their customers superior support for virtualized deployments. Virtualization also provides a number of distinct opportunities for internal operations that are uniquely available to software development organizations.


Overview

Virtualization represents a significant set of challenges and opportunities for software vendors with respect to their customers' environments and the internal operations of software companies. As mainstream data centers continue to recognize the cost savings available from virtual infrastructure, running in virtual machines (VMs) has become an important mode of deployment for all enterprise software.

Customers now expect application makers to be able to provide guidance about running their products in a virtualized environment, ranging from basic assurance that the product will work (including any limitations) to advice about how to get the best results in their particular deployment. Even in those cases where no special steps or other considerations are necessary in order to install and use a given application in a virtual machine, it is important for software vendors to be able to certify that fact to their customers. More specifically, it is necessary for most software vendors to conduct testing on virtualized hardware, to verify whether all of their products' features work in a virtual environment, to identify implementation and scaling strategies as well as performance metrics, and to determine the level of performance overhead for their particular products.

Within the development organization itself, virtualization has value in helping to streamline processes. For example, the use of VMs can help developers emulate multiple hardware environments using software, allowing them to have different development environments for different sets of tasks, without the added expense of maintaining multiple physical machines. In the testing phase, the advantages are even more dramatic, since VMs can be used to emulate a large number of customer environments at relatively low cost. In all development phases, VMs can be used to freeze point-in-time snapshots of test and development environments, simplifying the effort to reproduce bugs and enabling simple roll-back of system changes.

VMs can also provide a robust way of deploying software to customers, allowing the development organization to precisely configure one or more VMs in ready-to-use form. This model reduces the need for customer-specific deployment advice, reducing costs for both the customer and vendor. This paper demonstrates to decision makers at software vendors how virtualization is helping to shape the future of the software industry as a whole, as well as providing specific advice about how to derive the maximum benefit from this transition. It covers the following main topics:

 


Expedited Customer Adoption and Increased Market Base

Virtualization provides for enhanced distribution models such as virtual appliances and software as a service (SaaS) that software vendors can use to help their customers adopt solutions more rapidly. By enabling end users to take better advantage of data-center hardware, virtualization helps them reduce the costs associated with adopting high-end software solutions. Together, these effects can expand the market base for a given set of enterprise software solutions.

A virtual appliance is a VM image that incorporates a pre-configured operating system and application software, eliminating the need for customers to install and configure the software themselves. In addition to decreasing deployment cost for the end-customer, the virtual appliance model can reduce complexity dramatically, helping customers to achieve success with minimal effort. The simplicity afforded by virtual appliances allows for very rapid provisioning, as well as lowering the cost and expertise barriers to entry for customers considering the use of a solution. These effects extend the marketability of software made available using this model.

In the SaaS model, application providers make software available on a recurring, pay-per-use basis, rather than through one-time sale of a license. SaaS is generally a business-to-business model, rather than business-to-consumer, and it is typically associated with software that is complex to maintain and/or has a high initial cost. Customers are thus able to get the benefit of the software without high acquisition costs or complex technical requirements. Traditionally, this model has involved the hosting of web-based application software by a provider, for remote access by customers. Virtualization adds flexibility by increasing the feasibility of offering non-web-native applications in a SaaS modality. Since the use of virtualization for SaaS offerings decouples the software from the operating environment, customers can deploy VMs from a provider on-site with minimal effort and maximum flexibility, and the provider can update the VMs as needed with minimal customer involvement.

Finally, virtualization a llows substantial cost savings by end-customers through tier and server consolidation, improved application scaling, and enhanced load balancing, all of which can reduce the number of servers needed to host a given environment. The reduced cost to establish the environment needed to use high-end enterprise applications opens these solutions to a broader market segment. The resultant increases in the potential customer base for a product can make that product more viable.

The enhanced deployment models and larger market potential for software products afforded by virtualization represent a substantial opportunity for software vendors. As the performance headroom and energy efficiency of large-scale virtualization servers like those based on the Quad-Core Intel® Xeon® processor MP 7300 series continues to grow, these benefits can be expected to increase. This platform supports four-way configurations, for 16 cores and 32 simultaneous threads per server, with 8.3GB/s bandwidth via each of four system buses, for a cumulative bandwidth of 34GB/s. They are designed for drop-in replacement with future quad-core Intel Xeon processors MP based on 45nm process technology (expected in 2008), making this platform an excellent choice as a deployment target for enterprise software providers that want to take advantage of next-generation virtualization platforms.


Marketing Environment and Competitive Considerations

Because of the growing importance of virtualized hardware as a deployment environment, the depth of support that software vendors provide for virtualization is now a significant competitive consideration. All software vendors should be aware of what their competitors are doing to support virtualization, in addition to optimizing their own products and business processes to accommodate the virtualized environment. Paying sufficient attention to customer needs in this area will help them to confidently deploy solutions with virtualization technology, which can equate to a competitive advantage for those vendors that work to establish that confidence for their products.

A software vendor's technical recommendations for virtualized deployment should be at least as robust as those provided by its competitors. By establishing the degree of an application's compatibility with various virtual machine monitors (VMMs) and the features of various virtualization environments, software vendors can help to reduce uncertainty on the part of their customers, which can in turn reduce the risks those customers face during adoption.

These technical recommendations should include advice about compatibility with tools within the virtualization environments such as migration and management utilities. Customers should also have access to data about performance overheads and scalability with various VMMs. For example, vendors should be prepared to provide recommendations to their customers about whether it is preferable to increase the number of virtual CPUs (vCPUs) per physical processor or the amount of virtual memory per vCPU to provide additional capacity.

Another important area where software vendors should be aware of their competitors' approach to virtualization support concerns licensing and support policies. Because traditional approaches to pricing software licenses and support agreements are complicated by the rise of vi rtualization, vendors should take special care to ensure that their policies compare favorably to their competition. When a customer considers deploying an application on multiple VMs that may or may not be in simultaneous use, or if they want to deploy a given VM on more than one physical host, licensing and support policies can be a significant decision point in terms of their impact on the overall cost of the solution.

Due consideration of the competitive aspects of business policies as they are impacted by the needs of the virtualized environment is vital to the ongoing success of enterprise applications. Software vendors are well advised to place the needs of customers planning virtualized deployments near the center of competitive planning for the next generation of solutions.


Enhanced Development Using New Virtualization Capabilities & Features

Effective competitive positioning for software vendors should take advantage of emerging virtualization technologies that can support innovative software solutions that clearly differentiate themselves from their competitors. As Intel® Virtualization Technology (Intel® VT) and the virtualization ecosystem in general continue to develop, new capabilities are regularly introduced that directly support novel software implementations. For instance, by taking good advantage of Intel Virtualization Technology for Directed I/O (Intel VT-d) and paravirtualization, software vendors can significantly increase performance, providing a competitive advantage.

Intel VT-d allows the VMM to directly assign an I/O resource such as a graphics card to a specific VM, making that resource unavailable to other VMs. One example of the value that this particular aspect of the virtualization hardware assist can have is to give a VM access to a dedicated high-end graphics card, so that the VM can deliver very high graphics performance for applications such as medical imaging or computer-aided engineering. Moreover, this capability would allow an application to use one or more graphics cards as hardware co-processors using a GPGPU (General-Purpose Computing on Graphics Processing Units) modality such as NVIDIA's Compute Unified Device Architecture (CUDA). These techniques can now allow VMs to execute certain tasks such as floating-point operations and highly-parallel workloads with extremely high performance.

Paravirtualization is another technology area that software vendors should consider carefully in the development and marketing of their solutions. VMM-specific paravirtualized guest OS drivers reduce the proportion of hardware resources that the VMM must emulate in software, reducing overhead in a manner that can boost performance dramatically. Research by software vendors in this area that can support specific recommendations to customers may give those customers the ability to generate far higher performance than would otherwise be possible, for a distinct market advantage. In this case, specific product-development changes may not even be necessary, but by providing ecosystem expertise to its customer base, a software maker can position its products favorably, making them more successful.

Likewise, Extended Page Tables (EPT) are an emerging Intel VT capability that software vendors should familiarize themselves with in order to demonstrate their virtualization expertise to their customers. EPT provides a hardware assist to memory-table virtualization, which is to say that it helps to manage the mapping between virtual and physical memory addresses among multiple guest OSs. Each guest OS must maintain a page table that performs this mapping for its own memory space, and the VMM coordinates these page tables among the guest OSs, which amounts to another level of memory virtualization. EPT reduces address-translation overhead, increasing the efficiency of this virtualization by the VMM, which increases overall performance. For more on how to take advantage of the technologies discussed in this section to improve results from virtualized workloads, see the article "Best Practices for Paravirtualization Enhancements from Intel® Virtualization Technology: EPT and VT-d."


Improved Software Development Processes from Virtualization

In addition to the opportunities engendered by virtualization in the marketing and deployment of software, vendors can also obtain significant advantages from virtualization within the development process itself. For example, by providing a virtualized environment for development staff, it becomes far easier to ensure that all of the developers are working from a common base platform, simply by providing them all with the same VM that contains a standard operating system (at a specific service-pack and patch level) and set of source-code control systems and other development tools.

In addition to removing issues due to inconsistencies among developers, the use of VMs in this manner also improves the efficiency of building and maintaining developer systems. As new permanent or contract staff joins a project, those team members can rapidly be provided with the standard development build, reducing their ramp-up time and making them more immediately productive. Likewise, if team members travel or otherwise need to work off-site, they can easily transport a VM with the current development image along with them, and if a new VM image needs to be shipped to them, sending a DVD by overnight mail is a simple and convenient option.

By using multiple VMs, it is relatively simple to support cross-platform development while reducing the number of physical machines required. Developing for multiple builds of various operating systems can rapidly require a large number of images for coding and testing, and VMs make it simple to maintain all of those environments. Moreover, multiple VMs running on a single system can emulate a network scenario for testing and demonstrations or training at a customer site. Rather than travelling with multiple servers and client systems that need to be repeatedly set up and reconfigured, a single high-end laptop machine can host all of the necessary VMs to stand in for a network.

Using VM-based development environments also makes off-site backup of the entire development environment trivially simple. Even a small development organization can easily keep a set of DVDs in a secure remote location, and restoring development platforms from these images is fast and easy as well. This type of backup can immediately restore the full complement of system configurations and settings in the event of fire, natural disaster, theft, or other emergency, protecting the integrity of the development effort and helping to minimize financial losses.

Customer support is also simplified through the use of VMs as production environments. A customer can send a copy of a production VM to the software vendor with appropriate NDAs in place, which reduces complications associated with replicating support issues. It an also cut down on the need for support personnel to travel to the customer's site, reducing the expense associated with problem resolution, which itself provides a competitive advantage for the overall solution. Moreover, in cases where the software vendor provides installation and integration services, maintaining a copy of the original "as-installed" image can help provide for non-repudiation by documenting the systems changes that were made by the customer, as opposed to those made by the vendor.

By helping to standardize processes and platforms, virtualization can improve the efficiency of the overall application development and testing process, reducing costs and speeding up time to market. By decreasing the cost of supporting multiple test beds, VMs help to improve processes and product quality, for a further competitive advantage.


Conclusion

Software vendors can take advantage of virtualization to improve their customer relationships, deployment models, and competitive position. They can also improve their internal processes and the quality of their products. Using models like SaaS and virtual appliances, vendors can readily provide flexible offerings to their customers, allowing for product differentiation and more closely supporting changing market needs. Optimizing their solutions for next-generation virtualization platforms like those based on the Quad-Core Intel® Xeon® processor MP 7300 series positions application software for excellent forward-looking performance.

Vendor expertise in emerging virtualization technologies such as Intel VT-d and EPT helps demonstrate to customers that solutions have been developed with these technologies in mind. Likewise, being able to identify the impact of VMM choice and scaling techniques in a virtualized environment helps customers to build confidence in using specific application software with VM-based systems. Finally, improving internal development, testing, and support processes through the use of virtualization technology can help improve the quality of product offerings while reducing costs.

As one of the most important trends in IT today, virtualization is a vital component of every software company's outlook. Careful and knowledgeable incorporation of the full range of virtualization's capabilities positions software vendors for advantages at every phase of the development cycle and a competitive advantage in every market segment.


Additional Resources

The following materials provide a point of departure for further research on this topic:

 


Categorias:
Para obter mais informações sobre otimizações de compiladores, consulte Aviso sobre otimizações.