There are three main categories of cloud service providers: Software as a Service (SaaS), Platform as a Service (PaaS) and Infrastructure as a Service (IaaS). More recently, a fourth category has emerged that some are calling Infrastructure as a Service Plus (IaaS+). Below, I will describe each of these as well as how IaaS+ has evolved from borrowing elements from PaaS and IaaS.
Most people have heard of Software as a Service (SaaS). It is defined as a software licensing model where a third party hosts applications and makes available applications to their customers over the Internet. Examples of popular SaaS providers/applications are Google Apps, Salesforce and Basecamp.
PaaS offers platforms that allow developers to create and operate applications without dealing with the overhead of setting up infrastructure such as servers, databases and networks. The main advantage of these platforms is that they allow rapid software development and deployment. A disadvantage is that there is less flexibility when/if an application needs access to low-level hardware and/or software. There is also the risk of becoming locked into a particular provider, making it hard to move the application to another company in the future.
Some examples of PaaS providers are Google App Engine, Heroku and Windows Azure.
Also referred to as Cloud Computing Infrastructure, IaaS delivers core infrastructure such as servers, storage and networks on demand. By allowing customers to quickly add, remove and reconfigure resources, these providers are a great tool for companies that do not want to invest the time and money in their own infrastructure.
IaaS providers like Amazon AWS, Linode and Rackspace Cloud have become very popular. Many companies large and small have migrated some or all of their infrastructure from self-hosted or co-located infrastructure to cloud infrastructures.
More recently, IaaS providers have started offering additional services “further up the stack” from core infrastructure like servers and storage, but that are not as tightly coupled as those offered by PaaS providers. Examples of these services include database services, content delivery networks (CDNs) and message queues. Some people are referring to these “middle ground providers as IaaS+. Some examples include Amazon AWS and Rackspace Cloud.
One of the main draws to IaaS+ is that it offers higher-level services similar to PaaS, but does so in a modular way. For example, a developer may choose to have the provider manage their database infrastructure, but use raw compute resources to run their application. This flexibility can be a “best of both worlds” solution for companies needing a flexible infrastructure to accommodate applications that might be too complex for a PaaS platform.
PaaS, IaaS and IaaS+ providers will all likely continue to have a place in the market. Whichever works best for your project, advancements in cloud computing are making is the clear choice for the majority infrastructure needs.