We can get some help from the internationally accepted NIST definition of cloud computing (pub 800-145). NIST defines PaaS as the capability “to deploy onto the cloud infrastructure consumer-created or acquired applications created using programming languages, libraries, services, and tools supported by the provider.”
A PaaS user doesn’t manage or control the underlying cloud infrastructure, including network, servers, operating systems, or storage. PaaS users do have control over the deployed applications and possibly configuration settings for the application-hosting environment.
Using this definition, you can quickly separate PaaS from SaaS from IaaS offerings. For example, Amazon EC2 and Microsoft Azure allow uploading of a virtual machine (VM) complete with operating system and code. This isn’t PaaS because the definition of PaaS states in part that a PaaS user doesn’t manage or control the underlying operating system (OS). If you can control the OS, then it’s not PaaS.
NIST also states that with Infrastructure as a Service (IaaS) the user “has control over operating systems, storage, and deployed applications; and possibly limited control of select networking components (e.g., host firewalls).” So if you can upload a virtual machine (a type of operating system) then it’s an IaaS service, not PaaS. Easy!
There are PaaS providers that only offer some parts of perhaps one of these these types of PaaS. There are also PaaS providers that offer all or most of the PaaS types. Some even offer PaaS, IaaS and even SaaS services too. This is why standard definitions and terms matter. In the case of the many new PaaS offerings, this allows me to identify five distinct types of PaaS.
- Application Management. This type of PaaS provider doesn’t offer tools for coding applications; the tools they offer assist in the deployment and scale-out of applications.
- Application Deployment. Developers create code as usual, then compile and deploy to cloud PaaS data center. The compiled application runs on the PaaS service provider’s data centers.
- Hosted Integrated Development Environments (IDE). Cloud hosted IDE’s put all development in the cloud. Developers build, test, and deploy using PaaS provider tools via browsers.
- Application Integration. These PaaS services manage program-program logic, also known as “mashups” and hybrid applications. Developers connect combinations of public or private cloud-based applications and data sources.
- Visual Development. This PaaS application development is for business experts vs. traditional coders. These tools create applications visually, without coding, via drag and drop and other non-code solutions.
As the PaaS market heats up, expect to see new combinations of solutions based on these five primary “types” of PaaS. It’s quite possible to use multiple PaaS services to create an end-to-end solution as well.