Monday, August 10, 2009

Designing Server Infrastructures: Virtual Appliances

The pervasive use of virtualization requires rethinking how applications are deployed to reduce software bloat and take advantage of the decoupling virtualization offers. One approach is virtual appliances. Applications are examined introspectively, vertically down the software stack, to determine dependencies and requirements for operation. The bottom of the dependency chains will be common across applications of the same platform - Windows, Red Hat, Ubuntu, Oracle and Novel - collectively these components form a Just Enough Operating System (JeOS) - Windows 2008 Server Core, Red Hat Thin Crust, Ubuntu JeOS, Oracle JeOS, and Novel SUSE JeOS respectively. On top of this platform the remaining dependencies are stacked (like building blocks) in reverse dependent order (like a dependency tree), with the application sitting on top. This arrangement is self contained, application focused, and minimalist - only necessary software is installed.

Update Oct 24 2009:

Updating and patching software is a time consuming and thus expensive operation because of the required due diligence and testing, virtual appliances significantly reduce this burden.

"Server Core reduces the footprint of the OS from about 5 GB in WS2K8 to 1.5 GB, and based on recent tests, will reduce the number of patches admins may need to employ by 60% over Windows 2000. The reason there is very simple: There's no need for admins to patch files that simply aren't there."

This is from a 2007 BetaNews report from Microsoft TechEd. Fast forward to the present and Windows Server 2008 Release 2 debuted this summer with even more JeOS focus and features - SQL Server, ASP.NET, IIS 7.5 and PowerShell for administration.

Cost: Foot Print: H/W Low S/W Low

Cost: Life Cycle: Medium-High

Responsiveness: Medium

The design depends on the application and dependent software's modularity, so only required functionality is installed. Fortunately most modern software is at least somewhat modular.