It seems rather straight-forward that as cloud computing adoption increases and the state of the art evolves, we will see a natural move by consumers toward cloud services that provide a higher level of abstraction. Discounting cloud-based software services (which I believe constitute the largest concentration of hype-generating service providers), many cloud service consumers do their drinking from the cloud infrastructure services fountain. This is to say that a large number of consumers in the cloud deal with services where the unit of work is a server, block of storage, networking subnet, or some other kind of basic compute resource.
The natural move then is to raise the level of that unit of work to the applications that utilize those compute resources. In other words, a shift that many believe will occur over time leads us from cloud-based infrastructure services (IaaS if you prefer) to cloud-based platform services (PaaS). At the risk of understating such a shift, this is huge and has many implications to both providers and consumers. From a simple standpoint, this transformation will mean an increase in complexity for cloud service providers and a decrease in complexity for cloud service consumers.
The increase in complexity for the cloud service provider is attributable to many different factors:
- Providers must effectively manage raw compute resource AND the application platforms on which user applications rely
- Providers must provide an extensible framework that allows applications services to plug in seamlessly
- Providers must translate a user’s application service-level requirements into a set of deployed infrastructure and runtime policies
- Providers must enable security mechanisms in the context of applications
You could go on and on about the requirements for cloud platform service providers that add up to the increased complexity over cloud infrastructure service providers. By no means am I saying being a cloud-based infrastructure service provider is trivial. Being a cloud-based infrastructure service provider is hard, but being a cloud-based platform service provider is harder.
It is this increase in complexity that leads me to an interesting question: What effect will the move towards Platform as a Service have on cloud delivery models? I ask this question with an open mind because unlike some, I subscribe to the concept of multiple delivery models for the cloud. That is right, I “believe” in the on-premise/private cloud, and in some cases, the on-premise approach to clouds is exactly the right thing. However, the difficultly associated with delivering a PaaS framework makes me wonder how this translates to the on-premise cloud landscape.
Absent a pretty nice and robust management wrapper around the PaaS framework, the complexity of standing one up for the typical enterprise use case seems pretty daunting. Consider a single element of the PaaS solution: software infrastructure it utilizes to provide applications services. These infrastructure bits come in the form of application servers, web servers, data caches, security services, etc. If a user wants to stand up a PaaS solution entirely on-premise, does this mean they are responsible for acquiring the infrastructure software bits and figuring out how they plug into the framework? Do they have to figure out how to denote that it should be a shared vs. a dedicated service? I would think the answer is yes to both of these questions, and to me, that alone sounds like quite a bit to ask.
If I were to answer my own question about the effect of PaaS on cloud delivery models, I would say that this gradual move toward PaaS would spur on the move to hybrid delivery models. It is a simplification of the complexities of enterprise application environments to say that PaaS means a wholesale move to the public cloud. In many cases, I believe it will make sense for the PaaS framework to exist on the public cloud where a provider manages its construction, availability, scalability, and the required maintenance. In turn, the PaaS framework may use both on-premise and off-premise infrastructure clouds to host the application environments it creates based on user requests. This affords users flexibility without sacrificing the simplification that PaaS promises. What do you think?