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