DEV Community

Anurag Vishwakarma for firstfinger

Posted on • Originally published at firstfinger.in on

Is FaaS the Same as Serverless?

Is FaaS the Same as Serverless?

Suppose, as a small business owner, you've worked hard to build an e-commerce website that showcases your unique products. Your website is gaining traction, and you're starting to see a steady increase in customer traffic. However, with this growth comes a new challenge - scalability.

Is FaaS the Same as Serverless?
Credit: Melody Onyeocha on Dribble

Whenever a customer clicks your site's " Buy Now" button, your web application needs to process the order instantly, update the inventory, and send a confirmation email. But what happens when hundreds of customers start placing orders simultaneously? Your current server-based architecture simply can't keep up, leading to slow response times, frustrated customers, and lost sales.

So you need a more scalable solution for your web application. This is where serverless computing comes in, allowing you to focus on code rather than infrastructure.

What is FaaS (Functions as a Service)?

Functions as a Service (FaaS) is a cloud computing service that allows you to run your code in response to specific events or requests, without the need to manage the underlying infrastructure. With FaaS, you simply write the individual functions (or "microservices") that make up your application, and the cloud provider takes care of provisioning servers, scaling resources, and managing the runtime environment.

The benefits of FaaS:

  1. Pay-per-use : You only pay for the compute time when your functions are executed, rather than paying for always-on server capacity.
  2. Automatic scaling : The cloud provider automatically scales your functions up or down based on incoming traffic, ensuring your application can handle sudden spikes in demand.
  3. Focus on code : With the infrastructure management handled by the cloud provider, you can focus solely on writing the business logic for your application.

FaaS is specifically focused on building and running applications as a set of independent functions or microservices. Major cloud providers like AWS (Lambda), Microsoft Azure (Functions), and Google Cloud (Cloud Functions) offer FaaS platforms that allow developers to write and deploy individual functions without managing the underlying infrastructure.


What is Serverless?

Serverless is a broader cloud computing model that involves FaaS but also includes other fully managed services like databases (e.g., AWS DynamoDB, Azure Cosmos DB, Google Cloud Datastore), message queues (e.g., AWS SQS, Azure Service Bus, Google Cloud Pub/Sub), and storage (e.g., AWS S3, Azure Blob Storage, Google Cloud Storage).

In a serverless architecture, the cloud provider is responsible for provisioning, scaling, and managing the entire backend infrastructure required to run your application.

πŸ’‘

FaaS is one type of serverless architecture, but there are other types, such as Backend-as-a-Service (BaaS).

The benefits of Serverless Computing:

  1. Reduced operational overhead : With no servers to manage, you can focus entirely on building your application without worrying about infrastructure.
  2. Event-driven architecture : Serverless applications are designed around event triggers, allowing you to react to user actions, data changes, or scheduled events in real time.
  3. Seamless scalability : Serverless platforms automatically scale your application's resources up and down based on demand, with no additional configuration required on your part.

FaaS vs Serverless

Is FaaS the Same as Serverless?

Feature FaaS Serverless
Infrastructure Management Handles provisioning and scaling of servers/containers for your functions Handles provisioning and scaling of the entire backend infrastructure, including servers, databases, message queues, etc.
Pricing Model Pay-per-execution (cost per function invocation) Pay-per-use (cost per resource consumption, e.g., CPU, memory, data transfer)
Scalability Automatically scales functions up and down based on demand Automatically scales the entire application infrastructure up and down based on demand
Stateful vs. Stateless Functions are typically stateless Supports both stateful and stateless services
Event-Driven Architecture Supports event-driven execution of functions Natively supports event-driven architecture with managed event services
Third-Party Service Integration Integrates with other cloud services through API calls Seamless integration with a rich ecosystem of managed cloud services
Development Focus Concentrate on writing the application logic in the form of functions Concentrate on building the overall application structure and leveraging managed services
Vendor Lock-in Some vendor lock-in, as functions are typically tied to a specific FaaS platform Potential for vendor lock-in, as Serverless often relies on a broader set of managed services
Examples AWS Lambda, Azure Functions, Google Cloud Functions, IBM Cloud Functions AWS (Lambda, API Gateway, DynamoDB), Azure (Functions, Cosmos DB, Event Grid), Google Cloud (Functions, Datastore, Pub/Sub), IBM Cloud (Functions, Object Storage, Databases)
Infrastructure Management Handles provisioning and scaling of servers/containers for your functions Handles provisioning and scaling of the entire backend infrastructure, including servers, databases, message queues, etc.

1. Scope

FaaS is a specific type of serverless architecture that is focused on building and running applications as a set of independent functions. Serverless computing, on the other hand, is a broader term that encompasses a range of cloud computing models, including FaaS, BaaS, and others.

2. Granularity

FaaS is a more fine-grained approach to building and running applications, as it allows developers to break down applications into smaller, independent functions. Serverless computing, on the other hand, can be used to build and run entire applications, not just individual functions.

3. Pricing

FaaS providers typically charge based on the number of function executions and the duration of those executions. Serverless computing providers, on the other hand, may charge based on a variety of factors, such as the number of API requests, the amount of data stored, and the number of users.


