I spent some time recently trying to understand how platform-as-a-service efforts might evolve from here. The OpenStack Design Summit this past week, and the Talk Cloudy To Me event of the Silicon Valley Cloud Computing Group on Saturday were particularly helpful.
I figure I might as well blog what I found… which is four competing visions by four different sets of people:
The Growing Towers Scenario
In this scenario, the public cloud providers (like Amazon), as well as the infrastructure software vendors (like VMware) grow their products further up the stack. Some of this can already be seen with Amazon, which started with low-level functionality (EC2, S3) but is adding higher-level services all the time (like Beanstalk and Cloud Formation).
Here, PaaS becomes a feature of a larger, vertically integrated product which today is mainly IaaS. As a result, each IaaS player will have their own PaaS implementation, and no distinct PaaS market remains. Developers will chose which cloud to run on based not only on considerations such as uptime, cost, scalability etc. of the cloud but the platform-level APIs available to them.
The billing relationship is between developer and cloud provider.
The PaaS dethrones IaaS Scenario
In this scenario, providers of hosted PaaS services (like Google) attract developers away from IaaS providers. Because PaaS does a lot of things that developers would otherwise have to do themselves with IaaS, the PaaS proposition becomes irresistable.
PaaS providers specialize on particular kinds of applications (e.g. by language, as today, or by ability to switch over from one IaaS provider to another automatically, or even to intelligently distribute load across them all the time). IaaS providers become an afterthought to developers, and PaaS providers become the primary customers of IaaS providers.
The billing relationship is between developer and PaaS provider, and between PaaS provider and IaaS provider.
The Any PaaS Anywhere Scenario
In this scenario, IaaS providers do not “bolt on” a particular, preferred PaaS to their clouds, but support as many PaaS systems as possible on their clouds. This will lead to essentially any PaaS being available on any cloud. This scenario is particularly likely if more PaaS implementations become available as code, not just as hosted offerings.
Here, the amount of money made in the PaaS layer is rather low. The billing relationship is between developer and IaaS provider, with a cut going to whoever manages the PaaS — which may be the IaaS provider or a third party.
The Bring Your Own PaaS Scenario
In this scenario, PaaS is a just another component that’s deployed by the developer as part of deploying their application on a cloud. This has been the state of the art so far: serious application developers needed PaaS-like functionality but PaaS systems weren’t mature enough, so they had to write one themselves for their own needs. As more open-source PaaS offerings emerge, developers pick what they like and deploy an instance of the PaaS system on their IaaS servers specifically for their app.
Here, PaaS is most likely open-source and free but could conceivably also be proprietary software. The billing relationship remains between developer and IaaS provider.
So which one is going to win?