Platform-as-a-Service (PaaS) vendors provide a cloud-based platform for building and running applications.
What is Platform-as-a-Service (PaaS)?
In the Platform-as-a-Service (PaaS) model, developers essentially rent everything they need to build an application, relying on a cloud provider for development tools, infrastructure, and operating systems. This is one of the three service models of cloud computing. PaaS vastly simplifies web application development; from the developer’s perspective, all backend management occurs behind the scenes. Although PaaS has some similarities with serverless computing, there are many critical differences between them.
What are the three service models of cloud computing?
The three cloud computing models are PaaS, SaaS (Software-as-a-Service), and IaaS (Infrastructure-as-a-Service). IaaS refers to cloud computing infrastructure – servers, storage, etc. – managed by a cloud vendor. In contrast, SaaS refers to complete applications hosted in the cloud and maintained by the SaaS vendor. Suppose a SaaS customer is like someone renting a house. In that case, a PaaS customer is like someone renting all the heavy equipment and power tools necessary to rapidly build a house if their owner continually maintains and repairs the tools and equipment.
How does PaaS compare to internally hosted development environments?
PaaS can be accessed over any internet connection, making it possible to build an entire application in a web browser. Developers can work on the application anywhere because the development environment is not hosted locally. This enables teams that are spread out across geographic locations to collaborate. It also means developers have less control over the development environment, though this comes with far less overhead.
What is included in PaaS?
The main offerings included by PaaS vendors are:
- Development tools
- Middleware
- Operating systems
- Database management
- Infrastructure
Different vendors may also include other services, but these are the core PaaS services.
Development tools
PaaS vendors offer various tools necessary for software development, including a source code editor, debugger, compiler, and other essential tools. These tools may be provided together as a framework. The specific tools will depend on the vendor, but PaaS offerings should include everything developers need to build their applications.
Middleware
Platforms offered as a service usually include middleware, so developers don’t have to build it themselves. Middleware is software that sits between user-facing applications and the machine’s operating system; for example, middleware allows software to access input from the keyboard and mouse. Middleware is necessary for running an application, but end users don’t interact with it.
Operating systems
A PaaS vendor will provide and maintain the operating system that developers work on and the application runs on.
Databases
PaaS providers administer and maintain databases. They will usually provide developers with a database management system as well.
Infrastructure
PaaS is the next layer up from IaaS in the cloud computing service model, and everything included in IaaS is also included in PaaS. A PaaS provider manages servers, storage, and physical data centers or purchases them from an IaaS provider.
Why do developers use PaaS?
Faster time to market
PaaS is used to build applications more quickly than possible if developers worry about creating, configuring, and provisioning their platforms and backend infrastructure. With PaaS, they only need to write the code and test the application, and the vendor handles the rest.
One environment from start to finish
PaaS permits developers to build, test, debug, deploy, host, and update their applications in the same environment. This enables developers to be sure a web application will function adequately as hosted before release, simplifying the application development lifecycle.
Price
PaaS is more cost-effective than leveraging IaaS in many cases. Overhead is reduced because PaaS customers don’t need to manage and provision virtual machines. In addition, some providers have a pay-as-you-go pricing structure, in which the vendor only charges for the application’s computing resources, usually saving customers money. However, each vendor has a slightly different pricing structure, and some platform providers charge a flat fee per month.
Ease of licensing
PaaS providers handle all licensing for operating systems, development tools, and everything else included in their platform.
What are the potential drawbacks of using PaaS?
Vendor lock-in
It may become hard to switch PaaS providers since the application is built using the vendor’s tools and specifically for their platform. Each vendor may have different architecture requirements. Other vendors may not support the same languages, libraries, APIs, architecture, or operating systems used to build and run the application. To switch vendors, developers may need to rebuild or heavily alter their applications.
Vendor dependency
The effort and resources involved in changing PaaS vendors may make companies more dependent on their current vendors. A small change in the vendor’s internal processes or infrastructure could significantly impact the performance of an application designed to run efficiently on the old configuration. Additionally, an application may become more expensive if the vendor changes their pricing model.
Security and compliance challenges
In a PaaS architecture, the external vendor will store most or all of an application’s data and host its code. Sometimes, the vendor may store the databases via a further third party, an IaaS provider. Though most PaaS vendors are large companies with robust security, it isn’t easy to fully assess and test the security measures protecting the application and its data. In addition, verifying the compliance of additional external vendors will add more hurdles to going to market for companies that must comply with strict data security regulations.
How is Platform-as-a-Service different from serverless computing?
PaaS and serverless computing are similar; a developer has to worry about writing and uploading code, and the vendor handles all backend processes. However, scaling is vastly different when using the two models. Applications built using serverless computing, or FaaS, will scale automatically, while PaaS applications will not unless programmed. Startup times also vary greatly; serverless applications can run almost instantly. However, PaaS applications are more like traditional applications and must be running most of the time or all of the time to be immediately available for users.
Another difference is that serverless vendors do not provide development tools or frameworks like PaaS vendors. And finally, pricing separates the two models. PaaS billing is not nearly as precise as in serverless computing, in which charges are broken down to the number of seconds or fractions of a second each instance of a function runs.