Several years ago commercial development of applications was an expensive process that required capital investment in hardware and software before a single line of code was generated. As cloud computing has come to rescue, it has introduced online services with hardware and software resources to fit all needs and budgets.

Copyright by https://medium.com

 

SwissCognitiveHowever, those earlier cloud services tended to be monolithic chunks of code designed to be run on a single server, even if hosted in the cloud. Because of this, hardware still needed to be provisioned, configured and paid for in order to execute the application. The new concept of serverless computing claims to address this issue.

What is serverless computing?

Serverless computing is a method of providing backend services on an as-used basis. Of course, it requires servers to apps — or functions — to run. However, the architecture is designed in such a way that the developer doesn’t need to worry about server management, or to plan capacity. Users write and deploy code without paying attention to the underlying infrastructure. A company that gets backend services from a serverless vendor is charged based on their computation and does not have to reserve and pay for a fixed amount of bandwidth or number of servers, as the service is auto-scaling.

Advantages

Drawbacks

Serverless computing does have many benefits, but, as any concept, it comes with significant trade-offs inherent to it that cannot be entirely fixed.

Strategies

When we speak about serverless computing, we mention architectures, not just one architecture. In its essence, it encompasses two different but overlapping areas:

BaaS

Initially, serverless computing had been dependent on third-party cloud services, which allowed managing the server-side logic and state. These were — and still are — typically “rich client” applications, such as single-page web apps, or mobile apps that use the vast ecosystem of cloud-accessible databases, authentication services, and so on. Such types of services are described as “(Mobile) Backend as a Service”, or “BaaS”.


Thank you for reading this post, don't forget to subscribe to our AI NAVIGATOR!


 

The idea underlying BaaS is that both Web and mobile apps require a similar set of features on the backend, such as push notifications, server code, user and file management, social networking integration, location services, and user management, each with its own API. BaaS uses a unified API and SDK to make a bridge between such backends and the application frontend. In this way, developers don’t have to develop another backend for each service that the applications use or access.

Examples:

BaaS became popular with Facebook’s Parse, which provided a backend platform for developers to prototype rapidly. Not scalable and quite expensive (300–1000 requests per minute cost USD1000/month), Parse helps to share native models across server-side code and multiple clients. It is mainly helpful for front-end mobile developers who have little backend skills or resources but need simple backend for their mobile apps. At present, there exist BaaS platforms for enterprise, even for a certain industry, and for mobile applications:

FaaS

Serverless computing can also mean applications where server-side logic is written by the application developer, but it is run in stateless compute containers that are event-triggered, may last for one invocation, and fully managed by a third party. The most popular way to think of this is “Functions as a Service” or “FaaS”. While in a microservice architecture, monolithic apps are broken down into smaller services, with FaaS, it goes even deeper as it breaks apps to the level of events and functions. What it means is that you can upload modular chunks of functionality into the cloud and they will be executed independently, splitting the server into a bunch of functions which can be scaled automatically and independently.

Examples:

AWS Lambda is one of the most popular implementations of a Functions-as-a-Service platform at present. Launched in 2014 by Amazon web services, AWS Lambda is an event-driven, serverless computing platform. All the code is executed in Lamba upon configured event trigger. That means that instead of loading your application code into a virtual machine or a container, you upload it into Lambda where it sits, dormant, until some external event triggers it and the Lambda service brings your app out of quiescence and executes it. Lambda became a major departure from the path of computing that stretches back to mainframes and continues through today’s infrastructure-as-a-service (IaaS) cloud computing offerings.

At the same time, there are many other platforms, including those by other tech giants:

Nowadays, with more cloud-based “as a service” tools emerging on the market, it is high time to vote for a faster and easier to implement solution sparing your resources for other tasks — of course, if you are fine with giving some control over your application to someone else.