If you don't want the hassle of maintaining your own app infrastructure, and you're looking to focus exclusively on a cloud app development platform, you may face a dilemma between a platform-as-a-service option like Heroku or Cloud Foundry, and a serverless platform like Amazon Web Services (AWS) Lambda. But how are these two options different from each other? Let's take a look.
Basic computing unit: With PaaS, the basic unit of compute is the app itself, for which you'll still need to provision instances, although the maintenance of these instances is taken care of by the PaaS platform. For Lambda, the basic unit of operation is functions or tasks. There are instances running behind the scenes, but as an app developer, they're invisible to you.
Duration of tasks: In the world of cloud app development platforms, PaaS is for long running apps, irrespective of whether tasks are running. Lambda is for short-term tasks that have a definite end point when the task is over.
Required metadata: With PaaS, along with your code, you need to specify additional metadata like the language, framework and runtime requirements. With serverless, the metadata required is much simpler. For example, with AWS Lambda, you only need to specify identity and access management roles, required RAM and a timeout interval. For a cloud app development platform, serverless is simpler, while PaaS gives you a little more control and flexibility over infrastructure.
Pricing model: With PaaS, you pay for the compute resources or instances your app uses. With Lambda, you pay for just the successful functions or tasks executed within your app. This can be a big saving if your app has unpredictable or short-term workloads.
PaaS and serverless platforms are similar in that they both abstract away underlying infrastructure, and let you manage your app’s code. Just like PaaS platforms, Lambda can be accessed from the internet via RESTful APIs. You can even give access to Lambda functions to clients like web pages by configuring a HTTP endpoint for them.
While both platforms have similar benefits and capabilities, they operate differently from each other. Choose PaaS as your cloud app development platform if your app is long running, if you need some amount of control over your infrastructure, and if you’d like a more consistent spend pattern. Choose serverless if you’d like to pay per task, because you mostly have short-term and irregular tasks, and for a completely hands-off experience with managing your infrastructure.
Pick the right development PaaS for your project
Options using the SAP HANA cloud for development
Everything you need to know about RESTful APIs
Related Q&A from Twain Taylor
Resilience testing isn't just for infrastructure. Architects can adopt this disaster recovery testing strategy to build more reliable microservice ... Continue Reading
Containerization tools have taken on a critical role in managing communication between microservices, and two Kubernetes-based tools in particular ... Continue Reading
There was plenty of movement around Kubernetes in 2017, and there seems to be more to come in the year ahead. Twain Taylor makes predictions about ... Continue Reading
Have a question for an expert?
Please add a title for your question
Get answers from a TechTarget expert on whatever's puzzling you.