A lot of the initial focus in cloud has been on environment deployment. Specifically, it seems like we spend quite a bit of time talking about how cloud building blocks such as virtualization, automation, and standardization will lead to the kind of nimbleness and efficiency previously very hard to attain. While these are all valid and very important points, I think it’s time we push the conversation forward concerning what elements of cloud users should expect to derive value from — especially in the PaaS arena.
I think we can all agree that users leveraging PaaS solutions will benefit from the standard qualities we have associated with cloud for the past few years. In other words, there is certainly nothing about PaaS that jeopardizes rapid deployments, better asset utilization, improved consistency in deployed environments, etc. It is important to recognize though, that the value of PaaS goes quite beyond these table stakes benefits. PaaS has the potential to be transformative in nature, and much of that potential comes down to application services.
Even though application services are a core part of the value proposition of PaaS, they are not talked about much. So what are they? Well, PaaS implies that the platform provides some set of embedded services to your applications. Applications may exploit those services programmatically, or those services may be a crucial element in ensuring the quality of service requirements expressed by an application. As an example, a PaaS solution may provide an embedded cache service that your application can use to store important contextual state. Another example would be a service that scaled your application in and out to meet needs. In any case, I contend that the application services provided by a given PaaS solution ultimately determine its long-term viability and potential value to users.
Given my belief in the crucial role of application services in a PaaS solution, I also have some thoughts on important considerations in the delivery of such services. For those of you considering PaaS solutions, I would suggest you examine the set of application services delivered by each platform and take into account at least some of these considerations:
- Service transparency: The configuration and management of application services provided by the PaaS solution should be completely transparent to the consumer of the service. For example, if I am deploying an application that intends to make use of a platform-provided cache service, I should not have to do anything other than indicate that my application relies on the caching service. The platform should handle configuring the cache service and managing it over time to meet the needs of my application. This is a key facet of moving to a more declarative environment creation and deployment model. After all, it’s not much of a service if consumers have to define and manage it!
- Service sharing: As much as possible, the PaaS solution should have the means to share services among multiple applications without sacrificing quality or security. If a platform runs a scaling service that is capable of managing and initiating scale in and scale out events for applications, it would probably be a waste of resources to have to deploy an instance of that service for every application deployment. Instead, a single logical instance of the scaling service should be able to accommodate a reasonably sized set of application deployments. After all, cloud is about using only what you need when you need it.
- Service governance: While the set of services provided by a PaaS solution should be as transparent as possible to the consumers (application owners), that does not mean that someone does not need a lens through which to watch these services. Authorized users should be able to manage and monitor service resource consumption, manage service exposure, and meter service consumption amongst other things. Another important consideration in this regard is the ability of the PaaS solution to attribute service usage to different users or groups of users. Without this, you will have a significant hole in your cost allocation or chargeback model.
While these certainly do not represent everything you should look for in PaaS application services, I do believe they are among the three more important qualities. We are definitely early on in the PaaS delivery and adoption movement, but I believe we can already see the importance of application services for these solutions. Many platforms are already offering a basic set of services, and over time I would expect a normalization of core application services to appear among the varying PaaS solutions. I will be watching, and I am excited to see and hopefully be a part of the coming innovation!