Goal of this article is to explain what a serverless computing/architecture is, its benefits and to understand related terminology. This article is a foundation of serverless architecture.
What is Serverless Computing?
Even though it is called serverless, servers are still involved. Serverless computing adds another layer of abstraction on top of cloud infrastructure, so that developers no longer need to worry about servers, including virtual ones in the cloud.
Don’t bother about infrastructure, focus on your application.
In a traditional environment, developers must provision and configure servers, install operating systems and continually manage the infrastructure. With a serverless architecture, you are free to create, manage and deploy apps that scale on demand—without worrying about infrastructure.
Why use Serverless architecture?
Serverless architectures are event-driven, highly scalable and only use resources when a specific function or event occurs. Serverless enables you to build modern applications with increased agility and lower total cost of ownership. You only pay for the resources you use or the time your code is running.
The term Serverless covers two types of cloud computing architectures:
- Backend as a Service or “BaaS”
An application runs huge chunks of its backend code on a cloud server managed by a third-party provider. BaaS clouds can cater to specific functionality like login management or API maintenance. It’s not uncommon to see UI-heavy one-page web apps to run most of their server-side code on a serverless platform.
- Functions as a Service “FaaS”
One way to think of this is “Functions as a Service” or “FaaS”. (Note: The original source for this name—a tweet by @marak—is no longer publicly available.)FaaS is an implementation of Serverless architectures where engineers can deploy an individual function or a piece of business logic. Fundamentally, FaaS is about running backend code without managing your own server systems or your own long-lived server applications.
Benefits of Serverless
- No server management
- Flexible scaling
- Pay for value
- Automated high availability
- Independent, server-side, logical functions
- Scalable by default
- Fully managed by a Cloud vendor
Serverless is new Buzz in market and most of the cloud providers providing services to implement serverless architecture.
- AWS Lambda
- Google Cloud Functions
- Azure Functions
- IBM OpenWhisk
- Alibaba Function Compute
- Iron Functions
- Auth0 Webtask
- Oracle Fn Project
This article covered some of the key components of serverless architecture and focussed in particular on Functions as a Service (FaaS). Serverless is not the correct approach for every problem, so be wary of anyone who says it will replace all of your existing architectures.
Be careful if you take the plunge into Serverless systems now, especially in the FaaS realm. Serverless architecture is certainly very exciting, but it comes with a bunch of limitations.
Thanks for reading guys!