In 2021, it is expected for serverless to be trending and become more important in the coming years. Serverless is an emerging software architecture where applications will be hosted in the public cloud, in order to make it easier for developers to compose code intended to run on a cloud platform.
In the future, serverless might become so central that businesses won’t have to worry about the infrastructure anymore, as the entire lifecycle will depend on cloud service providers.
Hence, to delve into this topic, we asked experts in the industry to share their insight on serverless architecture and how it will be evolving in the future.
What is serverless?
First of all, it is essential that we define what a serverless architecture means and implies.
For Santhosh Kumar Bhandari, DevOps Engineer at Atos Syntel, serverless is defined as maintaining any applications on a self-reliant platform with inbuilt dependencies and the customers need to not worry about the machine resources.
Moreover, Ranjeet Singh, Technical project Manager at Stadhawk group, adds that serverless is a software development pattern with no direct interaction with the server. However, serverless doesn’t mean that applications run without a server. On the contrary, the third-party cloud server is used for hosting the application.
Hence, Ranjeet continues, there is no need to manage server hardware & software for hosting the application. The hosting provider is responsible for infrastructure & operational tasks. This means that developers of serverless applications are not concerned with capacity planning, configuration, maintenance, scaling of the container, Virtual machine & physical server.
Dhwani Shah, a Lead Information Security Engineer at Fifth Third Bank, agrees with the definition. Indeed, according to him, serverless is a type of model where you don’t have to manage any infrastructure, but your host will do all that for you.
With serverless, you get the power of running and executing anything you need and whenever you need, at an ad hoc level. You give it the execution task and the provider does the rest of allocating resources, building, executing, returning a status, and finally de-allocating the resource.
Jitander Kapil, Head of DevOps at Larsen & Toubro, also highlights the importance of serverless computing. Indeed, if you just have a piece of software that you want to run in the cloud as a reaction to some external event, and you don’t want to care about provisioning and maintaining servers or containers, you may take advantage of it. It is also called FaaS (Function as a Service). You will have to adhere to a particular way of writing and deploying your code, but then the cloud vendor will supply the infrastructure to run it without your intervention and release it upon code completion.
Following on this, Ranjeet then describes the two type of services that serverless architecture serves: FaaS & BaaS:
- Function as a service: This model simply deploys your code & the server automatically runs it. In this case, developers do not worry about the hosting environment. AZURE function & AWS Lambda are popular FaaS services. FaaS supports Event-driven workload with the short-lived process.
- Backend as a service: This model helps to automate the backend development & manage the cloud infrastructure. Here Frontend interacts with the backend via API. BaaS features are notification, user management, Authentication, scalable database & API.
According to him, the most popular BaaS providers are:
- Azure Mobile Apps
- AWS Amplify
Why use a serverless architecture?
After the challenges of the past year, it is interesting to wonder what could serverless architecture bring to a business and why to use it.
Thus, Santhosh starts by saying that, in serverless architecture, you simply have to deploy the applications over a platform and the platform will take care of any dependencies. Hence, it is easy to handle, scale and rollback any applications.
By using a serverless architecture, he continues, businesses have the possibility to maintain their application efficacy to high, all the while rapidly scaling their services and growing their customers and productivity.
Dhwani also points out that serverless can be used on many hosts such as AWS Lambda. Then, serverless architecture is very useful as organizations do not need any architectural overhead, while still executing the piece of code it requires.
Besides, he tells me, serverless is cost-effective. Indeed, most hosts will only charge for the execution time. So, instead of paying for servers that are sitting there charging you money, you’re able to reduce the cost of your application to only when it needs to run. For instance, if you have a small-medium business website that’s not insanely trafficked, you could run it for couple hundred dollars a month.
Jitander adds that the code to be deployed as serverless compute must be stateless, which means that no data will survive across its invocations unless it is persisted externally.
Applications best suited for serverless compute, he continues, are systems handling events coming from a large number of sources that do not require complicated processing, as the Internet of Things (IoT) software.
The benefits of serverless architecture
Serverless architecture can bring a lot to a business.
Indeed, Dhwani emphasizes that serverless architecture provides a way to keep the business focused on itself and its core application. Hence, you don’t have to worry about having an entire team of infrastructure engineers, platform engineers, admins, etc. The application team could be strictly in charge of that since the hosts handle everything else.
Moreover, Ranjeet adds that serverless provides a way to remove the infrastructure responsibility like Hardware & software as well as reduces cost & increase delivery speed. The pricing is based on the actual cost of resources consumed by the application. Besides, BaaS reduce the development cost whereas FaaS reduce the scaling cost.
‘Serverless server provides scalability, availability, reliability & security.’
Santhosh also highlights that in business, you want the customers to be happy with your services. This can be achieved when building a system strong to work independently without any extra efforts of maintenance.
Serverless architecture removes the bottleneck and helps our operations team to provide continuous services.
Still some challenges
Although serverless works in most systems and is extremely beneficial in business, it can also have a few challenges of its own.
Dhwani points out that it’s not very good for long-running applications or tasks. If you have certain customizations that you require from an infrastructure level, you may not get that since the hosts manage all of this. Maybe you want some extended logging capabilities beyond what the host provides. It cannot do that if you’re reliant on a vendor host.
Santhosh emphasizes that point by saying that the need to rely on cloud vendors who provides the backend service for Serverless architectures creates limitations. Besides, cost variation can be another challenge, as you would be using the service from the cloud.
Ranjeet listed a few drawbacks that come with serverless architecture:
- Serverless is not efficient for long-running application: Long-running task is much expensive as compare to VM or dedicated server.
- Complex Architecture: Many components (Microservices, API gateway & Cache server, containerization tool) makes the architecture complex.
- Vendor Lock-in: Your application completely depends on a third-party vendor. You do not have full control of your application.
- Testing & debugging become more challenging
- Multitenancy can reduce application performance.
How to use serverless in business?
There are many serverless options provided by vendors. Ranjeet, Dhwani, and Santhosh note that Microsoft Azure, Google Cloud, and Amazon Web Services (AWS) are among the main ones.
Santhosh also proposes self-maintainable Open-Source technologies such as Open Shift, Kubernetes, which would provide more control over the Engine.
In order to implement them, Dhwani adds that you’ll need a business account on these cloud platforms and then set up a model for whichever service you need. Obviously, businesses should have training and experience working with the providers to be most up to speed, setup safe configurations, and use them efficiently.
Is serverless the future?
Santhosh believes that, as technology is exponentially growing and bringing new challenges for maintaining the dependencies, serverless will become a great solution. Although this technology is new, he continues, it will be more and more crucial in the coming decades.
Dhwani also thinks that serverless is the future. For him, this plethora of applications that run on racks in a self-hosted environment is not very efficient or practical in this day and age.
‘With so much data and so much power that things require, if you can go serverless, you should!’
Similarly, Ranjeet and Jitander believe that serverless is the future for application as developers will more focus on the logic of customer interaction rather than infrastructure. Jitander highlights that serverless architecture allows developers to have software easier to build and maintain – and cheaper too!
We must not forget that serverless is still new and would require a shift in architecture for it to be completely implemented and adopted.
Special thanks to Santhosh Kumar Bhandari, Ranjeet Singh, Dhwani Shah, and Jitander Kapil for their insights on the topic!