Introduction
Serverless is the latest buzzword in the software architecture world. It is an approach to development where the need for creating and maintaining server’s from physical machines to VMs to cloud instances is removed. This usually means that the architecture is some form of
application that interacts with multiple third party APIs/services and
self-created non-server based APIs to deliver it's functionality.
Serverless computing could mean that while the server-side logic is written by the application developer, it is run in stateless compute containers that are event-triggered and fully managed by a 3rd party. Going by the amount of attention that major cloud vendors - Amazon, Microsoft, Google and IBM - are giving it, Serverless technologies could well be the future of cloud.
Existing Platforms
Naturally not all applications can be implemented in the server-less
way. There are limitations especially when it comes to legacy systems and using
a public cloud. However, the adoption of existing server-less frameworks is
only growing by the day. Currently the following server-less computing
frameworks are available
- · AWS Lambda
- · Google Cloud Functions
- · Iron.io
- · IBM Open Whisk
- · Microsoft Azure Web Jobs
Function As A Service
Function-As-A-Service lets you run code without provisioning or managing servers. The paradigm of Server-less
Computing is based on the micro-services architecture. Server-less computing frameworks invoke autonomous code snippets
when triggered by external events.
These snippets are loosely coupled with each
other that are essentially designed to perform one task at a time. Server-less
frameworks are responsible for orchestrating the code snippets at runtime. This way one can deploy their applications as independent functions, that respond to events, get charged for only when they run, and scale automatically.
The concept of Server-less computing allows developers to upload
autonomous code snippets that are invoked and orchestrated at runtime. Each
snippet is versioned and maintained independently of other snippets. This
approach marries the Microservices concept with Server-less computing.
The server-less computing allows the developers to skip the need to
provision their resources based on current or anticipated loads, or put a
lot of effort into planning for new projects. Similar to Virtual Machines which
have made it easy to spin up servers to create new applications, server-less
computing services make it simple to grow.
Conclusion
The rise in containers and microservices is the driving force behind serverless computing. Server-less Computing turns out to be a excellent choice
for applications like Event Driven Systems, Mobile Backends, IoT Applications, ETL
and APIs. For certain use cases serverless computing approach can significantly reduce operational cost.