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.
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:
As FaaS moves further into the mainstream, use cases will expand to include more sophisticated, likely network-resident, use cases such as:
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.
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.