Cloud computing is often divided into three models: IaaS (Infrastructure as a Service), SaaS (Software as a Service), and PaaS (Platform as a Service). FaaS (Functions as a Service) is the new kid in town.
IaaS is a cloud model where the provider supplies a complete infrastructure: virtual machines, virtual networks and potentially more. IaaS is what many refer to when they use the term “cloud computing.”
SaaS is a model where the provider does not expose the virtual computers or networks to the client but instead provides access to databases or other software services. This can free the client from maintaining operating systems and other services and instead focus on the actual software being used.
PaaS providers tend to focus on providing a software development environment to clients. The idea is that the software tools developers need are all organized in one (virtual) place.
FaaS is often contrasted with PaaS in that it allows software development and frees the user from managing – or even considering – the underlying operating system. But it is different. The user-developed functions are designed to start quickly and run multiple instances, if necessary. The user does not see, and is not billed for, a program listening for requests to run the functions. FaaS is referred to as a “serverless architecture” – the server is invisible, but still there, of course.
AWS Lambda is billed in 100ms intervals, and there is a free usage tier covering roughly a million accesses in a month, at least for reasonably fast functions. I developed a free skill for Amazon Alexa that is implemented via Node.js on AWS Lambda. I found the environment easy to use and the support was also beneficial. My skill reads blog posts from a local non-profit. You can try it out by enabling Creative New Mexico Blog Reader on your Alexa app or by asking Alexa to do it for you.
Like any tool, it depends on what you want to do. FaaS is good for centralizing function implementation. It also has the benefit of the provider scaling the implementation. That means that if you need many instances running simultaneously, the provider handles that. One downside is that you are limited by language, but the functions can invoke services elsewhere (my Alexa skill accesses a remote web page). You may also be able to access other services the provider makes available.
There are tools to implement FaaS (e.g. FaaS) on your own servers and provide the functions locally.
Let us know by tweeting to @jjmcdermott if you decide to try FaaS.