Infrastructure-as-a-service (IaaS) offers small organizations compute, network, and storage resources on par with the IT capabilities afforded previously to only larger, well-capitalized organizations. Now, PaaS has the potential of taking this IT on-demand concept a step further with applications and services.
IaaS was first popularized by Amazon Web Services (AWS). The startup community embraced the model where no upfront capital expenditure was required, and IT burden was significantly reduced because IaaS provided both infrastructure and operations management for a fee. This model gave startups, and larger enterprises alike, a much faster time to market than building out infrastructure themselves.
Since being introduced, IaaS has gone mainstream in enterprise organizations. EMC itself is 92% virtualized and provides IaaS to its internal customers.
Following a similar course taken by IaaS, PaaS is currently available on the fringe of enterprises from providers like Heroku and CloudBees, as well as more established providers like Google App Engine and Microsoft Azure. Like IaaS before, PaaS could gain significance as the offerings mature and enterprises get savvy to the benefits of this platform model.
What is PaaS?
PaaS, like IaaS, offers IT on-demand from a virtual environment that, for the most part, removes operational concerns from the customer, allowing them to focus on core competencies and the business at hand. The fundamental difference between IaaS and PaaS, however, is in the unit of currency. IaaS barters in units of compute, network, and storage resources. PaaS, on the other hand, raises the exchange model to applications and services. More specifically, PaaS provides containers in which to run applications and services that these applications consume like persistence services (e.g. SQL and NoSQL) and messaging services.
How does PaaS compare to IaaS?
To better contrast and compare these two cloud-service models, consider a scenario where developers need to build a new Web application. With IaaS, developers need to:
- Purchase and provision some virtual machines (VMs) with associated networking and storage resources from a cloud services provider
- Install their database server onto one of the VMs
- Install an application server on another VM
- Install the framework (e.g. the Spring framework) onto the application server
- Build the application, configure it to connect to the database instance, and deploy the application.
With PaaS, on the other hand, developers only need to:
- Build the application, configure it to connect to a database instance on the PaaS, and deploy the application
Taking IT up a Notch
PaaS is not just about developer productivity, but also about operations. With IaaS, cloud services providers set up, manage, and present the virtual servers, networking, and storage, making sure there are enough of these resources available to be consumed in the units associated with each resource (e.g. VMs, bandwidth, and terabytes). With PaaS, cloud services providers still ensure the raw compute, networking, and storage resources are available and properly configured. But, the providers also present the application containers (e.g. application servers and development frameworks) and services to be consumed in the PaaS model. For example, the provider ensures enough application or data base servers to run applications are available to be deployed on-demand. If application server or database capacity gets low, the PaaS provider is responsible for making more of these resources available.
What are the important parts of a PaaS?
There are four (4) areas to consider when evaluating a PaaS provider:
- Polyglot programming. Many enterprises, especially larger organizations, need support for a variety of skill sets and programming languages in their developer community. Additionally, certain languages and frameworks are more suitable than others for addressing specific problems. Polyglot programming provides support for these diverse needs.
- Open architecture. Open source software use in the enterprise has been on the rise due to the advantages it brings such as a community driven, rapid development, and frequent release model. Part of a PaaS offering’s value lies in the range of application frameworks and services it offers. An open source PaaS offers a natural way for anyone to extend it, like VMware Cloud Foundry: an open platform-as-a-service offering which provides a choice of clouds, developer frameworks and application services.
- Security. When taking sensitive data off-premise (i.e. populating an external database for application development) security is of key importance. Check PaaS providers’ compliance certifications, usually posted on the providers’ websites. A number of the upstarts like Heroku actually use Amazon Web Services for IaaS, leveraging the trusted environment Amazon built for their own PaaS offerings. Just keep in mind that any service call to a provider leveraging another provider’s infrastructure adds a layer to the support infrastructure, increasing the difficulty for a PaaS provider of finding and correcting potential problems.
- Hybrid cloud support. Enterprises have a strong interest in the hybrid cloud, where they operate an internal cloud as well as leverage a public cloud. This interest puts the focus on portability, which can be achieved using one of two approaches when considering PaaS. First, the same PaaS could be used both internally and externally ensuring workloads can be deployed in either location, using the same tools. This approach gives enterprises the flexibility to choose the infrastructure over which the PaaS operates, such as on the AWS public cloud and on vSphere for the internal private cloud, for example. A second approach to portability is to use open interfaces, as OpenStack did for IaaS. The Cloud Foundry PaaS uses both approaches including support for vSphere, AWS, and OpenStack-based infrastructures, and, just as OpenStack, offers interfaces and implementation in the open source.
While still too early to predict, the future of platform-as-a-service offerings looks full of promise—and are potentially as relevant to enterprises as IaaS before it. PaaS resonates with the themes consistent with cloud computing—the reduction of capital expenditure and IT burden, and increased agility—which should continue to make it attractive to many organizations dealing with budget constraints and delivery issues. With PaaS, organizations can focus on higher-value activities like getting core business offerings or services to market faster—even if the market is internal customers. For more information on PaaS provider offerings, read the recent InfoWorld article playfully titled: Which Freaking PaaS Should I Use?
Thank you to Cornelia Davis for co-authoring this post about platform-as-a-service (PaaS). Cornelia is a senior technologist in the Pivotal Initiative at EMC Corporation. Her primary focus is on integration approaches with an emphasis on RESTful SOA.