VMware’s CloudFoundry announcement has enormously clarified VMware’s long term strategy regarding its role in the Systems Software business. When VMware acquired SpringSource two years ago, it had application platform strategy that consisted of offering an enhanced version of Tomcat along with some development tools. This put VMware on the Java side of the Java vs. .NET wars, which was interesting, but it did not address the rapid proliferation of other application run time environments like Ruby and PHP that were continuing to drive the envelope of developer productivity.
The Role of an Operating System
Let’s step back and have a look at what roles an operating system performs. An OS performs four functions:
- Provides a software abstraction layer to hardware so that applications do not have to be hardware specific (the device driver to the data center)
- Schedules hardware resources across competing demands for those resources
- Provide services to applications so that developers can concentrate on building business functionality, not systems software services
- Provides an API to the applications developer
The Windows Operating System
The most popular server operating system is, of course Microsoft Windows. Microsoft Windows provides all four of the functions listed above. The most important functions of Windows are of course the services that it provides to applications (so that applications developers do not have to code these over and over again), the .NET API to which all modern Windows applications are written, and of course the tight integration of Windows and .NET with the Microsoft developer tool set.
The diagram below depicts the basic Windows Server system architecture. As you can see, it takes a lot of software and lot of interacting components to provide the services listed above in a modern operating system.
The Windows Server Architecture
With its vSphere product line, VMware has offered an alternative version of the lower two services listed at the start of this article. Specifically vSphere implements “the device driver to the data center” and it schedules the hardware resources to which it is interfaced to the virtual machines which host the guests and the applications.
With CloudFoundry, VMware has basically said – we are going to offer a framework for a PaaS cloud that supports the modern run-times which are at the leading edge of innovation, and that are fueling the current increases in developer productivity. CloudFoundry currently supports a couple of leading edge run time environments like Spring/Java, Ruby, and Node.JS, and promises to add more. One can easily envision the fairly rapid addition of support for things like PHP and Python.
If you add CloudFoundry as a PaaS Cloud layer onto the top of a VMware vSphere or vCloud envionment, you get the picture below.
VMware CloudFoundry with vSphere (and the Guest OS’s)
Implications For the Systems Software Business
One of the time honored strategies at Microsoft (when Paul Maritz and Todd Nielsen ran Windows) was to deprive competitors from the “oxygen in their business models”. What this meant in practice was that if you took away the customer’s reason to pay money for the competing product by making the functionality of that product a feature of your product, the the oxygen (revenue) for the competing product was going to decline and that competing product was going to go away. This is precisely what Microsoft did to countless vendors – with the prominent and memorable ones being Netscape and Novell.
If CloudFoundry is going to provide the applications run times for all popular run times (with the obvious exception of .NET (but who knows)), and provide the integration services to back end things like data stores, and vSphere is going to provide the low level systems software functionality, exactly where is there room in the diagram (and the world) for a traditional operating system like Microsoft Windows and Red Hat Enterprise Linux? There probably is a need for some minimal slice of an OS in between the top of the vSphere guest and the bottom of CloudFoundry, and it will probably not take long for someone to come up with a very stripped down version of a free and open source Linux distribution that fulfills this remaining narrow role for the traditional OS.
In summary, the announcement of CloudFoundry means the public declaration of full on war between VMware, and the two traditional OS vendors, Microsoft and Red Hat. What this means is that both traditional (not quite legacy yet) OS vendors are going to have to rapidly bolster then own PaaS cloud offerings. This will be a particular challenge for Microsoft as Microsoft has always gravitated strongly towards having a tightly integrated stack of software, and not being very open to open source frameworks like Spring, Ruby, and PHP.