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 takes place 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 models of cloud computing 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, while SaaS refers to full applications that are hosted in the cloud and maintained by the SaaS vendor. If a SaaS customer is like someone renting a house, then a PaaS customer is like someone renting all the heavy equipment and power tools necessary to rapidly build a house, if the tools and equipment were continually maintained and repaired by their owner.
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. Because the development environment is not hosted locally, developers can work on the application from anywhere in the world. 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
- Operating systems
- Database management
Different vendors may include other services as well, but these are the core PaaS services.
PaaS vendors offer a variety of tools that are necessary for software development, including a source code editor, a debugger, a compiler, and other essential tools. These tools may be offered together as a framework. The specific tools offered will depend on the vendor, but PaaS offerings should include everything a developer needs to build their application.
Platforms offered as a service usually include middleware, so that developers don't have to build it themselves. Middleware is software that sits in between user-facing applications and the machine's operating system; for example, middleware is what 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.
A PaaS vendor will provide and maintain the operating system that developers work on and the application runs on.
PaaS providers administer and maintain databases. They will usually provide developers with a database management system as well.
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 either 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 would be possible if developers had to worry about building, configuring, and provisioning their own platforms and backend infrastructure. With PaaS, all they need to do is 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 all in the same environment. This enables developers to be sure a web application will function properly as hosted before they release, and it simplifies the application development lifecycle.
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 computing resources used by the application, 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?
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. Different vendors may not support the same languages, libraries, APIs, architecture, or operating system used to build and run the application. To switch vendors, developers may need to either rebuild or heavily alter their application.
The effort and resources involved in changing PaaS vendors may make companies more dependent on their current vendor. A small change in the vendor's internal processes or infrastructure could have a huge impact on the performance of an application designed to run efficiently on the old configuration. Additionally, if the vendor changes their pricing model, an application may suddenly become more expensive to operate.
Security and compliance challenges
In a PaaS architecture, the external vendor will store most or all of an application's data, along with hosting its code. In some cases the vendor may actually store the databases via a further third party, an IaaS provider. Though most PaaS vendors are large companies with strong security in place, this makes it difficult to fully assess and test the security measures protecting the application and its data. In addition, for companies that have to comply with strict data security regulations, verifying the compliance of additional external vendors will add more hurdles to going to market.
How is Platform-as-a-Service different from serverless computing?
PaaS and serverless computing are similar in that for both, all a developer has to worry about is 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 to do so. Startup times also vary greatly; serverless applications can be up and running almost instantly, but PaaS applications are more like traditional applications and have to be running most of the time or all of the time in order to be immediately available for users.
Another difference is that serverless vendors do not provide development tools or frameworks, as PaaS vendors do. 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.