Tuesday, September 25, 2007

JeOS – How much OS is needed?

Earlier this month, VMware announced JeOS, or just enough OS, at VMWorld. Targeted at managing applications, this solution is poised to be an improvement on the virtual appliance approach. It’s interesting to see that VMware recognizes the need to limit OS content in order to manage and deploy applications.

It’s starting to become clear in many enterprise data centers that bundling an entire OS into a virtual image in order to deploy and use an application is not an optimal solution. Organizations have been including a kernel in a virtual image because there has been no option. However, when given a choice these same organizations are starting to realize that managing the application itself as a distinct object is preferable in most use case scenarios. Not only are VMware, Microsoft, Sun and the rest of the “big guys” looking at what this means, there are a number of start-ups targeting the definition and delivery of an application.

It’s funny to see how these things evolve. Who wants to boot another OS in order to access a specific application? You already have an OS running….it’s your desktop. Why would you boot another OS if there is an alternative? The VmWare strategy in particular is starting to unfold; as they are ready, willing and able to admit that something different is needed for desktop applications. That said, the universe of server applications continues to be intertwined with an OS and a hypervisor.

But why?

If separating desktop applications from their dependencies on an OS is a good approach, why is it not also a good approach for server applications? Application independence is certainly more effective than hypervisors and multiple kernels. There is less overhead, applications are more deterministic, they are easier to manage as a discrete object; independent of an OS. Ask any financial services company how you deploy a trading application in a virtual machine. The answer? You don’t; not in production.

Why is it difficult for the system and virtualization vendors to accept that if OS independence for a desktop application is a good thing, it’s also a good thing for a server app? Why is Sun focused solely on migration of existing applications into zones on Solaris 10, without any application specifics? Why has Microsoft stated publicly that they will not virtualize server applications? Because it’s difficult? It’s different; a virtualized server application, particularly one that includes an IP address, hostname &/or MAC address, blurs the lines of what we understand as virtualization categories. It forces us to understand in detail how applications interact with the underlying OS.

It’s not just about the technology; there is also a real vested interest in protecting what you have. None of the aforementioned “big guys” wants to see the OS defocused while the focus is placed on the application itself, highly independent of an OS. It’s simply more complex to virtualize an N-tier application and/or an Oracle database, or Sybase with a dependency on Veritas volume manager than it is to virtualize MS Word and/or PowerPoint.

I know this first-hand; from within the trenches. It’s taken us a long time to get it right. Server applications are dependent on the same things a desktop application is dependent upon. But, a server application may also be dependent upon a network identity, it is likely to be licensed to a specific platform and number of CPUs, it is most certainly very sensitive to network throughput and performance. Creating the environment where multiple Oracle databases can effectively co-exist on the same OS, the same kernel, is not for the faint of heart. It’s not the same as Word, PowerPoint, Excel and Acrobat reader.

We all know that the simple design is most often the most effective design. An application that is abstracted from the OS, one that has its dependencies self contained within an application object, is far less complex than deploying multiple kernels on the same platform in order to deploy applications. But, here’s the problem; in order to deliver such a solution you have to understand what the application is doing. It can’t be about the OS where such a solution is concerned. And that is just simply scary to some organizations that have a vested interest in focusing on the OS.

No comments: