What is FaaS?
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.
What is Function as a Service?
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:
- Infrastructure is hidden from the customer and fully managed by the Cloud Service Provider
- Resources are allocated as needed
- Customers pay only for consumption and execution
- Functions are triggered by events
FaaS Providers and Pioneers
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.
What are typical Function as a Service use cases?
FaaS is exceptionally useful for handling dynamic workloads, events with a high volume of operations or scheduled tasks. One notable early adopter was Netflix, 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. FaaS Advantages:
- Fewer infrastructure logistics for developers to worry about
- Scalable by design
- Potentially lower costs compared to traditional architectures
- Reliability of services
- Little visibility of the infrastructure used by the CSP
- Difficult to debug and troubleshoot
- Cost scales proportionally to usage
Difference between FaaS and PaaS
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.
Where does FaaS sit within Serverless? 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.