In my last post (GigaSpaces OpenStack Explained) I introduced our plan to add support for OpenStack in our platform:
One of the goals for our second-generation PaaS/SaaS enablement platform was to enable smooth migration between different cloud providers. We were able to achieve this goal through the use of our own abstraction (the Scaling Handler) and through the integration with the JClouds project that provides common abstraction to most of the existing cloud providers. With that, we can ensure that any application can be moved from the likes of Amazon to OpenStack or to an organization's own private cloud with zero changes to the application code or configuration.
The only change involves is setting the user/key of the specific cloud.
By adding support for OpenStack, we now enable users to safely move to an OpenStack-based cloud when they're ready and with little effort, yet they gain all the benefits that comes with it in terms of cost, openness etc.
Yesterday, I had a session during the OpenStack Summit where I tried to present a more general view on how we should be thinking about PaaS in the context of OpenStack.
The key takeaway :
The main goal of PaaS is to drive productivity into the process by which we can deliver new applications.
Most of the existing PaaS solutions take a fairly extreme approach with their abstraction of the underlying infrastructure and therefore fit a fairly small number of extremely simple applications and thus miss the real promise of PaaS.
Amazon's Elastic Beanstalk took a more bottom up approach giving us better set of tradeoffs between the abstraction and control which makes it more broadly applicable to a larger set of applications.
The fact that OpenStack is opensource allows us to think differently on the things we can do at the platform layer. We can create a tighter integration between the PaaS and IaaS layers and thus come up with better set of tradeoffs into the way we drive productivity without giving up control. Specifically that means that:
- Anyone should be able to:
- Build their own PaaS in a snap
- Run on any cloud (public/private)
- –Gain multi-tenancy, elasticity… Without code changes.
- Provide a significantly higher degree of control without adding substantial complexity over our:
- Language choice
- –Operating System
- –Middleware stack
- Should come pre-integrated with a popular stack:
- Spring,Tomcat, DevOps, NoSQL, Hadoop...
- Designed to run the most demanding mission-critical apps
The slides below illustrate a very high-level overview of the problems as well as how OpenStack can help provide a solution, from the presentation at the Summit:
We’ve recorded a short demo that shows how all different pieces pieces actually work together in the context of OpenStack:
You should note that since the demo was mainly targeted at illustrating the OpenStack integration through JClouds/OpenStack provider, it doesn’t cover much of the feature set, such as Multi-tenancy, fine-grained monitoring, or fail-over, nor does it show deploying full-blown web-apps and big-data apps, etc.
The actual code for the JClouds/OpenStack provider should be available through the JClouds project shortly.
Call for action
Today, there is a lot of work and interesting innovation being done in the PaaS world by different providers. Unfortunately a lot of that work is done with very little collaboration. The OpenStack community can be a great environment to put all those great ideas into something meaningful and open.
I hope that our initial joint work with OpenStack, Citrix, JClouds, and GridDynamics can be a good start in that direction.
I’m trying to figure out what’s should be the right way to establish a more formalized Open-PaaS group as part of the OpenStack community. Any ideas/help would be greatly appreciated...