How should I choose the right cloud app development platform?
It’s an oft-asked question: Which cloud platform is the best choice for app development efforts? The answer: It depends. It’s PaaS vs. AWS Lambda.
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.
Public access via RESTful API: The code for PaaS apps is exposed via a REST endpoint or a webpage. Lambda functions, on the other hand, are accessed only from trusted sources and can’t be accessed from the public internet.
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. But they both operate differently. 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 like AWS Lambda as your cloud app development platform 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.