Posted by Steve Herrod
Chief Technology Officer
It was almost 9 months ago that we acquired SpringSource, bringing VMware one of the most popular Java development frameworks, stewardship of the Apache Tomcat, Apache HTTP Server, Hyperic, Groovy and Grails open source communities, and a group of talented engineers focused on the efficient development of applications for the cloud-computing era. We’ve recently augmented this team with the acquisition of Rabbit Technologies, the company behind the popular open source cloud messaging technology RabbitMQ. These products, along with others that we’ll unveil in the near future, are what we refer to as “vCloud Developer Services” and “vCloud Platform Services”.
In the August 2009 blog post announcing the acquisition, I discussed our rationale for combining SpringSource with VMware and hinted at the directions we’d be going with it. Today I’m excited to see the launch of VMforce.com, the first of what will be many great deliverables based on this acquisition. There are several great blog posts (see VMware’s Rod Johnson’s post and from salesforce.com: Parker Harris’s and Peter Coffee’s posts or Anshu Sharma’s post) that discuss the specifics of the offering. I thought I’d use this blog to step back a little bit and talk about the broader strategy behind VMware’s participation and what you can expect to see moving forward.
The VMforce collaboration is VMware’s first public implementation of Platform-as-a-Service (abbreviated as “PaaS”). PaaS offerings aim to make developers incredibly efficient by hiding many of the complexities that they face in typical enterprise IT environments such as:
- Waiting for the provisioning of physical machines and their software
- Changing your code to work with the specific middleware components your company uses
- Handling code modifications that may be required as the middleware versions change
- Dealing with new environments as your code moves from development to staging to production
- Frustrating interactions with the separate operations team when things aren’t working well
PaaS offerings typically offer add-on services available for developers to incorporate into their applications. These include capabilities such as location-based services, identity management, tweeting, chatter, search, and many forms of data storage. The developer efficiency and application richness to be gained through PaaS offerings is clear and we see it as one of the major trends in cloud computing. Today’s PaaS offerings are not without challenges though, and we believe VMware is in a unique position to attack these challenges and help bring PaaS to the mainstream.
PaaS … with choice
One big challenge with today’s PaaS offerings is that they are all fairly unique and incompatible with one another and with the way that enterprises run their applications. Once you select a PaaS offering, it is easy to become locked into their particular offering, unable to easily move your applications and data to another PaaS provider or back into your own datacenter should the need arise. I should note that this lack of interoperability is a more general challenge for cloud computing as a whole, and one that industry visionaries such as Google’s Vint Cerf recognize and that VMware, along with several others, are working to address.
Enterprises are very concerned with the privacy, security and auditability of their applications – something that is often a concern or blocker for public PaaS offerings. VMware’s PaaS will have a significant focus on enterprise-grade qualities -- providing strong controls for privacy, identity, and authorization control, allowing applications to be extensions of those in the corporate datacenter.
VMware’s entries into this space will focus on addressing this challenge and, with our partners, creating “Open PaaS” offerings. Now, what does “open” mean in this context? Virtualization is about separating the logical view of server assets from the physical resources upon which they run. By severing the tentacles that crept in between traditional operating systems and hardware, it enables virtual machines with hardware independence and mobility (among many other capabilities). In similar fashion, a PaaS offering can be architected in a way that clearly separates layers and avoids the restrictions seen in many of today’s implementations. Furthermore, the parts of a PaaS offering that the applications depend on (e.g. libraries, messaging, data access) can be built using open development frameworks and technologies with liberal licensing programs. Ultimately this makes it easier for an ecosystem of more compatible PaaS offerings to grow, providing choice for the developers and consumers of the applications.
Our initial open PaaS offerings focus on a particularly important choice… choice as to where you deploy and run your applications.
Private or Public, VMware and non-VMware
The Spring development framework has done a great job of separating out application logic (java code) from the underlying hardware and software infrastructure needed to execute it. This abstraction makes Spring a natural starting point for a Java PaaS offering, and is also a key enabler of application portability in the cloud computing era. We are doubling-down on the Spring abstraction layers to make it the best framework for writing truly cloud-portable applications. In this context, cloud-portable means that you can write your code from within an IDE (integrated development environment) and easily choose where to deploy the code for execution. Furthermore, you should be able to extract the code from the cloud it currently runs in and move it, along with its data, to another cloud choice.
One thing in particular mention here should strike you … we will wholeheartedly enable deployment of these cloud portable applications to clouds that are not based on our underlying vSphere virtualization technology. This support is a key aspect of openness and will enable a broader and more competitive ecosystem of compatible Spring PaaS offerings. And this in turn will be the reason why developers will bet on Spring-based applications for maximum flexibility. Stay tuned as you’ll see many more announcements around this very soon.
Extra Goodness when Running on a VMware-based Cloud
The VMware portion of VMforce is based upon both VMware’s Spring, vSphere, and vCloud technologies. While we are absolutely committed to making a Spring-based application portable to non-VMware clouds, we’re working hard to make VMware-based PaaS offerings an outstanding place for their deployment.
One of the key differentiators with EC2 based PaaS will be the efficiencies for the many-app model. Customers are frustrated with the need to buy a whole VM as the minimum service unit for their applications. Our PaaS will provide fine-grained resource separation.
VMforce also utilizes a new vCloud Technology that coordinates the entire PaaS stack, helping Spring-based applications fully exploit VMware vSphere’s capabilities. This coordination will deliver excellent efficiency to the PaaS providers as well as several benefits to the developer and end-users (e.g. automatic provisioning and scaling, self-securing network connectivity, and detailed application performance and availability monitoring). I illustrated a few examples of this in the original SpringSource acquisition blog post:
…as a developer packages up their Java application for deployment, they can indicate at a higher-level how this code will interact and communicate with other hardware and software components. At deployment time, the virtualized infrastructure can automatically provision the database and application server VMs required by this application, wire the VMs’ network connections together, and program vShield Zones to open up only the appropriate network ports between them.
At runtime, even more exciting things can happen. Information from the frameworks and tools such as Hyperic can pinpoint slowness in the service, and we can remediate the problem areas by altering settings of VMware DRS, cloning another instance of the web server VM, or even interacting with the traffic managers of the datacenter to balance out the load. And on the runtime availability front, backing all of this are capabilities such as VMware Fault Tolerance and VMware HA, which can help the components survive hardware failures or automatically restart as appropriate.
These capabilities will make deployment to VMware-based PaaS offerings particularly efficient and ready for enterprise usage. You’ll also hear a lot more specifics about these new vCloud technologies in the coming months.
Just the beginning of our “Open PaaS” focus
Where you run your application is just one aspect of “Open PaaS” that we are concentrating on. Going forward, I’ll be elaborating on 3 additional focus areas:
- which languages and frameworks you develop your applications in
- which add-on platform services your applications can leverage
- which devices can access your applications with a great user experience
I hope this has been a useful backdrop for today’s exciting announcement. You can expect to hear a lot more about additional products and partnerships all based on this Open PaaS strategy in the coming months. And I hope you can all attend VMworld 2010 where we’ll be making several more announcements!