Understanding Serverless in 2020
Published: 2020-10-07 17:02:23

**Cloud computing** and **Serverless** terms have gained tremendous popularity in the last few years. Most of the companies are adopting cloud computing for improved management of company architecture. People often come across the term serverless, but what exactly is Serverless? Does it mean there aren’t servers at all? NO, not exactly!!!  Lets have a better knowledge of Serverless and its pros and cons in this article.

**What is Serverless?**

Serverless is a method where cloud providers allow users to write and deploy the code without having to worry about the infrastructure, or you can say Servers. Serverless allows developers to purchase backend services on a pay-as-you-go model. So developers have to pay only for the services they have used.

In the early years, developers needed to have their own physical hardware to run a server. It was an expensive and inconvenient task. Cloud Computing made this process a lot easier. As it allowed developers to rent the servers remotely.

But the developers were over-purchasing the servers to manage the peak traffic or activity. This was leading to a waste of both space and money. Then the concept of auto-scaling was introduced to address the issue. But auto-scaling was not able to manage the unwanted spike such as DDoS Attack. Then came Serverless, which is a perfect solution as it offers a pay-as-you-go facility.

Serverless offers a execution model where the cloud provider manages the allocation and provisioning of servers dynamically. A serverless application runs in stateless containers that are triggered by time-events and are ephemeral, which are again managed by cloud vendor.

**So one key element for Serverless is: “You should focus only on your applications, and not the infrastructure””**

Serverless computing is basically of two types. Each describes their application architecture.

1. Back-end as a Service (BaaS) – This is used for applications that have most of their backend on the cloud. BaaS is ideal for front-end heavy applications. For ex. Mobile apps.
2. Functions as a Service (FaaS) – This features those applications that run parts of their code through event triggers. It offers flexibility for server-side applications.

**Pros and Cons of Serverless**

Lets have a look at the pros as well as cons of Serverless architecture. This will help in deciding whether Serverless works for you or not.

**Pros of Serverless**
1. Reduce Costs: serverless is a great way to reduce costs. Because you are outsourcing servers, databases, and some parts of logic. Not only cost-cutting but it also requires less human resources and computing power. Serverless will take care of the infrastructure and you can focus on server-side codes.

2. Easy Deployment: it is easy to deploy andcan be deployed within minutes or couple of hours. You don’t need to spend weeks and months on deployment. Because there is no need to focus on the infrastructure. Just concentrate on code and deploy it immediately.

3. Extra Focus on the Frontend(UX): the end-user is only interested in the front-end or UX. They don’t care about the infrastructure and back-end. Serverless allows you to focus on the front-end and user interface. Serverless can provide you with a way to reallocate resources.

4. Improved Scalability:serverless computing will make you capable of handling the heavy load. If your application is growing, it is easy to make changes accordingly to sustain the growth. If not, then no harm done! You don’t need to plan extra infrastructure without knowing the actual need for your app.

5. Improved Flexibility: easy implementation of an app with serverless is making it more flexible than the traditional ways. Faster results mean faster innovations. This will help you to move on to the next project as quickly as possible. It is also easier to pivot in situations where you need to restructure your architecture.

6. Happy Customers: serverless gives the luxury of not worrying about the infrastructure. That means developers can have that extra focus on excellent customer experience. It is possible to release logic and features quickly to improve user experience. Because nobody wants to wait for a long time for small fixes. So a serverless architecture will eventually lead to happy customers.

**Cons of Serverless Architecture**
1. Dependency on Third-party: you have to rely on your provider most of the time if you choose serverless architecture. You don’t have full control over the servers. Some changes might impact you without notice. Also, the platform’s availability depends on its terms and conditions.

2. Cold Starts: serverless computing may take some time to handle your first function request. This is known as cold start. However, this can be avoided if you ensure your functions remain in an active state. You can do this by sending requests to it regularly.

3. Not fit for Long-term Tasks: if you are using serverless for a long duration, constantly running tasks, you might end up paying more for compute time. However, it is ideal for short-term and real-time processes. If you are executing multiple functions at the same time, you’ll get Denial of Service (DoS) for your apps.

4. Complexity: serverless is quite complex to understand and apply. Units of integration are quite smaller than other architectures. You might face problems with deployment and versioning. Also, it is a new technology for developers. So sometimes. it can be a little tricky.

**Some Popular Serverless frameworks**

There are numerous Serverless tools and frameworks available in the market. Some of the best Serverless frameworks are:

1. AWS Lambda Functions
2. Microsoft Azure Functions
3. Google Cloud Functions
4. IBM Cloud Functions
5. Cloudflare Workers
6. SLAppForge
7. Stackery

Serverless architecture is one more option in the ocean of Cloud computing. As we discussed, Serverless is not easy to maintain and monitor. But it has its own benefits to offer. Finally, the developers can choose the architecture that best meets their requirements.

**PS: This post was originally published at :**
https://devopscurry.com/understanding-serverless-in-2020/