Recent commentaries by cloud industry luminaries Reuven Cohen & Krishnan Subramanian address key issues related to relative importance and potential longevity of an independent Platform-as-a-Service (PaaS). In his commentary, Reuven poses, “Do consumers really care about the difference between IaaS and PaaS?” The answer to this question is most likely, no, but that doesn’t eliminate the need for distinction, it merely is a matter of how best to deliver the value of cloud computing to users.
In his commentary, Krishnan does an excellent job of exploring one way to classify PaaS as either service or container orchestration. However, in some ways, the distinction introduces more confusion. For example, his use of Docker illustrates how convergence of IaaS and PaaS actually makes sense for the industry and, thus, diminishes his key point that there’s value in the cloud application layer existing as a distinct layer within the cloud stack.
Ultimately, I don’t believe either piece truly makes the case for the importance of independence between IaaS and PaaS, which has to do with the ability to optimize for economics of the cloud. Consider a converged IaaS/PaaS environment. IaaS should be optimized for the management and delivery of virtual application infrastructure, e.g. networking, storage and compute. In contrast, PaaS requires optimization for scalability and availability of applications. Moreover, each application requires optimization in different areas, for example, some require high number of storage I/O per second while others, such as Hadoop, rely on the ability to “spin up” and reclaim thousands of virtual servers.
Operations staffs are having a difficult enough time just trying to deliver a functioning IaaS to their end users with a self-service interface. Expecting that IaaS to also support every type of application that application development might ever think of is unreasonable and would drive deeper in operations-related engineering, which is one of the drivers for the high cost of IT. PaaS provides the right level of distribution of responsibility within the enterprise. A well-designed and operated PaaS should provide the appropriate services on which a PaaS could be layered. In turn, the PaaS could then extend the features of IaaS to ensure appropriate support for storage and network performance to operate the application as part of the deployment.
Indeed, if convergence is to occur in the industry, it is PaaS that should expose IaaS functionality and not the other way around. Assuming advancement of software-defined data center (SDDC) architecture, the PaaS should be able to program and configure the necessary infrastructure required for the deployment and management of an application over time. Hence, the application package will become the primary descriptor for the required infrastructure required to operate the application and the SDDC will provision as requested or deny the request for resources. Thus, rendering invalid the need for a self-service portal for provisioning virtual servers and, instead, relying on the cloud application architecture to consume resources as needed.