I was working with the serveless framework created for Kubernetes: Kubeless. Its great because you want to maintain your architecture agnostic from the Cloud vendor.
Kubeless functions are triggered when some event (HTTP call or some cron job) is raised. But, in your infrastructure, you should always have at least one container running to execute your code. That's the case for Kubeless, it will auto-scale based on demand just like other containers.
Some points to have in mind:
- Don't expect to have different HTTP methods for the same function name. It means, once a function is created, it accepts GET, POST, PUT, etc. It just does not evaluate the HTTP verb, and it's right because we are talking about serverless functions, not API.
- It's ideal for atomic operations. Ex: database update on some event, clean resources from AWS, send notifications, etc.
So, if you need something more advanced, supporting HTTP methods and with more business logic, I recommend to use a traditional API approach, easier to maintain and monitor.
Check this article based on how to implement serverless functions using Kubeless.