Browse Chapters
Definition of Function-as-a-Service (FaaS)
What is the definition of Function-as-a-Service (FaaS)? When AWS Lambda first hit the scene, cloud mavens were keen on collapsing all cloud service names into “as-a-Service”-isms. For example:
- core infrastructure services like compute and networking became “Infrastructure-as-a-Service (IaaS)”.
- serverless databases were called “DB-as-a-Service (DBaaS)”.
- hosted server platforms were called “Platform-as-a-Service” (we discussed this earlier in the guide).
- it even got to the point where renting a complete piece of hardware became “Metal-as-a-Service”.
In such an environment, it is no surprise that the first wave of serverless app platforms was given the unattractive monicker “Function-as-a-Service (FaaS).”
At Fermyon, we tend to avoid using the term FaaS for a few reasons:
- In English, FaaS can be verbally hard to distinguish from PaaS.
- The term FaaS is opaque. If you don’t know what it means, there are not many clues embedded in the term itself. As with all the “aaS”es, one finds oneself mentally listing words that start with F for clarification.
- The term itself refers to the service that runs. So what do you call an application that runs in a FaaS? A Function-as-a-Service Function? A Function-as-a-Service App? That just sounds confusing.
In contrast, an app run inside of a PaaS is usually called a server or a microservice. Thus, most people in the field refer to apps that run in a FaaS as serverless apps (or serverless functions).
The most famous PaaS, Heroku, does not refer to itself as a PaaS, and for the same reason, we don’t use FaaS. Much of their documentation uses the term “cloud application platform.”
Since we don’t particularly like the term FaaS, we describe the place to run serverless apps as a serverless app platform. But if you prefer FaaS, you can mentally substitute that anytime we talk about serverless app platforms.
Browse Chapters