Long ago, in a data center far, far away, we as an industry moved away from big iron and onto commodity hardware. That move brought with it many advantages, such as cost and flexibility. The change also brought along with it higher hardware and operating system software failure rates. This change in application stability forced us to change our deployment model and build the siloed application environment: One application, one operating system, one server.
This model created significant inefficiencies, one of the largest being hardware utilization. Utilization percentages of 10% or lower were the norm with this model. Servers had to be sized for application peaks, and applications don’t typically peak constantly. In stepped server virtualization to save the day: Multiple applications now run on single physical servers and help to solve the utilization problem by intermixing workloads, therefore peaks, on more dense hardware.
The issue with server virtualization is that it doesn’t fix the broken deployment model of one-to-one application-to-OS. It also adds its own overhead in the form of the hypervisor. The overhead of the hypervisor and multiple operating systems reduce performance and add cost. (Where are you storing those OSes?) In the enterprise, the hypervisor is a Band-Aid; it helps protect the wound, and allows us to forget about the wound, but does nothing to heal the wound. Just like a Band-Aid, the hypervisor isn’t bad and can help. It’s just not the cure.
In order to restore balance to the force we need a real solution to the application deployment model, a cure for the wound. Just because the silo method is the data center’s father doesn’t mean we have to join it on the dark side. The solution is PaaS, or platform as a service, and, as importantly, a rethinking of application design. PaaS provides the ability to alleviate the inefficiencies of the 1-to-1 model, forgo the hypervisor performance cut in some cases and deploy applications in a scalable fashion. PaaS and cloud as a whole enable us to write and deploy better applications.
With PaaS, developers are freed from worrying about the underlying infrastructure and instead can focus on building lightweight scalable applications and services. Several options exist for deploying PaaS in a private cloud, allowing existing equipment to be utilized and in-house controls to be maintained. Depending on platform, servers can be presented to the PaaS software in varying formats, operating systems, virtual or physical servers, or both. Applications are then developed on the platform and gain benefits such as elastic scalability.
PaaS may not be the answer for every application, and migrating existing applications will be difficult. However a PaaS model is a more long-term solution than a hypervisor model. Combining PaaS with public SaaS for applications that may fit better there, such as email and voice, will provide a long-lasting IT deployment model that maximizes efficiency, scalability and responsiveness.
Disclaimer: In my primary role I work with several hypervisor/virtualization products and vendors. This article is not an endorsement of those products or vendors.