Key difference – level of control
Each cloud service model provides a different level of control that translates to varying levels of responsibility on you. In a SaaS solution, the service provider manages everything, and you can change some configurations once you sign-up. With IaaS, you have full control because you rent (not own) the infrastructure. With PaaS solutions, you control the application and data while the service provider manages the rest of the stack.
You will need to decide how much you want to manage yourself and how much you want your service provider to manage. Here’s a graphical representation of how the three models compare in terms of who manages what.
Examples for SaaS, PaaS and IaaS
Before we jump into the conceptual understanding for each cloud service model, let’s look at common examples for each cloud service model.
|Cloud service model||Examples||Typical categories|
|SaaS||Salesforce, SAP concur, Shopify, MailChimp, Dropbox, Hubspot, Google Applications (G Suite).|| |
Typical SaaS applications include industry applications such as:
|PaaS||AWS Elastic Beanstalk, Windows Azure, Heroku, Force.com, Google App Engine, OpenShift, SAP Cloud, AWS Lambda, Azure Functions.|| |
PaaS sub-categories include:
|IaaS||Amazon Web Services (AWS), Microsoft Azure, Google Compute Engine (GCE), IBM Cloud, Rackspace, Digital Ocean, Oracle Cloud.|| |
IaaS categories of physical and virtualized resources:
What is IaaS?
Infrastructure-as-a-Service (IaaS) is a form of cloud computing service that offers compute, storage and networking resources on-demand, usually on a pay-as-you-go basis. Businesses can purchase resources on-demand and as-needed instead of having to buy the hardware outright.
While IaaS gives you virtualized resources such as servers, disks, networks, and IP addresses, you are still responsible for administering the operating system, data, applications, middleware and runtimes. A dashboard or an API gives you complete control over the entire infrastructure.
IaaS gives you the flexibility to purchase only the computing you need and scales them up or down as needed. If you are looking to migrate an application as-is from an on-premises data center to the cloud, choose the IaaS model. You will be able to proceed with the migration with minimum changes.
Because of its speed of deployment, IaaS is a quick and flexible way to build up and take down development and testing environments.
Examples of IaaS include Rackspace, Amazon Web Services (AWS) Elastic Compute Cloud (EC2), Microsoft Azure, Google Compute Engine (GCE) and Joyent.
Advantages of IaaS:
- IaaS is advantageous when scalability and quick provisioning are key. Cloud Service Providers can provide a variety of hardware configuration with pre-configured operating systems such as Linux or Windows. You can also use rapid provisioning patterns with Infrastructure as Code (IaC) to create packages of IT resources that can be bundled and deployed into ready-made environments.
- Enables dynamic scaling – add capacity during peak times, scale down as needed.
- Eliminates the need for large CAPEX. Cloud service providers offer “pay as you use” pricing models where you only pay resources you use thus resulting in lower costs. If you stop a virtual machine, your billing is also stopped. This offers significant cost savings since you are billed only for actual utilization instead of traditional flat/fixed fees.
- Provisioning and deployment of resources are very simple.
- Eases the management of the environment with near-nil personnel as opposed to the on-premises infrastructure.
- Global infrastructure with edge locations around the world.
- You get service-level agreements from the cloud provider for standards of service.
Disadvantages of IaaS:
- Since the infrastructure is under the control of the service provider, outages in the service provider controlled infrastructure can affect the customer infrastructure.
- Troubleshooting is more difficult because IaaS customers do not have complete visibility to the cloud service provider infrastructure.
- If peak usage is high, monthly costs may be much higher than expected.
- Since instances are easy to create, instance sprawl could happen – i.e., instances are created, but administrators forget to take them down.
- The provider may share infrastructure across multiple clients, and this adds to the security risk if you are in a highly regulated industry.
What is PaaS?
Platform-as-a-Service (PaaS) provides a framework for application creation and deployment. The technical stack (e.g., AWS Beanstalk, Google App Engine) required for application development is available on the cloud, which requires no download or local installation.
With PaaS, developers can focus on building their applications without having to worry about operating systems, software updates, storage or infrastructure. You get a “platform” with built-in software components for both hardware and software such as runtime libraries, tools, applications, email and HTTP servers. This allows developers to rapidly develop, run, and manage their own apps without having to build and maintain the infrastructure or platform usually associated with the process.
PaaS applications are scalable and highly available as they take on certain cloud characteristics.
Popular PaaS services include AWS Elastic Beanstalk, Engine Yard, Red Hat OpenShift, Google App Engine, Heroku, Appfog and Azure App Service.
PaaS is beneficial if you need to create and deploy applications quickly or if you need to streamline workflows when multiple developers are working on the same development project.
Advantages of PaaS:
While IaaS offers resources such as servers, disks, networks, and IP addresses, PaaS offers you a set of predefined and ready-to-use building blocks for composable applications such as middleware, application servers and development tools. This has some distinct advantages:
- Faster time to market and agility: PaaS can cut the time it takes to prototype, design and develop new applications with pre-crafted application components such as git repository, authentication, workflow, search and directory services and IDEs such as Eclipse or Visual Studio built into the platform. Developers and operations can focus on the application instead of dealing with the overhead of managing virtual machines, networks, disks etc. Geographically distributed remote teams can work in unison because the development environment is standardized and is typically accessed over the internet.
- Lower skill requirements through standardization: In the modern IT landscape, development tools and middleware are rarely standardized. The learning curve on each tool is steep and talent is hard to acquire and retain. Since PaaS provides sophisticated and off-the-shelf components as well as built-in security, data protection and resilience capabilities out of the box, you can scale your development efforts without needing to add staff having the required skills.
- Scalability and reliability while retaining control: With PaaS, you get automatic load balancing, scaling and multiple availability zones to improve application reliability and availability. You still have the freedom to choose the underlying VM instance type via the command line and console.
Disadvantages of PaaS:
- Services vary from vendor to vendor, and hence, the selection of services becomes important.
- The risk of lock-in with a vendor could impact the ecosystem you need for your development environment.
What is SaaS?
Software as a Service (SaaS) is a web-based software deployment model that makes the software accessible through a web browser. As a user of SaaS software, you don’t care where the software is hosted, which operating system it uses, or which language it is written in. The SaaS software is made accessible from any device as long you have an internet connection. With SaaS, you do not incur the capital cost of buying servers or software. The service provider shields you from software maintenance and you simply connect to the SaaS application via a console dashboard or API. Typical examples would include Microsoft Office 365, Intuit, Salesforce CRM, Zoom, ZoomInfo, Dropbox, Google Apps and many more that are for consumption by end-users. These applications run on the cloud and need not be downloaded to a local device. Webmail such as Outlook, Gmail, Yahoo, etc., is one of the earliest forms of SaaS.
SaaS makes it easy for you to focus on your core business. It is a great option for businesses that don’t have the staff or bandwidth to handle software installation and updates.
With SaaS, you tradeoff loss of control, security, and performance in exchange for time and maintenance savings. Choose SaaS vendors wisely based on several factors including:
- security, privacy and compliance
- reliability and performance
- support levels
- vendor lock-in
- the vendor’s roadmap and finances.
Advantages of SaaS:
- Offers off-the-shelf convenience and ease of use.
- Provides flexibility due to access across devices and geographies.
- As a subscription-based model, it allows for budgeting and planning ahead.
- Self-provisioning (ability to add users as needed).
- No maintenance or installation requirements.
- You don’t pay for the hardware that runs the application.
- You don’t need to worry about maintenance or licensing fees.
- Nothing to install and no support worries.
Disadvantages of SaaS:
- Limits customization and loss of control on updates.
- Regulatory issues may require you to store data in specific locations. If the SaaS provider cannot guarantee you this, SaaS may not be an option.
- Service lock-in with SaaS provider.
In this article, we looked at the three main cloud computing service models – IaaS, PaaS and SaaS. We looked at the major differences, examples and guiding factors for how to choose between them.
The model that you ultimately choose depends on your application objectives. Here’s a quick recap: