From making tiny app-specific developments, to identifying and solving problems, to building and deploying whole applications, you can do a lot with serverless technology.
But what is serverless computing? How does it work? What are the benefits of using this technology? What are the drawbacks? And how can you get your head around this complex topic?
The following article aims to answer all of these questions in a clear, digestible way — through analogies. And by the end will give the term ‘serverless’ meaning.
Let’s start by answering the main question.
What is Serverless Computing?
Well, it’s a bit of a misnomer because there is no such thing as a ‘serverless’ website.
The difference between traditional and serverless architecture is that traditional architecture requires you to have a physical server. Serverless cloud platforms, on the other hand, remove the need to have a traditional server by ‘renting’ one from a vendor.
So, while it’s not a completely serverless framework — you, as a web developer, are server-less.
Serverless can be split into two, however. Cloud service providers (like Amazon Web Service, Microsoft Azure, and Google cloud) ‘rent’ you chunks of memory for a price. This is a huge plus for many enterprises; it removes the cost and hassle of physical servers. This is known as Platform as a Service (PaaS), the ‘platform’ being the server space.
But it means there is a lot of wasted space. Because in order to have enough of a margin to allow for spikes in the usage of your web application, you have to rent large amounts of space all the time.
Let’s say you have a website that attracts a steady stream of users. But, on Saturdays you get 4x increases in traffic — you’d have to pay for enough RAM to handle the Saturday peak, for the whole week.
Enter Function as a Service, the next evolution of serverless computing, which this article is delving into.
FaaS allows you to still rent space from dedicated servers, but it scales to what you need, and you only pay for the functions you perform.
It’s the same big players, but instead of Amazon web service’s EC2 you have Amazon web service’s Lambda, for example.
There are benefits and drawbacks to both. It’s a deep and complex topic that can cover you in a veil of confusion.
So, the following section hopes to give you a simple analogical look at the concepts of FaaS serverless computing. Most are good. Some are bad. But all are worth understanding as you take your first steps to serverless computing.
Ways FaaS Serverless Computing Will Simplify…
I’ll go out on a limb and say you have a cellular phone contract.
And almost certainly you pay X dollars for X gigabytes of data per month. Or something along those lines.
I will also guess that, in an average month, you don’t use the limit of your data, right? Otherwise you’d go over your data limit pretty often.
So, you buy more than you need, otherwise you run out of data, pay a premium, or have to buy another data pack. However your phone provider works, you get charged more for exceeding your contract.
You do it this way because it’s cheaper to buy more speed than you need than it is to pay per Mb.
But what if it wasn’t? What if it was comparable? Or, even better, a truck-load cheaper?
That is essentially what FaaS serverless computing has to offer. By selling Functions as a Service (FaaS), companies can charge web developers for only the functions their web application performs. It is an evolution from cloud computing that offers Infrastructure as a Service (IaaS) and Platform as a Service (PaaS).
But it raises the question — Can this framework save the client money?
Will this framework save the client money?
Well, it depends.
There is a lot to consider when deciding whether to buy ‘data packs’ (like you would with cloud services like Amazon’s EC2) or serverless pay-as-you-go computing services (like Amazon’s Lambda). And it’s very dependent on individual needs. An application that has high-performance computing on a long-term basis may not benefit from FaaS pay models, for example.
You’ll need to calculate your needs and find the right option for you.
There are plenty of online calculators that can help you with this.
Say you’re renting a new apartment. As a popular, social person you like to host parties. One or two a month, perhaps.
You can’t get a cosy, reasonably priced studio and have space for people to come over with somewhere to sit. So you rent a place with a spare room, a large kitchen, two balconies and an open-concept dining/living space. Plenty of space for your bi-monthly soirée.
But what about the rest of the time?
You’re stuck either paying a ton for space you don’t use, or having to scale down your apartment, and then having to rent a hall or something a couple of times a week. But even then, you don’t know how many people will turn up for the party you’ve worked hard to host!
While it’s nice to at least have options, wouldn’t it be better if your apartment grew with each guest automatically? You wouldn’t even feel the difference, apart from a slightly higher utility bill at the end of the month. And when the guests inevitably leave, the apartment contracts back, giving you the perfect amount of space for you and that one guest who won’t leave.
This is what AWS serverless services aim to achieve with web hosting, often opting to use the term “elasticity” rather than “scalability.” Function as a Service platforms like AWS Lambda and Google cloud services can scale from thousands to millions of users, and vice-versa, with minimal effort. You only pay for functions that were used.
A seamless experience that scales your resources to the capacity needed, in real-time. And while there are some limitations, it’s near unnoticeable, meaning the developer has one less thing to worry about. Which is nice.
Microservices perform one service each which, as a whole, make up an application. In this way, we can compare web applications to works of art. A microservice architecture would be like a mosaic made of many different pieces. A monolith architecture, meanwhile, can be thought of like a painting on one large canvas.
If a tile in a mosaic breaks, it can be removed and replaced with relative ease. Not so much if you damage a canvas. You can patch things up, but too much damage and eventually you’ll have to think about repainting the whole thing.
Function as a Service (FaaS) allows you to deal with every serverless function separately. Meaning you eliminate the costly and inefficient processes that go along with solving a problem in a monolithic structure.
Development, Deployment, and Maintenance
We all enjoy binge-watching YouTube or Netflix. Although, if we had to wait 2-3 minutes for a 10-minute video to load each time, perhaps we wouldn’t give it so much of our attention. So, it’s a good thing that doesn’t happen (isn’t it?).
The reason you don’t have to wait as long as it would take your show to download is because these video platforms give you only what you need, when you need it.
You watch your movie in real-time, and it starts near instantly after you press the play button. There is no wasting time and energy by downloading an entire movie that you may not even watch all the way through.
Serverless also speeds up deployment functions by avoiding the long and complex processes that go along with building large application stacks.
By only using the functions you require, you can release a project a lot sooner than if you had to build infrastructure to account for multiple situations and varying demand.
The playing of the movie is left to Netflix, no need to rewind the tape to rewatch something. The video service provider deals with all the backend processes.
With serverless computing, operational time and costs are saved because it is all done by the vendor, from application development to deployment to maintenance.
There are those who argue that the in and outs of serverless architecture are not the point and all it boils down to is the why. They have a point.
Imagine going to a restaurant and your server, who made you feel welcomed, shared a couple of jokes with you, took your order promptly and with a pleasant charm, suddenly disappeared, leaving you confused and serverless.
Later you find out that they had to go to the kitchen to cook the food, clean the dishes, and literally put out fires.
It wouldn’t make much sense.
It also wouldn’t leave you feeling like that restaurant was running smoothly, nor would you return.
Restaurants have a kitchen for many reasons, but the main one is that they can have a team dedicated to user experience and a team to provide the best backend support. Backend meaning the functions and processes that the end-user of a web app doesn’t see (unless it’s an open kitchen… but you get the idea).
Serverless applications allow the developer’s focus to be moved away from the operations and toward creating value for the user.
What’s more, not everyone who wants to offer a service or product will have the know-how to build the underlying infrastructure to support their vision. So, why not outsource that to a serverless provider who has the equipment and knowledge to make your job that much easier and effective.
Companies who think less about the ‘how to go serverless?’ and more about the ‘why should we go serverless and what benefit will it bring my clientele?’ are the ones who will see the most success.
Bonus: Going Green
Imagine a world for our children that is clean, green, and supreme. Crystal waters flow through our rivers, clear crisp air fills our lungs (even in the city), the planet has a zero carbon footprint, and there is an abundance of clean, sustainable energy.
Not really an analogy, more of a future we’d all like to see.
Creating a serverless environment is a way to help achieve this. The reasons are pretty obvious. Less wasted storage means less wasted energy.
Dedicated serverless and cloud vendors can hone the most energy-efficient practices, and it’s in their best interest to do so.
It is in everyone’s best interest to at least consider FaaS serverless versions of their favorite cloud computing services.
3 Ways It Won’t Simplify…
If you hadn’t noticed by now, serverless computing is a wonderful step forward for both frontend and backend processes. It is paving the way toward a simplified, more valuable, internet.
But it’s not perfect, not for everyone, nor everything. You need to look at both sides of the coin to know its true worth.
Let me show you, through analogy, some of the drawbacks of this pioneering new platform.
It’s safe to say we’ve all been stuck in traffic at some point, with many people trying to get to the same destination at the same time.
But imagine that all of the other cars were in fact driverless, AI-controlled vehicles sent with malicious intent to jam the streets. By design, these robotic cars stopped honest, real people like yourself from reaching your goals!
This is a very simple picture of how Distributed Denial of Service (DDoS) attacks work. Attackers take control of online machines and create a network of bots (or ‘zombies’), they then use these ‘zombies’ to flood their victim’s web app with traffic.
The reasons and specific methods are complex and many. And the big players of serverless computing are fighting this battle every day, coming up with new and innovative ways to keep their clients safe.
But with it being difficult to distinguish between what traffic is real and not, you could be susceptible to having your bandwidth flooded with malicious traffic. This could cost you a lot of money for the countless functions these bots are performing, and lose you value from genuine customers who have been denied access to your application.
Almost everything online is at risk from the bad eggs of the internet, but with FaaS serverless computing being new on the scene and making for an attractive target, this risk factor is worth familiarizing yourself with.
But don’t fret too much. Like I said, we’ve got the mightiest tech companies that ever existed working tirelessly to keep you safe from serverless computing security issues.
Many of us have a cleaner. Perhaps not for the home but most likely the workplace. It’s great. This wonderful person comes in once or twice a week and makes the place look and smell wonderful.
They certainly do a better job than you and twice as fast, leaving you the time to focus on whatever it is you do.
But wait a second, where is your water flask? Who unplugged your phone charger? Why is the coffee on the top shelf? And who threw away the old pizza you were saving for lunch?
In exchange for someone taking a job off your mind, you lose a level of control. It’s inevitable but it’s worth noting.
By allowing a third party service like AWS serverless services to take charge of all backend processes, it means you are at their mercy. Mistakes on their end will only leave you to pay the price (maybe they’ll lose your custom, but the damage is done by then).
There needs to be a level of trust in the serverless computing platform. So be sure to look at how they are going to manage their resources and prevent problems.
There’s a reason you warm up before playing sports. You use your muscles lightly to ‘wake them up.’ So when you call upon them, when you really need them, they respond quickly.
Be it kicking a ball, throwing a frisbee, or doing a backflip, if the muscles aren’t warmed up they won’t perform fast enough, preventing optimum performance, or worse, causing injury.
This works the same for function execution. If one isn’t used for some time (this varies but an AWS Lambda function has an ‘Idle time’ of 30-45 minutes) then it takes time for the function to ‘warm-up.’ This can be anything from a few hundred milliseconds’ to several seconds’ delay. In today’s ‘I-need-it-now’ culture, delays like this can be severely damaging.
There are methods of controlling this so that it doesn’t become a problem. But it certainly doesn’t simplify things as many of serverless computing’s perks.
The Future of FaaS Serverless Computing
Unless a technology comes along to render serverless computing obsolete, we could see FaaS become the standard for a huge number of enterprises.
But not all of them.
At least, with its current limitations, serverless may not be the path best walked. As we’ve seen there are loads of factors to consider when running a serverless web app.
Serverless infrastructure is still relatively young and even the most established companies are working out the kinks. But there is no doubt that FaaS has had a huge impact on how the internet is evolving and will only continue to grow.
For now, though, it may not be the only choice, and each person endeavoring to make their mark on the world wide web should analyze their needs and critically think about which route to take.
But that’s advice you should be using for everything, really.
Check out my sources list for some of the best cloud computing resources.
Q: How does serverless computing work?
A: Serverless computing isn’t serverless at all. It works by renting server space to the user through the cloud. This means there is no need for a physical server for every web application. There are plenty of serverless examples. And which you choose is dependent on your specific requirements. Whether it’s serverless computing vs containers, Kubernetes vs Azure, there are a lot of companies and services to research.
Q: What is AWS serverless computing?
A: AWS stands for Amazon Web Service. And right now, they are arguably leading the way with serverless computing services. The AWS Lambda serverless platform is one of the most-used FaaS providers around. And AWS EC2 is still going strong as an IaaS provider. When it comes to EC2 vs Lambda, it really depends on what you’re looking for. And if neither does the trick, Amazon even offers the AWS Serverless Application Model (SAM), which is an open-source framework for building whatever serverless application you want.
Q: Who invented serverless computing?
However, it could be that it was Google who provoked the rise of serverless with their Google app engine in 2008.
Serverless is the natural evolution of web app development and has grown from many great minds and companies. Therefore it is hard to pinpoint any one person or company who had that ‘eureka’ moment.
Q: What are the benefits of serverless computing?
You can read this full article, plus many other resources, to find out the extensive pros and cons of going serverless. But in a nutshell, serverless computing doesn’t require the developer to purchase, run, or maintain any physical server. They do this by renting server space from a third party. Meaning their focus (and money) can go into the user’s end experience.