First, what is FaaS?
Function as a Service (FaaS) is a category of cloud computing services that’s of particular interest to developers. It provides a platform where they can develop, deploy, run, and manage application functionalities – without having to worry about all the complexity that comes with the infrastructure needed to develop and launch an app. The FaaS model is based on serverless computing technologies and architectures which it uses to execute small, modular pieces of code known as functions. It allows developers to easily deploy applications in the cloud without having to manage servers. When you hand over the care and responsibility of taking care of the server management aspect of application deployment, you’ll get returns like cost-efficiency, scalability and simplified processes. In other words, you can spend more time focused on writing application logic and less time managing servers and deployments.
The pros and cons of FaaS
What are the advantages of FaaS? First, price – you only pay for the resources you’ve used. And you will save on the time and resources chewed up on infrastructure management. Infrastructure security becomes a thing of the past, and deployment is easy – no more waiting for OPS, DBA, etc. Finally, scalability and high-availability are a given. Nothing is perfect though (although constant improvement is a certainty). FaaS disadvantages include latency – so keep in this in mind for Fintech high-performance applications if you are cost-sensitive, and limits on execution and memory. FaaS doesn’t offer local data storage, and when your application needs to be stateless nevertheless, and that can be a serious limitation. Debugging and monitoring is improving vastly, but still a work in progress. And you’ve always got the risks associated with new technologies like poor stability and lack of tools. Lastly – there’s vendor lock-in. Hopefully not likely, but just a reminder that if anything happens to your FaaS providers, you’ll be in a world of pain.
FaaS providers – who to choose, and why?
There are three main FaaS providers – Microsoft Azure, Google Cloud Functions, and AWS Lambda. And there are up-and-coming ones like Function Compute from Alibaba Cloud (yes – from the people that brought you Alibaba Express), and Vercel Functions. What are the differences between them? In a nutshell, some focus on functions, others on performance. When you’re doing your research, the main considerations are:
- the native language support they offer
- the 3rd party language support
- the monitoring systems they use, and their limits
- maximum function/execution duration
- function calls per second
- memory allocation
- security options
And of course, pricing. Pricing will vary depending on the model (or models) offered by each provider. And the most attractive pricing will reflect how you plan to use FaaS, how often and for how long. While it’s still in beta form, this calculator may be of some use to help determine which provider to choose based on potential usage scenarios.
While we have our own preferred FaaS provider, that doesn’t mean it’s a one-size-fits-all decision. What works for us, and our clients, may not be the right solution price-, performance- or functionality-wise for you. However, that’s the beauty of having industry-leading options to choose from.
Cold starts/performance comparison: https://mikhail.io/serverless/coldstarts/big3/
What is faas: https://www.redhat.com/en/topics/cloud-native-apps/what-is-faas
Cloudflare webassembly support: https://blog.cloudflare.com/introducing-cloudflare-workers/
What is webassembly: https://opensource.com/article/20/1/webassembly
Alibaba functions: https://www.alibabacloud.com/product/function-compute
Netlify functions: https://www.netlify.com/products/functions/
Cloudflare Workers: https://workers.cloudflare.com/