Blog
{Blog}  See what’s new with MongoDB 6.0 — and why you’ll want to upgrade today >>

Platform as a Service (PaaS) Explained

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.

What is a platform as a service (PaaS)?

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.

PaaS vs IaaS vs SaaS

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.

The diagram represents the main cloud computing service layers, namely IaaS, PaaS and SaaS.

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.

What is PaaS?

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

PaaS components may include infrastructure (IaaS), middleware, OS, web server, runtime environment, database, and business intelligence tools.

Middleware

Middleware handles the common services and utilities like messaging, API management, data streaming, and authentication.

Operating systems (OS)

OS provides common services and manages software and hardware resources.

Runtime environment

Runtime environment provides common facilities on top of the operating system for applications built on a particular programming language to run smoothly.

Database management

Database management systems manage read and write operations between the database and the system requesting information.

Infrastructure

PaaS automatically includes the IaaS offerings of a cloud provider. This includes the compute, storage, and network requirements of an application.


PaaS components includes IaaS, OS, web server, database, BI tools, runtime and many more.

The image represents the major components of PaaS

PaaS characteristics

Here are some key characteristics of PaaS:

  • Follows multitenancy in a public cloud environment, i.e., multiple customers can share the same compute resources at a given time.
  • Provides tools and other software to build applications and a user interface for organizations to work with.
  • Automatic scaling, load balancing, failover handling.
  • No installations—hardware or software.
  • Integration with other cloud computing components like web services and databases.
  • Provides build and deployment tools enabling shorter development cycles.

How PaaS Works

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.

The image shows how PaaS works, i.e. how PaaS products are accessed as service over public, private and hybrid cloud models.

How PaaS works

Common PaaS use case scenarios

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:

  • Development of cross-platform and mobile apps: PaaS gives a stable platform, so that developers can create their code over the already existing workflows, security, and other development capabilities provided by the PaaS providers.
  • DevOps and automation: PaaS and DevOps work in rhythm for faster application lifecycle management and enhanced automation.
  • Project timelines: By automating maintenance tasks, reusing existing services, and reducing infrastructure management tasks, organizations can become more agile, improve productivity, and reduce time to market for their applications.
  • Adopting new technologies: PaaS provides support for multiple technologies, helping organizations to migrate to newer technologies as their business needs change.
  • Business analytics: PaaS consumers can make use of the in-built analytics and business intelligence solutions.
  • Application migration to hybrid model: PaaS takes care of infrastructure, container orchestration, application portability across platforms, and integration so that organizations can migrate and manage their workload from on-premise to cloud, or from one cloud to another.

Advantages of PaaS

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:

  • The environment is always available, updated, and stable.
  • Developers can make use of the built-in tools and frameworks to speed up application delivery.
  • PaaS works in tandem with DevOps strategy to continuously deploy applications and increase automation, leading to a reduced time to market.
  • It takes care of application integration, scalability, and load balancing.

Building applications on PaaS vs. on-premises

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.

Disadvantages of PaaS

There are some limitations of PaaS:

  • Vendor lock-in: PaaS solutions for each business requirement might differ and the chosen vendor may not be able to provide convenient options for frameworks, customization, or migration.
  • Loss of operational control: Developers may have to trade off the abstraction for more granular control over application components.
  • Integration and migration: If all the components of a system are not built on cloud (some are on-premises), integration and migration between both could pose challenges.

When to use 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.

Things to consider when choosing a PaaS provider

There are plenty of PaaS providers—AWS, Azure, and many others—but you should choose the provider based on your business domain and requirements:

  • Are the features that the cloud provider offers sufficient for your app? Will your app scale without issues when your user base grows?
  • Does your provider give support for the frameworks and languages you have been using already? If not, you may run into runtime issues.
  • Will it be easy to migrate some or all parts of your application to a hybrid or multi-cloud model later, if need be?
  • Does the provider have good reviews in terms of after-sales service, maintenance, upgrades, patches, and overall customer satisfaction?

Examples of PaaS products that work with MongoDB Atlas

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.

Learn more about MongoDB Atlas.

FAQs

What is included in PaaS?

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.

What is PaaS, with an example?

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.

Where is PaaS used?

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.