Serverless does not mean Lambda or FaaS! ⚠️
Originally written at pooyan.info
Who is the author? Check out my profile on LinkedIn.
In recent years, serverless computing has emerged as a revolutionary paradigm in cloud computing. However, there is a common misconception that serverless computing is synonymous with AWS Lambda, one of the most popular serverless computing services. While AWS Lambda has played a crucial role in popularizing serverless architectures, it is essential to understand that serverless is not limited to just Lambda or in fact any other FaaS solutions like Google or Azure Functions.
Some AWS serverless offerings
History behind it
The term "serverless" and "Function as a Service" (FaaS) was first used around 2012 by a startup called Hook.io. Hook.io, founded by Marak Squires, used the term to describe their platform, which allowed developers to run small pieces of code in response to events without needing to manage servers.
The concept gained wider recognition and popularity when Amazon Web Services (AWS) introduced AWS Lambda in 2014, providing a fully managed serverless computing service. Since then, the term "serverless" has been widely adopted to describe the serverless computing paradigm, which abstracts away server management and focuses on executing code in response to events.
The confusion mainly arose when AWS announced Serverless Application Model (SAM) in 2016. From then on, people started to think that maybe using Lambda functions or the combination of resources it could create should be called "The Serverless Computing"! Resources like Lambda functions, API Gateway, DynamoDB tables, EventBridge, SNS, and SQS.
Different aspect of the serverless paradigm
Function-as-a-Service (FaaS):
FaaS is one of the most prominent categories in serverless computing. It focuses on executing code functions in response to events or triggers. Developers write individual functions that are executed in a stateless and event-driven manner, typically in response to events like API calls, file uploads, or database changes. FaaS platforms, such as AWS Lambda, Azure Functions, and Google Cloud Functions, manage the infrastructure, scaling, and availability of these functions.
Containers and Serverless
Container-based serverless platforms combine the benefits of containerization with serverless computing. Developers can package their applications or functions into containers, which are then automatically provisioned and scaled based on demand. Examples of container-based serverless services include AWS Fargate, which works with both ECS (Elastic Container Service) and EKS (Elastic Kubernetes Service), Azure Container Instances, and Google Cloud Run.
Other types of managed Services
Managed services in the serverless realm refer to fully managed cloud services that abstract away infrastructure management. These services cover a wide range of functionalities, including different types of databases, object storage, messaging services, API gateways, messaging systems, authentication services, machine learning, and more. Examples include Amazon Aurora Serverless, Amazon DynamoDB, Azure Cosmos DB, Amazon S3, Google Cloud Storage, AWS API Gateway, AWS Step Functions, AWS EventBridge, Azure Event Grid, and Google Cloud Pub/Sub.
Backend-as-a-Service (BaaS)
BaaS platforms provide fully managed backend infrastructure and services, allowing developers and small startups to build applications without the need to develop and manage server-side components. BaaS offerings are backend as a whole and often can include different systems and functionalities like databases and storage to store data, user authentication, push notifications, etc. Examples of BaaS platforms include Firebase (Google), AWS Amplify, and Backendless.
Rick Houlihan's (Inventor of DynamoDB) Tweet on Serverless
Evolution of Serverless Computing
Serverless computing, as a concept, has evolved significantly since its inception. Initially, it was primarily associated with Function-as-a-Service (FaaS) offerings like AWS Lambda, where developers could execute code without needing to provision or manage servers explicitly. This abstraction of server management allowed developers to focus solely on writing code, eliminating the operational overhead.
However, as the serverless paradigm evolved, it became clear that serverless computing is not limited to just FaaS offerings. It is a broader concept that encompasses a wide range of managed services, including databases, storage, messaging, and more. It also includes container-based serverless platforms like AWS Fargate, Azure Container Instances, and Google Cloud Run. These platforms combine the benefits of containerization with serverless computing, allowing developers to package their applications or functions into containers, which are then automatically provisioned and scaled based on demand.
Conclusion
Serverless computing is a paradigm shift in cloud computing that abstracts away server management. Using serverless solutions can help you focus on writing code and building applications without worrying too much about the regular operations needed for infrastructure management. Bear in mind that serverless computing is not limited to just FaaS offerings like AWS Lambda, and it includes other types of serverless like container-based serverless platforms like AWS Fargate, Azure Container Instances, and Google Cloud Run.
Finally, it is essential to remember the term "serverless" does not just mean "serverless computing" or "Function-as-a-Service" (FaaS). It is a broader concept encompassing a wide range of managed services, including databases, storage, messaging, and more. The idea is to abstract away server management and reduce the time and effort spent on operations.
If you liked the article and want to keep me motivated to provide more content, you can share this article with your friends and colleagues and follow me here on Medium or LinkedIn.
Copyright & Disclaimer
- All content provided on this blog is for informational purposes only. The owner of this blog makes no representations as to the accuracy or completeness of any information on this site or found by following any link on this site.
- All the content is copyrighted and may not be reproduced on other websites, blogs, or social media. You are not allowed to reproduce, summarize to create derivative work, or use any content from this website under your name. This includes creating a similar article or summary based on AI/GenAI. For educational purposes, you may refer to parts of the content, and only refer, but you must provide a link back to the original article on this website. This is allowed only if your content is less than 10% similar to the original article.
- While every care has been taken to ensure the accuracy of the content of this website, I make no representation as to the accuracy, correctness, or fitness for any purpose of the site content, nor do I accept any liability for loss or damage (including consequential loss or damage), however, caused, which may be incurred by any person or organization from reliance on or use of information on this site.
- The contents of this article should not be construed as legal advice.
- Opinions are my own and not the views of my employer.
- English is not my mother-tongue language, so even though I try my best to express myself correctly, there might be a chance of miscommunication.
- Links or references to other websites, including the use of information from 3rd-parties, are provided for the benefit of people who use this website. I am not responsible for the accuracy of the content on the websites that I have put a link to and I do not endorse any of those organizations or their contents.
- If you have any queries or if you believe any information on this article is inaccurate, or if you think any of the assets used in this article are in violation of copyright, please contact me and let me know.
Top comments (0)