Simeon Simeonov, former Chief Architect of Allaire, who has brought to market Cold Fusion, one of the first Web Application Server, wrote an essay on the future of virtualization after VMWare CTO, Steve Herrod commented:
We are committed to making Spring the best language for cloud applications, even if that cloud is not based on VMware vSphere.
Simeon argues like many that:
Server virtualization created cloud computing. Without the ability to run multiple logical server instances on a single physical server, the cloud computing economics we know today wouldn’t be possible.
Yet, he adds
Server virtualization as we know it today [...] is only a crutch we need until cloud-based application platforms mature to the point where applications are built and deployed without any reference to current notions of servers and operating systems. At that point, the value of server virtualization will go down substantially.
VMware CEO, Paul Maritz, explains that:
clouds at the infrastructure layer are the new hardware.The unit of cloud scaling today is the virtual server. [...] This will change in the next phase of the evolution of cloud computing. We are already starting to see the early signs of this transformation with Google App Engine, which has automatic scaling built in, and Heroku with its notion of dynos and workers as the units of scalability. Developers working on top of Google App Engine and Heroku never have to think about servers, virtual or physical. [...] clouds at the application platform layer will be the new hardware
Simeon argues that:
First and foremost, server virtualization generates overhead. VMware performance tests suggest that the overhead is in the 8 to 12 percent range. However, when several virtual machines run on the same server and start competing for hardware and network resources, the overhead is substantially higher.
He explains that there is no reason to pay such a price as:
most modern applications, [...] rely on network-accessible resources such as databases and Web services as opposed to local resources such as files and processes. [This is why] startups are building custom application virtualization layers that free applications from servers, obviating the need for virtualizing Windows or full-featured Linux OSes. [...] Multi-tenancy isolation will be achieved at the platform-as-a-service layer, not at the virtual machine layer.
Simeon explains after a conversation with Werner Vogels, CTO of Amazon:
The biggest hindrance to deploying these types of PaaS offerings on public clouds is trust. Right now AWS trusts the server virtualization tier to provide security and isolation. Technically, this is not harder to do at the PaaS layer. In fact, it is easier — you just have to remove or trap dangerous APIs — but I expect it will still take at least a year or two before the volume of PaaS usage makes it worthwhile for large public cloud providers to go through the effort of eliminating server virtualization overhead.
He predicts that:
Enterprise private clouds will need server virtualization for a while,[but the server virtualization and the traditional server operating system] markets will peak in three years and then begin a steady decline
He concludes:
VMware has seen the future clearly and is preparing to move up the stack to PaaS offerings. [...] Soon we will be able to throw away the server virtualization crutch and, like in that memorable moment from Forrest Gump, we will be able to run leaner and more scalable applications in the cloud on next-generation platforms-as-a-service. For the time being, my call to action is for application developers to stop writing code that directly touches any hardware or operating system objects and try the current generation of platforms-as-a-service.
Bloated Application Architecture stacks (from the hypervisor, the operating system, the virtual machine to the various service, data and application containers) are ripe for a major transformation. After a timid debut compared to IaaS and SaaS, PaaS may be the next big thing in Cloud Computing. What is your take on it?