What is Functions-as-a-Service
Functions-as-a-Service (FaaS) is a category of cloud capabilities that contributes to the pursuit of serverless computing. FaaS provides a platform upon which developers can build, release, maintain, and evolve software applications, without having to provide their own server compute resources. FaaS is typically used for discrete subroutines within a broader application than for the entire project.
Functions-as-a-Service Use Cases
Use cases for FaaS are multiplying rapidly as developers continue to discover and gain experience with the concept. The most frequently-seen FaaS use cases today include:
- Data processing, especially when managing large quantities of data, where rote counting or reasonably well-bounded activities (e.g. stream processing, ETL, etc.) are involved
- Internet of Things applications, especially when managing large volumes of low-value data (e.g. keep-alive messages, etc.)
- Mobile applications, particularly when managing relatively easy-to-interpret signals that arrive in great numbers (e.g. interpreting geo-location data)
As FaaS moves further into the mainstream, use cases will expand to include more sophisticated, likely network-resident, use cases such as:
- Bridging data from behind the firewall to applications that operate on the public web
- Shifting UI-level business logic away from central servers and to the edge
- Soup-to-nuts application development that incorporates automated elastic infrastructure scaling and balancing
Considerations for Functions-as-a-Service
FaaS can be immediately useful for discrete, easily defined subroutines, such as collecting or distributing incoming data, sorting inputs for acceptance or discard, and distributing chat-related information (such as presence) across system participants.
Generic FaaS options such as AWS Lambda, Google App Engine, and Salesforce Heroku offer broad applicability, enabling developers to offload logic that is used irregularly to a third party with the elastic capacity to provide the right compute coverage at the right cost.
By contrast, dedicated FaaS offerings such as PubNub Functions are intended to be used as a core part of related applications, providing power, flexibility, reliability, and speed for FaaS-appropriate subroutines.
Functions-as-a-Service Vs. Serverless Computing
FaaS is a necessary element of serverless computing, which promises a technology environment in which organizations need to own and manage no physical hardware of their own. Broadly speaking, a FaaS-oriented environment may be distinguished from a serverless computing environment by the use of self-developed and -administered functionality whose creation is owned by the entity publishing it, and whose delivery is effected via a stateless, normally cloud-based, computing environment.