This morning, an article I wrote titled “Don’t Pass on PaaS in 2010” was published by eBizQ. The article provides an overview of PaaS for IT practitioners with particular emphasis on addressing the “so what?” question. I encourage you to check it out.
In the article, I present what I propose here as the “Essential Characteristics of Platform-as-a-Service,” with an obvious hat-tip to Peter Mell and Tim Grance’s cloud computing definition for NIST.
The Essential Characteristics of PaaS
Runtime Framework: This is the “software stack” aspect of PaaS, and perhaps the aspect that comes first to mind for most people. The PaaS runtime framework executes end-user code according to policies set by the application owner and cloud provider. PaaS runtime frameworks come in many flavors, some based on traditional application runtimes, others based on 4GL and visual programming concepts, and some with pluggable support for multiple application runtimes.
Abstraction: Platform-oriented cloud platforms are distinguished by the higher level of abstraction they provide. With IaaS, the focus is on delivering to users “raw” access to physical or virtual infrastructure. In contrast, with PaaS, the focus is on the applications that the cloud must support. Whereas an IaaS cloud gives the user a bunch of virtual machines that must be configured and to which application components must be deployed, a PaaS cloud provides the user a way to deploy her applications into a seemingly limitless pool of computing resources, eliminating the complexity of deployment and infrastructure configuration.
Automation: A PaaS environment is a bit like a swan on a pond — graceful and elegant above the water, and paddling its little legs off below the water. The aforementioned abstraction provides the elegant user experience “above the water,” while high levels of automation provide the “paddling” beneath the surface. PaaS environments automate the process of deploying applications to infrastructure, configuring application components, provisioning and configuring supporting technology like load balancers and databases, and managing system change based on policies set by the user.While IaaS is known for its ability to shift capital costs to operational costs through outsourcing, only PaaS is able to slash costs across the development, deployment and management aspects of the application lifecycle.
Cloud Services: PaaS offerings provide developers and architects with services and APIs that help simplify the job of delivering elastically scalable, highly available cloud applications. These cloud services provide a wide variety of capabilities, and in many instances are key differentiators among competing PaaS offerings.Examples of cloud services include services and APIs for distributed caching, queuing and messaging, workload management, file and data storage, user identity, analytics, and more. By providing built-in cloud services, platform offerings eliminate the need to integrate many disparate components and decrease time-to-market for applications on the platform.
I hope to build on these characteristics in future posts. In the mean time, what do you think? Anything you would eliminate? Anything you would add?