Serverless! What is it? The word serverless is like the word cashless. When someone says cashless transactions, it doesn’t mean they don’t pay any cash, it just means they don’t have a need for exchanging currencies in the physical form, thereby removing the hassle of carrying wads of cash notes to buy a loaf of bread.
An article by: Sunil Kumar
Cloud Solutions Director – UK | Thought Leader
The word serverless is a misnomer, the right words should have been “less servers”. But I guess it’s too late for us to change the name now.
So, what is serverless, really?
To understand Serverless, we need to understand Cloud Computing
In the early days of the web, anyone who wanted to build and host a web application, such as a website, had to own the physical hardware (servers, routers, load-balancers, etc.), which made it a cumbersome and expensive undertaking.
Then came the ‘era’ of cloud computing, bringing with it the flexibility of renting IT infrastructure, rather than owning it outright.
CTOs, CIOs, IT Directors, managers, developers, and companies who rent these fixed units of server space generally over-purchase to ensure that a spike or demand in traffic or activity will not exceed their monthly limits and break their applications. This means that much of the server space that gets paid for can go to waste.
The adoption of Serverless technologies brings with it the flexibility of ‘pay-as-you-go’, meaning that developers must pay only for the services they use. Think of it like switching from the car insurance model where you guesstimated the usage for the upcoming year and paid the premium, irrespective of whether the car was used or not, to a model where you pay-per-mile. A paradigm shift indeed!
Serverless computing is a method of providing IT services on an as-used basis. A serverless provider allows users to write and deploy code without the hassle of worrying about the underlying infrastructure. No worries about server downtime, back-up, maintenance, networks, and so on.
A 2019 survey by O’Reilly found that 40 percent of organizations had adopted serverless architecture. The main reasons behind the adoption included reduced costs, scalability, developer productivity, and more:
Image courtesy of OReilly.com.
One main advantage of Serverless is that your developers can focus their attention on product development. They are no longer burdened by the need to manage and operate servers. Components like network configuration or the physical security of your servers are offloaded to the Cloud and Cloud providers.
Here are some other benefits of embracing a serverless architecture:
Better observability and control
With serverless, you break down applications into smaller and smaller pieces, known as decomposition – think micro-services. Thus, you can gain better observability across the application.
With smaller pieces, the knowledge necessary to make changes or create fixes is reduced and you have greater control over the outcomes.
Faster time-to-market and greater innovation
Speed to market, speed to release, speed to deployment are major deciding factors when choosing to use a serverless architecture. You can rapidly deploy apps in hours, because there’s no infrastructure to weigh you down.
By using an agile serverless architecture, you can be very flexible with the software release cycles. Because it’s a quicker process, you can accelerate innovation. This is fully complemented with the ease of scalability.
Serverless is event-based
One of the most common use cases for serverless is event-based systems versus stream-based ones. With an event-based architecture, each component of the application is independent. Events trigger one another. If there is a failure, it just affects that event, without impacting other parts of the application or IT service.
With serverless, you essentially outsource server and database management. You are no longer responsible for the huge investments needed for IT administration. Ultimately, your use case will define how much you can save.
Focusing more on UX
If your applications have end users, which almost always is the case, they have high expectations around today’s digital experiences. If architecture is no longer a concern, that gives you more time to work on the user experience (UX). You can’t afford to not invest in the user interface, so serverless can provide you with a way to reallocate resources.
Like everything in life, the serverless architecture isn’t perfect. Businesses are only now getting used to the serverless paradigm and the serverless architecture is being adapted to various business needs. As more businesses start to use serverless, realise its benefits and re-imagine its use cases, it will become more mature and encourage even greater adoption.
A cold start for a serverless function (we will explore serverless functions in a different article), is like cranking up a car on a frosty winter morning. A “cold start” occurs when a platform must initiate internal resources. It may take some time for your serverless architecture to handle that first function request. You can avoid a “cold start” by ensuring the function remains in an active state. You do this by sending requests to it periodically. And that has its own overheads.
Long-running application inefficiencies
Programs, applications or workloads that have long processing / long running time, can become more expensive on serverless. Using a pay-as-you-go or dedicated server is often more efficient in these cases.
A Serverless architecture requires you to be reliant on your provider. i.e. it results in vendor lock in. You don’t have full control, and changes may impact you unexpectedly. The platform’s availability is subject to the provider’s terms and conditions.
In next week’s blog post we’ll go over the Serverless tech stack and the most frequent use cases for it, which will hopefully help you determine whether serverless is a good fit for your organization. In the meantime, should you want to learn more about Serverless, you can watch this free recorded webinar on building modern business apps with AWS Serverless technologies.
Read the second part of this article series:
Are Serverless technologies a good fit for your organization?
Nuts and bolts of Serverless technologies – part I | R Systems