Platform as a service (PaaS) is a cloud computing model where a cloud service provider grants clients access to a ready platform for application development, testing, deployment, and management. Using PaaS not only avoids the upfront costs of building a platform, but also avoids the need to obtain the development tools and sophisticated development software that layers on top the platform infrastructure to create the development environment. Further, since the PaaS providers (e.g., the cloud providers) are responsible for platform management, they are responsible for all provisioning, configuring, and maintaining of the infrastructure and hardware, as well as backups, load balancing, and maintenance.
For this reason, PaaS is useful for developers who want to focus on enhancing development capabilities and application logic rather than infrastructure management and troubleshooting. It also saves time for developers as they don’t have to devote resources to infrastructure management and associated troubleshooting. Finally, PaaS supports the development efforts of geographically distributed development teams as they work together in the same integrated environment, sharing the same development tools, operating systems, and more.
Key elements of PaaS
The image represents the major components of PaaS
Some of the key elements of PaaS include:
Infrastructure
PaaS automatically includes the IaaS offerings of a cloud provider. This includes the compute, storage, and network requirements of an application.
Hosting
A hosting environment for applications is provided, which abstracts servers, networking, and storage management requirements.
Development tools
Development tools and libraries help development teams create, test, and launch applications. They may also include integrated development environments (IDEs), continuous integration/continuous deployment (CI/CD), and version control functionality as well.
Middleware
Middleware is the software layer running between the operating system and deployed applications running on a PaaS environment.
Operating systems (OS)
Operating systems manage underlying infrastructure while ensuring a stable, secure, and efficient environment for application development, deployment, and execution.
Runtime environment
The runtime environment provides common facilities on top of the operating system for applications built with particular programming languages to run smoothly (e.g., Java Virtual Machine (JVM) for Java, Node.js runtime for JavaScript, .NET runtime for C#).
Database management systems
Database management systems oversee the read and write operations between the databases and the systems requesting information, as well as database maintenance, scaling, and backups.
Security
Security at the platform level allows development teams to focus on their applications rather than security protocols which are managed by the PaaS provider.
Application programming interfaces (APIs)
APIs help applications communicate with one another within the development environment, across database management systems, the platform, and beyond.
Application monitoring and business intelligence (BI) tools
Application monitoring tools provide application performance metrics while BI tools enable data analysis, visualization, and reporting which support data-driven decision making.