Major cloud providers that offer FaaS and serverless computing services:

  1. AWS Lambda - AWS Lambda is a FaaS platform that allows developers to run code without provisioning or managing servers. Lambda supports a variety of programming languages, including Python, Node.js, Java, and C#.
  2. Azure Functions - Azure Functions is a serverless computing service that allows developers to build event-driven applications using a variety of programming languages, including C#, Java, JavaScript, and Python.
  3. Google Cloud Functions - Google Cloud Functions is a FaaS platform that allows developers to run code in response to specific events, such as changes to a Cloud Storage bucket or the creation of a Pub/Sub message.
  4. IBM Cloud Functions - IBM Cloud Functions is a serverless computing platform that allows developers to build and run event-driven applications using a variety of programming languages, including Node.js, Swift, and Java.
  5. Oracle Cloud Functions - Oracle Cloud Functions is a FaaS platform that allows developers to build and run serverless applications using a variety of programming languages, including Python, Node.js, and Java.

Choosing Between FaaS and Serverless

Use FaaS for:

Opt for serverless computing when:

  • You're deploying complex applications that require a unified environment for all components.
  • You want to reduce the operational overhead of managing servers while maintaining control over application configurations.

Understand with an Example

Suppose you want to build a simple web application that allows users to upload images and apply filters to them. With a traditional server-based architecture, you would need to provision and manage servers, install and configure software, and handle scaling and availability. This can be time-consuming and expensive, especially if you're just starting out.

With a serverless architecture, on the other hand, you can focus on writing the code for the application logic, and let the cloud provider handle the rest.

For instance, you could use AWS Lambda (FaaS) to run the code that processes the uploaded images, AWS S3 for storage, and other AWS services like API Gateway and DynamoDB as part of the overall serverless architecture. The cloud provider would automatically scale the resources up or down based on demand, and you would only pay for the resources you actually use.

All FaaS is serverless, but not all serverless is FaaS.

FaaS is a type of serverless architecture, but the two terms are not the same. FaaS is all about creating and running applications as separate functions, while serverless computing is a wider term that covers different cloud computing models. In other words, FaaS is a specific way of doing serverless computing that involves breaking down an application into small, independent functions that can be run separately. Serverless computing, on the other hand, is a more general approach that can involve using different cloud services to build and run an application without having to manage servers.


Development Tooling and Community Support

The major cloud providers offer varying levels of tooling and community support for their FaaS and serverless offerings. AWS has the largest community and a mature set of tools like AWS SAM for local development and testing of serverless applications.

Microsoft Azure has good tooling integration with Visual Studio Code, while Google Cloud's tooling is still catching up. A strong developer ecosystem and community support can be crucial when building and maintaining serverless applications.


AWS vs Azure vs Google Cloud in Serverless Computing

FaaS Platform

Feature Lambda Azure Functions Cloud Functions
Arm64 architecture βœ… ❌ ❌
Compiled binary deployment βœ… βœ… ❌
Wildcard SSL certificate free βœ… ❌ βœ…
Serverless KV store DynamoDB CosmosDB Datastore
Serverless SQL Aurora Serverless Azure SQL BigQuery
IaC deployment templates SAM, CloudFormation ARM, Bicep GDM
IaC drift detection βœ… ❌ ❌
Single shot stack deployment βœ… ❌ ❌

Developement

Feature Lambda Azure Functions Cloud Functions
Virtualized local execution βœ… ❌ ❌
FaaS dev tools native for arm64 βœ… ❌ βœ…
Go SDK support βœ… βœ… βœ…
PHP SDK support βœ… βœ… βœ…
VSCode tooling βœ… βœ… βœ…
Dev tools native for Apple Silicon βœ… ❌ βœ…

Community

Feature Lambda Azure Functions Cloud Functions
Reddit community members 278,455 141,924 46,415
Stack Overflow members 256,700 216,100 54,300
Videos on YouTube channel 16,308 1,475 4,750
Twitter/X followers 2.2 M 1 M 533 K
GitHub stars for JS SDK 7.5 K 1.9 K 2.8 K
GitHub stars for .NET SDK 2 K 5 K 908
GitHub stars for Python SDK 8.7 K 2.7 K 4.6 K
GitHub stars for Go SDK 8.5 K 1.5 K 3.6 K

Runtimes

Runtime Lambda Azure Functions Cloud Functions
Custom (Linux) βœ… βœ… ❌
Custom (Windows) ❌ βœ… ❌
Python βœ… βœ… βœ…
Node.js βœ… βœ… βœ…
PHP ❌ ❌ βœ…
Ruby βœ… ❌ βœ…
Java βœ… βœ… βœ…
.NET βœ… βœ… βœ…
Go βœ… βœ… βœ…
Rust βœ… βœ… ❌
C/C++ βœ… βœ… ❌

Serverless AI

Provider Lambda Azure Functions Cloud Functions
Open AI ❌ βœ… ❌
Gemini ❌ ❌ βœ…
Anthropic βœ… βœ… βœ…
Meta Llama2 βœ… βœ… βœ…
Cohere βœ… βœ… βœ…
AI21 βœ… ❌ ❌
Amazon Titan βœ… ❌ ❌
Mistral βœ… βœ… βœ…
Stability (SDXL) βœ… ❌ βœ…
Computer Vision βœ… βœ… βœ…

Top comments (0)