Data center modernization is the hottest topic of the new decade, but it's hard to plan for it effectively when so many different hot trends seem to be aimed at the topic. CIOs and IT planners report that senior management is easily confused by the relationships among three particular technology shifts -- virtualization, cloud computing, and Software as a Service (SaaS). Vendor marketing, which tends to link products and services indiscriminately to any hot trend, isn't making things easier.
The goal for all these technologies is the same: to contain or reduce the cost of supporting business operations using information technology. It's how these technologies achieve that goal which makes them different and which governs whether they can be deployed together or whether they will collide.
Software as a service (SaaS)
SaaS lets companies support key applications (CRM, ERP, etc.) by licensing worker "seats" on application software that's deployed by a provider. The provider maintains the hardware and software, upgrades facilities and fixes problems, thus eliminating the cost of deploying the application on a company data center. SaaS applications are accessed via a network connection -- normally over the Internet.
Because the SaaS model eliminates self-hosting of the software, it's most effective where self-hosting an application would be difficult -- for example, when there are few workers who need it (and the cost per worker would be very high) or because the skills needed to install and maintain the application aren't available in the local labor pool. Small to midsized businesses are very likely to find SaaS a better option than deploying their own applications.
Benefits and challenges of virtualization
If SaaS is an application model, virtualization is a technology. As it's popularly used today, virtualization is any technology that allows resources to be viewed as "logical" and "physical." Applications are run on logical resources, and these are assigned to an optimum physical resource based on a variety of cost, performance and availability policies.
Virtualization is a technology that allows a physical server to appear to applications as multiple "logical servers." Many companies have purchased new servers for each new application they deploy, in some cases resulting in thousands of underutilized servers that have to be individually powered, cooled and maintained. With virtualization, a much smaller number of servers housed in concentrated data centers can replace the inefficient distributed mass of servers, often reducing costs by more than 50%.
The challenge of virtualization lies in the issue of utilization. If a server truly has excess memory, disk and CPU resources available, then virtualization can provide for server consolidation and savings. If resources are limited, then virtualization will affect application performance. Some users have also found it difficult to manage virtual server farms, though tools from vendors like Cisco, HP, IBM, Microsoft, Oracle, and EMC/VMware are making that easier. Most report that virtualization does require more professional skill in house to manage. Companies that can benefit broadly from SaaS are less likely to benefit broadly from virtualization.
Cloud computing blends SaaS and virtualization
Cloud computing is in many ways a harmonization of SaaS and virtualization into a much broader and more flexible model. As a model for IT infrastructure, cloud computing -- or the private cloud -- provides a way for enterprises to structure their data centers to efficiently use server, storage, and network resources. Cloud computing can extend virtualization across a wide area network (WAN) to build a single virtual cloud data center. Because a cloud data center can include the servers and storage of multiple physical data centers, it provides a larger pool of resources for applications to share than would be provided by simple server virtualization -- further improving cost efficiency.
The public cloud can offer companies a way to host applications off-site, for backup or as an overflow capacity resource in periods of peak demand. The public cloud can host SaaS applications more cost effectively, too. The cloud computing architecture provides a way to link the public resources with private cloud resources to create a hybrid cloud, enabling cloud computing to build a seamless application fabric across virtualized servers, SaaS services, and public/private cloud computing facilities.
SOA to transform SaaS, virtualization and cloud computing
An older and in many ways more confusing technology cuts across all three of these modern software innovations -- service-oriented architectures (SOA). SOA is a software design and development methodology that componentizes applications into modular services that are then assembled in various ways to promote customization to worker needs and reuse of common software elements. SOA facilitates cloud computing by making software easier to distribute in the cloud. It can be an alternative to virtualization in server-sharing, or it can use virtualization to improve performance and reliability. Finally, SOA makes everything a service and thus supports the SaaS model, not only for complete applications but also for components of applications. As SOA principles remake applications, SOA will transform all three technologies.
SOA may be transforming, but from the user's perspective, cloud computing is harmonizing. Many would argue that cloud computing is the unification of virtualization and SaaS, but it's more complicated than that. There will be applications of virtualization that are not "cloud computing" for years to come, and there will also be SaaS applications that do not use virtualization in application hosting. All three technologies have their place in managing capital and operations costs for IT. But it does seem likely that cloud computing will become the overarching framework in which most virtualization is applied and that the majority of SaaS providers will employ cloud computing to serve their users most economically and reliably.