As more technology companies shift to offering their products and services via cloud computing, questions often arise regarding the differences between Software as a Service (“SaaS”), Platform as a Service (“PaaS”), and Infrastructure as a Service (“IaaS”).
Software as a Service (SaaS)
SaaS is a way to deliver applications over the internet, and these applications are managed by a provider. Instead of installing and maintaining software on a local server or hard drive, the end user usually has the ability to access the software via a web browser from anywhere. A provider has already built the software and has it hosted on a platform. Common components of SaaS include: web access to commercial software, the software is managed from a central location, end users are not generally required to handle software upgrades and patches, and APIs allow for integration between different pieces of software.
There are plenty of benefits of SaaS. SaaS works well for scenarios that involve significant or frequent interaction between an end user company and its customers (promotional marketing email blasts, for example), as well as applications that have a significant need for web or mobile access. An end user does not have to be especially tech savvy as the SaaS provider handles all technical aspects of the service. SaaS is sometime viewed as the most convenient cloud-based type of service in terms of maintenance since the software is usually entirely managed by the provider.
SaaS is not without its drawbacks and limitations. If an application requires extremely fast processing of real time data, SaaS is not the best cloud-based vehicle. Additionally, some laws and regulations prohibit certain types of data from being hosted externally.
Arguably the most well-known type of cloud computing, SaaS offers simple and user friendly solutions for companies of all sizes. Well-known products that utilize SaaS are Gmail and Google Docs, as well as Microsoft CRM.
Platform as a Service (PaaS)
PaaS is a computing platform that allows for the quick and easy creation of web applications. PaaS is similar to SaaS, except rather than delivering software, PaaS is the delivery of a platform for the creation of software over the web. PaaS makes development, testing, and deployment of applications quick, simple, and cost-effective. Common characteristics of PaaS include: services to develop, test, deploy, host, and maintain applications within the same integrated development environment; web based user interface creation tools to create and modify different scenarios; built-in scalability of software; tools to handle billing and subscription management; and support for development team collaboration.
PaaS is great for a number of scenarios. When multiple developers are working on a project, or there is a need for external parties to interact with the development process, PaaS can be ideal. If developers want to automate their testing and deployment services, PaaS is also probably the best route. PaaS is popular among developers since PaaS allows them to focus on the development of applications or scripts, and there is no need to worry about server management or traffic load.
However, there are circumstances where PaaS may not be the best solution. PaaS would not be ideal if proprietary languages or approaches would impact the development process. If the software needs to be highly portable in terms of where it is hosted, or if software performance requires customization of the underlying hardware and software then PaaS may not be able to meet all of the target needs. Well know products that utilize PaaS are Microsoft Azure, Google App hosting, and Heroku.
Infrastructure as a Service (IaaS)
IaaS is a self-service model for accessing and managing remote datacenter infrastructures. Essentially, IaaS is a way of delivering cloud computing infrastructure, such as servers, storage, network, and operating systems, as an on demand service. Users can purchase IaaS based on their consumption, similar to paying utility bills. Unlike with SaaS and PaaS, IaaS users are responsible for managing applications, data, runtime, and middleware. Core traits of IaaS include: dynamic scaling, resources that are distributed as a service, and a variable pricing model.
The greatest strength of IaaS is the flexibility it offers. If demand on the infrastructure of a company fluctuates significantly or if a company lacks capital to invest in hardware, IaaS is the way to go. IaaS is great if an organization is growing rapidly, it would be problematic to scale hardware and/or a company is rolling out an experimental project. IaaS is most popular among highly skilled developers and researchers who require custom configuration. IaaS allows the user the highest degree of control, and the ability to customize the product to the highest degree.
If regulatory compliance makes the outsourcing or offshoring of data storage difficult, then IaaS would not be the ideal solution. IaaS is also not ideal if extremely high levels of performance are required. Well-known examples of IaaS vendors are Microsoft, Amazon, and Openstack.