Functions as a Service (FaaS)
April 8, 2023 • 8 minutes read

Functions as a Service (FaaS)

Functions as a Service (FaaS) is a cloud computing model in which a cloud provider manages the execution of small pieces of code, known as functions

FaaS platforms allow developers to write code in preferable language, deploy and run it, without worrying about the underlying infrastructure. FaaS is based on the concept of serverless computing, which isolates from the developer the underlying servers and infrastructure required to run the code. In FaaS, the cloud provider manages the servers and resources required to run the functions, and developers only pay for the time their code is actually executing

Examples of FaaS providers

Advantages

Cost-effective

With FaaS, you will pay only for the actual time your code is running, rather than for the entire server or infrastructure. This means that FaaS can be more cost-effective than traditional server-based architectures, especially for applications with unpredictable workloads

Scalability

FaaS platforms can automatically scale up or down based on the demand. This means that applications built on FaaS can handle sudden spikes in traffic without the need for manual workloads scaling

Reduced operational activities

With FaaS, developers do not have to worry about managing servers or infrastructure. The cloud provider manages the underlying infrastructure, including scaling, updates, and maintenance, helping developers to focus on writing the code

Faster time-to-market

With FaaS, developers can build and deploy code faster, as they do not have to worry about the underlying infrastructure. This means that organizations can launch new products or features more quickly and with less effort

Event-driven architecture

FaaS is well-suited to event-driven architectures, where functions are triggered by events such as user actions or changes in data. This makes it easier to build applications that respond in real-time to user or system events

Disadvantages

Cold start latency

One of the primary disadvantages of FaaS is cold start latency. When a function is triggered for the first time, the cloud provider must allocate the necessary resources, which can take several seconds. This can result in delays and may slow down application performance

Vendor lock-in

Each FaaS provider has its own set of programming languages, development kits, and deployment tools. This can make it challenging to switch between providers, leading to vendor lock-in

Limited runtime environment

FaaS platforms offer a limited runtime environment, which can restrict the use of certain programming languages, libraries, and frameworks and time to run complex functions. This can make it challenging to build complex applications that require specific libraries or environments

Debugging and testing

Debugging and testing of FaaS applications can be more challenging than traditional server-based applications, as functions are deployed separately and it’s tricky to track all interactions with other functions and services

Conclusions

FaaS is a highly scalable and cost-effective way to build and deploy serverless applications, as developers can focus on writing the code without having to worry about the infrastructure or the operations of the application. FaaS can be used for a variety of use cases such as data processing, event-driven architectures, Internet of Things applications, APIs

FaaS may not be a good option for heavy time consuming operations, as usually running time is limited. FaaS may be tricky for large applications with complex business logic and FaaS is definitely not the best option for applications where response time is critical, because of cold start latency issues

Last update April 15, 2023
Software Architecture FaaS XaaS
Do you have any questions?

Contact Me