A little less known than its other ‘as-a-Service’ siblings, Function as a Service (FaaS) is a key component of serverless technology. FaaS removes the developers’ responsibility to manage the infrastructure required for developing and launching an application.
FaaS is a service model of cloud computing which provides a platform for customers to build, execute and manage applications. Servers and low-level infrastructure are fully abstracted and resources are allocated to customers on-demand. When idle, the Cloud Service Provider’s infrastructure can be powered down, only starting to run upon users submitting a request. When the request has been completed, the servers can be turned off again.
FaaS has the following characteristics:
The first market-ready FaaS model was released by PiCloud in 2010, but the service began to gain real traction from 2014 with Amazon’s release of AWS Lambda. Since then, other large providers such as Google, IBM and Microsoft have launched similar models.
FaaS is exceptionally useful for handling dynamic workloads, events with a high volume of operations or scheduled tasks.
One notable early adopter wasNetflix, which employs AWS Lambda to automate the encoding process of media files, the validation of backup completions and instance deployments at scale, all using event-based triggers.
Similarly, Stackify uses FaaS to handle higher than usual traffic volumes by isolating the logic used to manage such events into a function that can be scaled.
Both PaaS and FaaS have servers and infrastructure ‘hidden’ from the customer, the CSPs only offering a development platform. The defining difference between the two is the server running time. With PaaS, an application must run on at least one server at all times. On the other hand, with a FaaS model, a server runs only when a function needs to be executed.
Serverless computing encompasses multiple services such as FaaS, object storage, HTTP gateways and many others. Serverless is more than functions deployed to the cloud. It enables developers to deliver solutions using fewer lines of code, which can help reallocate resources and brainpower to innovation. This is only possible by implementing FaaS, making it an essential part of serverless architecture.
When implemented mindfully, FaaS can be extremely beneficial in terms of simplifying the development process and reducing operational costs. As the trend for services progresses, developers will be able to focus more on what they do best.