BLOGS

What is Function as a Service (FaaS)?

What is Function as a Service (FaaS)?

Tue, 13 Apr 2021

Functions-as-a-Service (FaaS) is a relatively new model of cloud computing. The model is based on serverless computing technologies and architectures that allow software developers to easily deploy applications in the cloud without having to manage servers.

To execute small, modular pieces of code known as functions, FaaS uses serverless architecture. When cloud service providers take care of the application deployment aspect of server management, software developers benefit from cost-effectiveness, scalability, and simplified processes-and they can spend more time focusing on writing application logic, and less time managing servers and deployments.

How does Functions-as-a-Service work?

FaaS is a model of cloud service execution, so an organization wishing to take advantage of FaaS should start by establishing a relationship with a cloud service provider advertising FaaS capabilities.

Developers have no responsibility in keeping application servers in the FaaS delivery model. Rather, they are externally hosted by the service provider and dynamically allocated, based on the customer’s needs. FaaS service providers allow developers of software to deploy pieces of code known as functions that can be executed on demand.

The service provider spins up a server when the function is called, executes the function, then shuts it down. Unlike other models where the application is run by software developers on a dedicated server, the serverless architecture will only be active when the function is actively used. Once the function is executed, it can be shut down again allowing allocation of the same computing resources elsewhere.

With functions-as-a-service, software developers have access to a platform that executes on-demand application logic, and where the service provider secures and coordinates all application resources. For simple, repetitive functions such as scheduling routine tasks or jobs, processing web requests, or processing queue messages, the FaaS model works best.

What are the advantages of using FaaS?

  • Improved developer velocity
  • Built-in scalability
  • Cost efficiency

What are the drawbacks of FaaS?

  • Less system control
  • More complexity required for testing