Comparing and Contrasting Serverless Apps and PaaS
It is useful to contrast a serverless app with an application written for a Platform-as-a-Service (PaaS). When comparing and contrasting serverless apps and PaaS, keep in mind that serverless apps have a major cost advantage: Since they start and stop per request. Serverless apps are more cost-effective than long-running servers in a PaaS environment.
Heroku and the open-source Cloud Foundry are examples of PaaS. In contrast, Fermyon Cloud is an example of a serverless app platform, and Spin is a developer tool for building serverless apps. A serverless app is simpler, faster, and more resource-efficient than a PaaS. But let’s dive into the conceptual details to see why this is the case.
In a PaaS, you (the developer) write an application in any language the PaaS supports. And then you deploy that application to the PaaS service, where it is hosted on your behalf. Developer self-service is a core feature of a PaaS. That means developers can deploy their applications without relying upon an operations (DevOps or platform engineering) team.
Most serverless app platforms, including Fermyon Cloud, also provide the same kind of developer self-service, including a web dashboard, metrics and monitoring, and a host of tools to assist in developing and debugging.
Where a PaaS differs from serverless apps is, again, in the programming model. A PaaS follows definition 2 of serverless where the hardware is managed, but the developer must still write a software server.
Meanwhile, serverless apps follow the 3rd definition of serverless. Whereby a developer writes only the small program that handles a request and does not have to worry about writing the software server.
If you are looking for a developer self-service platform to run long-running services that are always on, a PaaS is probably the solution you are after. If you are looking for a developer self-service platform where you can quickly write highly efficient apps that need to execute instantly and scale rapidly, you may prefer to take a look at serverless apps.
PaaS and Kubernetes
Some PaaS platforms run inside of Kubernetes. Spin serverless apps can also run in Kubernetes. And the experience of deploying serverless apps in Kubernetes is nearly identical to deploying using common PaaS systems. There are even a few serverless Kubernetes platforms that run long-running server processes as well. In such cases, there is almost no practical way to distinguish between a PaaS and a serverless platform.
SpinKube is true serverless, in the sense that a new instance of the event handler is created from scratch with each inbound request. In this case, it is distinct from a PaaS in terms of its runtime strictures and developer experience even while the depolyment aspect is as simple as any PaaS.
Browse Chapters