There are three main cloud computing service models, namely SaaS (software-as-a-service), PaaS (platform-as-a-service), and IaaS (infrastructure-as-a-service). Each of these models build on top of each other. When an organization purchases PaaS from a cloud provider, they also get IaaS by default.
PaaS offers a complete environment for developers to run their applications. The environment includes hardware, routers, operating system, runtime environment, middleware, database, web server, and more. PaaS users, like developers, can deploy their applications on the PaaS provider’s infrastructure and platform.
Before we discuss what PaaS is, we need to understand the difference between IaaS, PaaS, and SaaS, and how these cloud computing service models are related.
Cloud computing service models, build on top of one another
The IaaS layer sits at the bottom of the stack and includes storage, network, and compute services. All these are virtualized using a hypervisor, and managed by the cloud provider. Above IaaS comes the PaaS layer, which includes software such as the operating system (OS), database, integration, web server, and runtime—basically, an entire development platform hosted by the cloud provider for developers to deploy their applications.
The SaaS layer sits at the top of the stack, wherein organizations deploy their applications on the cloud and they are accessed as “service” using a browser or the program interface.
PaaS provides the infrastructure and platform for developers to host their applications. Developers only need to worry about their application code. The providers host the required hardware and software so that the organization (developers) does not have to install anything on their machines. Examples of PaaS providers are SAP, Heroku, Microsoft Azure, VMWare, Google App Engine, and Swisscom. Swisscom has built its New Application Cloud PaaS for Microservices with MongoDB Enterprise Advanced. MongoDB is also the core content management component of SAP’s PaaS offering and VMWare’s PaaS.
PaaS components may include infrastructure (IaaS), middleware, OS, web server, runtime environment, database, and business intelligence tools.
Middleware handles the common services and utilities like messaging, API management, data streaming, and authentication.
OS provides common services and manages software and hardware resources.
Runtime environment provides common facilities on top of the operating system for applications built on a particular programming language to run smoothly.
Database management systems manage read and write operations between the database and the system requesting information.
PaaS automatically includes the IaaS offerings of a cloud provider. This includes the compute, storage, and network requirements of an application.
The image represents the major components of PaaS
Here are some key characteristics of PaaS:
As we move up the cloud computing layers from IaaS to PaaS to SaaS, there is more abstraction and less complexity for the cloud service users. IaaS is the most complex, while SaaS provides the highest abstraction. PaaS offers a good balance of application control and abstraction for developers. Platform-as-a-service products are provided as web-based services via an interface.
Originally, PaaS was used for applications on the public cloud, but later expanded to private and hybrid types. We can see public PaaS as a layer between the SaaS and IaaS layers. Private PaaS can be deployed on the organization’s private cloud or on a public IaaS, if need be.
Cloud providers can deliver PaaS services through public, private, and hybrid cloud types.
How PaaS works
Developers get a ready-to-use platform with all their infrastructure, framework, and integration needs taken care of. All they have to care about is developing and maintaining their application. Some typical business use cases include the following:
The main benefit of PaaS is that a cloud provider takes care of the infrastructure and platform needs of the organization, which enhances their productivity by focusing on building the application. Some other important benefits of PaaS are:
If you want to build an application from scratch, you need the hardware, infrastructure, data centers, servers, databases, software, middleware—and if you were to scale your application, you’d have to think about upgrading all of these. Building all of this also requires a lot of resources and experts in each of the fields, adding to the overall project cost.
Additionally, if you have a complex workflow, where data is critical, you need to have solid backup and load balancing options—more cost and time.
PaaS eliminates all of the above issues, as cloud providers take care of provisioning, configuring, and maintaining all the infrastructure and hardware for building your applications.
There are some limitations of PaaS:
Most organizations find PaaS offerings beneficial because of the cost savings, continuous and rapid development and deployment cycle, and streamlining of workflows in a big project with multiple team members.
PaaS provides a good balance of speed and flexibility for creating customized applications in less time.
There are plenty of PaaS providers—AWS, Azure, and many others—but you should choose the provider based on your business domain and requirements:
Some of the major PaaS players that work with MongoDB Atlas are AWS, Microsoft Azure, Heroku, and Google Cloud, amongst others. If you want to use a multi-cloud model for your project, try the MongoDB Atlas Kubernetes operator to provision and deploy fully managed Atlas clusters on the cloud providers of your choice.
PaaS includes the infrastructure of an application, like the compute, storage, and network resources (IaaS) as well as the hardware and software requirements to build and deploy an application, like operating system, frameworks, web servers, runtime, and many other components.
PaaS provides the platform and infrastructure that an organization needs to develop, build, and deploy their applications. These include database, operating system, runtime environment, frameworks, and other components. Some examples of PaaS providers are Google App Engine, Heroku, and Windows Azure.
PaaS can be used to create customized applications, where organizations don’t want to take up the hassle of setting up the infrastructure, hardware, security, and focus on building their application using the built-in components provided by the cloud provider. Read more about common scenarios and use cases for PaaS.