Virtualization: Application Containerization or Hardware Consolidation?
In a recent article by Jeff Gould on InteropNews it is postulated that the recent wave of virtualization is more about Application Containerization, or the isolation of applications from one another, than it is about server consolidation. With rising energy and real estate costs, the data center footprint of a server can cost half to the entire replacement cost of the server itself. When virtualization first became popular, it was mostly as a testing tool - allow a user to create new images of operating systems and software configurations to test without corrupting their main system. It soon evolved to the hardware consolidation movement.
Even this effort though disguised one of the true motivations: software has become so complex, we can rarely have two interoperable packages function on the same operating system configuration. Five years ago, MDAC issues with Microsoft IIS precluded many web applications from working together on the same host. Today this situation threatens to repeat itself with three existing versions of the .NET framework. As applications become more complex, and the operating systems and frameworks they run on even more so, there is a chance to manage complexity, cost and risk by isolating applications in individual Virtual Machines.
With this in mind, where are we going next? Perhaps someplace mainframe OSes went nearly two decades ago, OS support of application containerization. I can envision a future version of Microsoft Windows Server where I can set up an application, and tell it which versions of IIS, which version of MDAC, which version of .NET, which TCP ports and IP address it can use, and the SPECIFIC files and directories it can modify. Even with virtualization, features such as this will help increase our security, the robustness of our applications, and our understanding of our software as IT professionals. The days of "grant everything" and "deny-that-which-we-don’t-like" are coming to an end. Software should come with an explicit contract that says I need these ports, I need these files, and I need these dependencies. And we can count on our OS to provide them, and give us true application containerization.
Last Update: Tue Jul 24 10:05:52 2007