Girish Mahajan (Editor)

Function as a Service

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit

Function as a Service (FaaS) is a category of cloud computing services that provides a platform allowing customers to develop, run, and manage application functionalities without the complexity of building and maintaining the infrastructure typically associated with developing and launching an app [1]. Building an application following this model is one way of achieving a "serverless" architecture, and is typically used when building microservices applications.

FaaS is an extremely recent development in cloud computing, first made available to the world by hook.io in October 2014, followed by AWS Lambda, Google Cloud Functions and Microsoft Azure Functions in 2016 which are available for public use. IBM's OpenWhisk is an OpenSource / on premises system which can provide the same capabilities. FaaS capabilities also exist in private platforms as demonstrated by Uber's Schemaless triggers [2].

Comparison with PaaS application hosting services

Serverless computing architectures in which the customer has no direct need to manage resources can also be achieved using PaaS services. These services are, however, typically very different in their implementation architecture which has some implications for scaling. In most PaaS systems the system continually runs at least one server process and even with auto scaling a number of longer running processes are simply added or removed meaning that scalability is more visible to the developer as a problem.

In a FaaS system, the functions are expected to start within milliseconds in order to allow handling of individual requests. In a PaaS systems, by contrast, there is typically an application thread which keeps running for a long period of time and handles multiple requests. This difference is primarily visible in the pricing where FaaS services charge per execution time of the function whilst PaaS services charge per running time of the thread in which the server application is running.

References

Function as a Service Wikipedia