It’s no secret that virtualization has been a major trend on the IT industry. In fact, to many people, SWsoft has been mostly known as a vendor of server virtualization Virtuozzo (more information at Server Virtualization Blog) and desktop virtualization Parallels products.
Let's take another look at the 10 tenets of SaaS and see why virtualization plays an important role in the SaaS world.
Provisioning. Image-based deployment of virtual machines is much simpler and less error-prone than an installation process requiring many steps in the configuration. Virtuozzo, with extremely compact images, makes provisioning a snap.
Density. Most existing applications were not designed for SaaS and only support a single tenant (user hierarchy) per environment. Virtualization allows multiple instances of such applications to run on the same machine, greatly improving efficiency without the need to redesign the application. The unique architecture of Virtuozzo allows 25-50 instances per server, making it economically very efficient to run "legacy" applications in SaaS mode.
Isolation. True multi-tenant design has many advantages, but some significant drawbacks, too. Multi-tenant applications typically don't allow for a lot of customization. Customizing database schema or supplying custom code or scripts is either prohibited or severely restricted. The reason is that a single missing index, poorly constructed query, allocation of too much memory or an accidental infinite loop can bring down all tenants on the same server. By comparison, Virtuozzo gives each application instance a fully isolated environment. Together with resource management capabilities, it guarantees that one instance cannot affect others, however badly it misbehaves.
Service Levels. In a multi-tenant design, it's a non-trivial task to account for CPU cycles, memory or network bandwidth used for servicing a particular tenant. Consequently, it's very hard to limit resource consumption by tenants, which, in turn, makes it difficult to have different service levels for different tenants unless resource management logic is carefully designed into the application. As a result, applications become very complex and admins need to master resource management for each application.
Virtuozzo solves the problem by making it very easy to manage resources between virtualized applications instances. Flexible service level policies can be applied to any existing application, using the same mechanisms regardless of the application. Moreover, Virtuozzo provides capabilities like high availability, clustering, live migration and other high-end features - without spending time on designing them into the application.
As you can see, virtualization brings very significant benefits to the SaaS world. Virtualization gives ISVs an easy migration path to SaaS without having to give up the flexibility of "dedicated" design. At the same time, virtualization allows service providers to make their hosting infrastructure very flexible yet very efficient.
The benefits are so significant, that, in my opinion, no SaaS provider will be able to be competitive without using virtualization.