What is PaaS (Platform-as-a-Service)?
PaaS, or Platform-as-a-Service, is a cloud computing model that provides customers a complete cloud platform—hardware, software, and infrastructure—for developing, running, and managing applications without the cost, complexity, and inflexibility that often comes with building and maintaining that platform on-premises.
The PaaS provider hosts everything—servers, networks, storage, operating system software, databases, development tools—at their data center. Typically customers can pay a fixed fee to provide a specified amount of resources for a specified number of users, or they can choose 'pay-as-you-go' pricing to pay only for the resources they use. Either option enables PaaS customers to build, test, deploy run, update and scale applications more quickly and inexpensively they could if they had to build out and manage their own on-premises platform.
Every leading cloud service provider—including Amazon Web Services (AWS), Google Cloud, IBM Cloud and Microsoft Azure—has its own PaaS offering. Popular PaaS solutions are also available as open source projects (e.g. Apache Stratos, Cloud Foundry) or from software ventors (e.g. Red Hat OpenShift and Salesforce Heroku).
Benefits of PaaS
The most commonly-cited benefits of PaaS, compared to an on-premises platform, include:
- Faster time to market. With PaaS, there’s no need to purchase and install the hardware and software you use to build and maintain your application development platform—and no need for development teams to wait while you do this. You simply tap into the cloud service provider’s PaaS to begin provisioning resources and developing immediately.
- Affordable access to a wider variety of resources. PaaS platforms typically offer access to a wider range of choices up and down the application stack— including operating systems, middleware, databases and development tools—than most organizations can practically or affordably maintain themselves.
- More freedom to experiment, with less risk. PaaS also lets you try or test new operating systems, languages and other tools without having to make substantial investments in them, or in the infrastructure required to run them.
- Easy, cost-effective scalability. With an on-premises platform, scaling is always expensive, often wasteful and sometimes inadequate: You have to purchase additional compute, storage and networking capacity in anticipation of traffic spikes; much of that capacity sits idle during low-traffic periods, and none of it can be increased in time to accommodate unanticipated surges. With PaaS, you can purchase additional capacity, and start using it immediately, whenever you need it.
- Greater flexibility for development teams. PaaS services provide a shared software development environment that allows development and operations teams access to all the tools they need, from any location with an internet connection.
- Lower costs overall. Clearly PaaS reduces costs by enabling an organization to avoid capital equipment expense associated with building and scaling an application platform. But PaaS also can also reduce or eliminate software licensing costs. And by handling patches, updates and other administrative tasks, PaaS can reduce your overall application management costs.
How PaaS works
In general, PaaS solutions have three main parts:
- Cloud infrastructure including virtual machines (VMs), operating system software, storage, networking, firewalls
- Software for building, deploying and managing applications
- A graphic user interface, or GUI, where development or DevOps teams can do all their work throughout the entire application lifecycle
Because PaaS delivers all standard development tools through the GUI online interface, developers can log in from anywhere to collaborate on projects, test new applications, or roll out completed products. Applications are designed and developed right in the PaaS using middleware. With streamlined workflows, multiple development and operations teams can work on the same project simultaneously.
PaaS providers manage the bulk of your cloud computing services, such as servers, runtime and virtualization. As a PaaS customer, your company maintains management of applications and data.
PaaS, IaaS, and SaaS
Like PaaS, Infrastructure-as-a-Service (IaaS) and Software-as-a-Service (SaaS) are very common cloud computing service models. In fact it's very common for an organization to use all three—even if they don't purchase all three specifically. To clarify:
IaaS is internet access to 'raw' IT infrastructure—physical servers, virtual machines, storage, networking, firewalls—hosted by a cloud provider. IaaS eliminates cost and work of owning, managing and maintaining on-premises infrastructure. With IaaS the organization provides its own application platform and applications.
Any PaaS offering necessarily includes the IaaS resources required to host it, even if those resources aren't discretely broken out or referred to as IaaS.
SaaS is application software you use via the cloud, as if it were installed on your computer (in some cases, parts of it are installed on your computer). SaaS enables your organization to use an application without the expense of setting up the infrastructure to run it, and the effort and personnel to maintain it (apply bug fixes and updates, address outages, etc.) Salesforce and Slack are examples of popular SaaS offerings; most web applications are considered SaaS.
Every SaaS offering includes the IaaS resources required to host it and, at minimum, the PaaS components required run it. Some SaaS vendors also provide a discrete PaaS that allows third parties to customize the SaaS offering.)
Another way to compare IaaS, PaaS and SaaS is based on the amount of management that's left to the customer vs. the amount of management left to the cloud service provider:
Use cases for PaaS
By providing an integrated and ready-to-use platform—and by enabling organizations to offload infrastructure management to the cloud provider and focus on building, deploying and managing applications—PaaS can ease or advance a number of IT initiatives, including:
- API development and management: Because of its built-in frameworks, PaaS makes it much simpler for teams to develop, run, manage and secure APIs (application programming interfaces) for sharing data and functionality between applications.
- Internet of Things (IoT): Out of the box, PaaS can support a range of programming languages (Java, Python, Swift, etc.), tools and application environments used for IoT application development and real-time processing of data generated by IoT devices.
- Agile development and DevOps: PaaS can provide fully-configured environments for automating the software application lifecycle including integration, delivery, security, testing and deployment.
- Cloud migration and cloud-native development: With its ready-to-use tools and integration capabilities, PaaS can simplify migration of existing applications to the cloud—particularly via replatforming (moving an application to the cloud with modifications that take better advantage of cloud scalability, load balancing and other capabilities) or refactoring (re-architecting some or all of an application using microservices, containers and other cloud-native technologies).
- Hybrid cloud strategy: Hybrid cloud integrates public cloud services, private cloud services and on-premises infrastructure and provides orchestration, management and application portability across all three. The result is a unified and flexible distributed computing environment, where an organization can run and scale its traditional (legacy) or cloud-native workloads on the most appropriate computing model. The right PaaS solution allows developers to build once, then deploy and mange anywhere in a hybrid cloud environment.
Purpose-built PaaS types
Many cloud, software and hardware vendors offer PaaS solutions for building specific types of applications, or applications that interacting with specific types of hardware, software or devices.
- AIPaaS (PaaS for Artificial Intelligence) lets development teams build artificial intelligence (AI) applications without the often prohibitive expense of purchasing, managing and maintaining the significant computing power, storage capabilities and networking capacity these applications require. AiPaaS typically includes pre-trained machine learning and deep learning models developers can use as-is or customize, and ready-made APIs for integrating specific AI capabilities, such as speech recognition or speech-to-text conversion, into existing or new applications.
- iPaaS (integration platform as a service) is a cloud-hosted solution for integrating applications. iPaaS provides organizations a standardized way to connect data, processes, and services across public cloud, private cloud and on-premises environments without having to purchase, install and manage their own backend integration hardware, middleware and software. (Note that Paas solutions often include some degree of integration capability—API management, for example—but iPaaS is more comprehensive.)
- cPaaS (communications platform as a service) is a PaaS that lets developers easily add voice (inbound and outbound calls), video (including teleconferencing) and messaging (text and social media) capabilities to applications, without investing in specialized communications hardware and software.
- mPaaS (mobile platform as a service) is a PaaS that simplifies application development for mobile devices. mPaaS typically provides low-code (even simple drag-and-drop) methods for accessing device-specific features including the phone's camera, microphone, motion sensor and geolocation (or GPS) capabilities.
PaaS and IBM Cloud
IBM provides rich and scalable PaaS solutions for developing cloud native applications from scratch, or modernizing existing applications to benefit from the flexibility and scalability of the cloud.
IBM Red Hat OpenShift on IBM Cloud is a fully managed OpenShift service that uses the enterprise scale and security of IBM Cloud to automate updates, scaling and provisioning, and to handle unexpected surges in traffic. Your teams can jump-start development and app modernization with a range of tools and features, and deploy highly available fully-managed clusters with a single click. IBM Red Hat OpenShift on IBM Cloud was named the leader in The Forrester Wave: Multicloud Container Development Platforms, Q3 2020 (PDF, 415 KB).
IBM Cloud Pak for Applications helps you modernize existing applications, embed additional security, and develop new apps that unleash digital initiatives. It offers cloud-native development solutions that can quickly deliver value, along with flexible licensing that can be tailored to your specific needs.
To get started with PaaS on IBM Cloud, sign up for an IBMid and create your IBM Cloud account.