IaaS vs. PaaS vs. SaaS
IaaS vs. PaaS vs. SaaS
What are Iaas, Paas and Saas?
IaaS, PaaS and SaaS are the three most popular types of cloud service offerings. (They are sometimes referred to as cloud service models or cloud computing service models.)
- IaaS, or infrastructure as a service, is on-demand access to cloud-hosted physical and virtual servers, storage and networking - the backend IT infrastructure for running applications and workloads in the cloud.
- PaaS, or platform as a service, is on-demand access to a complete, ready-to-use, cloud-hosted platform for developing, running, maintaining and managing applications.
- SaaS, or software as a service, is on-demand access to ready-to-use, cloud-hosted application software.
IaaS, PaaS and SaaS are not mutually exclusive. Many mid-sized businesses use more than one, and most large enterprises use all three.
'As a service' refers to the way IT assets are consumed in these offerings - and to the essential difference between cloud computing and traditional IT. In traditional IT, an organization consumes IT assets - hardware, system software, development tools, applications - by purchasing them, installing them, managing them and maintaining them in its own on-premises data center. In cloud computing, the cloud service provider owns, manages and maintains the assets; the customer consumes them via an Internet connection, and pays for them on a subscription or pay-as-you-go basis.
So the chief advantage of IaaS, PaaS, SaaS or any 'as a service' solution is economic: A customer can access and scale the IT capabilities it needs for a predictable cost, without the expense and overhead of purchasing and maintaining everything in its own data center. But there are additional advantages specific to each of these solutions.
IaaS is on-demand access to cloud-hosted computing infrastructure - servers, storage capacity and networking resources - that customers can provision, configure and use in much the same way as they use on-premises hardware. The difference is that the cloud service provider hosts, manages and maintains the hardware and computing resources in its own data centers. IaaS customers use the hardware via an internet connection, and pay for that use on a subscription or pay-as-you-go basis.
Typically IaaS customers can choose between virtual machines (VMs) hosted on shared physical hardware (the cloud service provider manages virtualization) or bare metal servers on dedicated (unshared) physical hardware. Customers can provision, configure and operate the servers and infrastructure resources via a graphical dashboard, or programmatically through application programming interfaces (APIs).
IaaS can be thought of as the original 'as a service' offering: Every major cloud service provider - Amazon Web Services, Google Cloud, IBM Cloud, Microsoft Azure - began by offering some form of IaaS.
Benefits of IaaS
Compared to traditional IT, IaaS gives customers more flexibility build out computing resources as needed, and to scale them up or down in response to spikes or slow-downs in traffic. IaaS lets customers avoid the up-front expense and overhead of purchasing and maintaining its own on-premises data center. It also eliminates the constant trade-off between the waste of purchasing excess on-premises capacity to accommodate spikes, versus the poor performance or outages that can result from not having enough capacity for unanticipated traffic bursts or growth.
Other benefits of IaaS include:
- Higher availability: With IaaS a company can create redundant servers easily, and even create them in other geographies to ensure availability during local power outages or physical disasters.
- Lower latency, improved performance. Because IaaS providers typically operate data centers in multiple geographies, IaaS customers can locate apps and services closer to users to minimize latency and maximize performance.
- Improved responsiveness. Customers can provision resources in a matter of minutes, test new ideas quickly and quickly roll out new ideas to more users.
- Comprehensive security. With a high-level of security on-site, at data centers, and via encryption, organizations can often take advantage of more advanced security and protection they could provide if they hosted the cloud infrastructure in-house.
Faster access to best-of-breed technology. Cloud providers compete with each other by providing the latest technologies to their users, IaaS customers can take advantage of these technologies much earlier (and at far less cost) than they can implement them on premises.
IaaS use cases
Common uses of IaaS include:
- Disaster recovery: Instead of setting up redundant servers in multiple locations, IaaS can deploy its disaster recovery solution to the cloud provider's existing geographically-dispersed infrastructure.
Ecommerce: IaaS is an excellent option for online retailers that frequently see spikes in traffic. The ability to scale up during periods of high demand and high-quality security are essential in today’s 24-7 retail industry.
Internet of Things (IoT), event processing, artificial intelligence (AI): IaaS makes it easier to set up and scale up data storage and computing resources for these and other applications that work with huge volumes of data.
Startups: Startups can't afford to sink capital into on-premises IT infrastructure. IaaS gives them access to enterprise-class data center capabilities without the up-front investment in hardware and management overhead.
- Software development: With IaaS, the infrastructure for testing and development environments can be set up much more quickly than on-premises. (However, this use case is better suited to PaaS, as you'll read in the next section.)
PaaS provides a cloud-based platform for developing, running, managing applications. The cloud services provider hosts, manages and maintains all the hardware and software included in the platform - servers (for development, testing and deployment), operating system (OS) software, storage, networking, databases, middleware, runtimes, frameworks, development tools - as well as related services for security, operating system and software upgrades, backups and more.
Users access the PaaS through a graphical user interface (GUI), where development or DevOps teams can collaborate on all their work across the entire application lifecycle including coding, integration, testing, delivery, deployment, and feedback.
Examples of PaaS solutions include AWS Elastic Beanstalk, Google App Engine, Microsoft Windows Azure, and Red Hat OpenShift on IBM Cloud.
Benefits of PaaS
The primary benefit of PaaS is that it allows customers to build, test, deploy run, update and scale applications more quickly and cost-effectively than they could if they had to build out and manage their own on-premises platform. Other benefits include:
- Faster time to market: PaaS enables development teams to spin-up development, testing and production environments in minutes, vs. weeks or months.
- Low- to no-risk testing and adoption of new technologies: PaaS platforms typically include access to a wide range of the latest resources up and down the application stack. This allows companies to test new operating systems, languages, and other tools without having to make substantial investments in them, or in the infrastructure required to run them.
- Simplified collaboration: As a cloud-based service, PaaS provides a shared software development environment, giving development and operations teams access to all the tools they need, from anywhere with an Internet connection.
- A more scalable approach: With PaaS, organizations can purchase additional capacity for building, testing, staging and running applications whenever they need it.
- Less to manage: PaaS offloads infrastructure management, patches, updates and other administrative tasks to the cloud service provider.
PaaS use cases
PaaS can advance a number of development and IT initiatives including:
API development and management: With its built-in frameworks, PaaS makes it easier for teams to develop, run, manage and secure APIs for sharing data and functionality between applications.
Internet of Things (IoT): PaaS supports a range of programming languages (Java, Python, Swift, etc.), tools and application environments used for IoT application development and real-time processing of data from IoT devices.
Agile development and DevOps: PaaS solutions typically cover all the requirements of a DevOps toolchain, and provide built-in automation to support continuous integration and continuous delivery (CI/CD).
Cloud-native development and hybrid cloud strategy: PaaS solutions support cloud-native development technologies - microservices, containers, Kubernetes, serverless computing - that enable developers to build once, then deploy and manage consistently across private cloud, public cloud and on-premises environments.
SaaS (sometimes called cloud application services) is cloud-hosted, ready-to-use application software. Users pay a monthly or annual fee to use a complete application from within a web browser, desktop client or mobile app. The application and all of the infrastructure required to deliver it - servers, storage, networking, middleware, application software, data storage - are hosted and managed by the SaaS vendor.
The vendor manages all upgrades and patches to the software, usually invisibly to customers. Typically, the vendor ensures a level of availability, performance and security as part of a service level agreement (SLA). Customers can add more users and data storage on demand at additional cost.
Today, anyone who uses a or mobile phone almost certainly uses some form of SaaS. Email, social media, and cloud file storage solutions (such as Dropbox or Box) are examples of SaaS applications people use every day in their personal lives. Popular business or enterprise SaaS solutions include Salesforce (customer relationship management software), HubSpot (marketing software), Trello (workflow management), Slack (collaboration and messaging), and Canva (graphics). Many applications designed originally for the desktop (e.g., Adobe Creative Suite) are now available as SaaS (e.g., Adobe Creative Cloud).
Benefits of SaaS
The main benefit of SaaS is that it offloads all infrastructure and application management to the SaaS vendor. All the user has to do is create an account, pay the fee and start using the application. The vendor handles everything else, from maintaining the server hardware and software to managing user access and security, storing and managing data, implementing upgrades and patches and more.
Other benefits of SaaS include:
- Minimal risk: Many SaaS products offer a free trial period, or low monthly fees that let customers try the software to see if it will meet their needs, with little or no financial risk.
- Anytime/anywhere productivity: Users can work with SaaS apps on any device with a browser and an internet connection.
- Easy scalability: Adding users is as simple as registering and paying for new seats; customers can purchase more data storage for a nominal charge.
Some SaaS vendors even enable customization of their product by providing a companion PaaS solution. One well-known example is Heroku, a PaaS solution for Salesforce.
SaaS use cases
Today, just about any personal or employee productivity application is available as SaaS; specific use cases are too numerous to mention (some are listed above). If an end user or organization can find a SaaS solution with the required functionality, in most cases it will provide a significantly simpler, more scalable and more cost-effective alternative to on-premises software.
Saas vs. PaaS vs. IaaS: Management Ease vs. Complete Control
SaaS, Paas, IaaS are not mutually exclusive; most organizations use more than one, and many larger organizations today use all three, often in combination with traditional IT.
Obviously, the as-a-service solution a customer chooses depends first on the functionality the customer requires, and the expertise it has on staff. For example, an organization without the in-house IT expertise for configuring and operating remote servers isn't well matched to IaaS; an organization without a development team has no need for PaaS.
But in some cases, any of the three 'as-a-service' models will offer a viable solution. In these cases, organizations typically compare the alternatives based on the management ease they offer, vs. the control they give up.
For example, suppose a large organization wants to deliver a customer relationship management (CRM) application to its sales team. It could:
- Choose a SaaS CRM solution, offloading all day-to-day management to the third-party vendor, but also giving up all control over features and functionality, data storage, user access and security.
- Choose a PaaS solution and build a custom CRM application. In this case, the company would offload management of infrastructure and application development resources to the cloud service provider. The customer would retain complete control over application features, but it would also assume responsibility for managing the application and associated data.
- Build out backend IT infrastructure on the cloud using IaaS, and use it to build its own development platform and application. The organization's IT team would have complete control over operating systems and server configurations, but also bear the burden of managing and maintaining them, along with the development platform and applications that run on them.
Figure 1 illustrates the customer's and cloud provider's management responsibilities for each cloud service:
Figure 1: Management responsibilities for Traditional IT, IaaS, PaaS and SaaS
IaaS, SaaS, PaaS and IBM Cloud
IBM has a broad menu of IaaS, PaaS and SaaS offerings to meet your company’s needs up and down the stack. IBM’s rich and scalable PaaS solutions help organizations develop cloud native applications from scratch, or modernize existing applications to benefit from the flexibility and scalability of the cloud. IBM also offers a full IaaS layer of virtualized compute, network, and storage within our full-stack cloud platform, and more than 150 SaaS business applications to help you innovate.
Take the next step:
- Jump-start development and app modernization with IBM Red Hat OpenShift on IBM Cloud, a fully managed OpenShift service that uses the enterprise scale and security of IBM Cloud to automate updates, scale and provision, and handle unexpected surges in traffic.
- IBM Cloud Kubernetes Service is a certified Kubernetes solution that provides intelligent scheduling, self-healing, horizontal scaling and more.
- With IBM Code Engine, a fully managed, serverless platform, IBM Cloud Code Engine will manage and secure the underlying infrastructure for you. Bring your container images, batch jobs, or source code and let IBM handle the size, deployment and scaling of your container clusters.
- IBM Cloud Satellite is a hybrid cloud IaaS that helps companies better deploy and run apps consistently across on-premises, edge computing, and public cloud environments from any cloud vendor.
To get started, create an IBM Cloud account today.