What is serverless?
Every once in a while, a new buzzword pops up. Often it fades away shortly after or remains relevant in a few distinct circles. Sometimes though it becomes a fundamental concept and an integral part of our technical lexicon — a prism through which many of the old and new ideas will be observed. Serverless, of course, belongs to the latter.
Many introductory and explanatory texts were written about this topic and most of them are fairly technical as they look at Serverless purely as new technology. That is not incorrect, of course. But Serverless is also, and maybe, first of all, a product and a solution.
Since it becomes a widely used term, I would like to suggest another way to describe it, which embraces the business point of view. I hope this will be accessible to a wider audience by explaining what problem does Serverless solve and how does it solve it? Here we go…
Imagine that you’re running a fast-food stand in a mall. As a fast-food service, fast service is your highest priority. That comes down to two things:
- The customer never waits for service — the moment they approach the stand, someone is taking their order.
- Once placed, it takes a very short time to get the order ready and send the customer away.
To achieve this goal, you must have enough workers, and they should be fast, at least fast enough to get those orders ready in a timely fashion. Hence your problem: how many and how skilled workers should you hire?
The naive and not wise solution is to hire dozens of very skilled (and therefore expensive) workers. Most of them, most of the time, will have nothing to do — they will just wait. That way you can be sure that no customer will ever queue and they all get their orders ready as fast as possible. So your customers will be happy, but you will not. Your salary costs will make your business extremely unprofitable.
Therefore you would want to balance your workforce with the business needs, you want to have just the right amount of employees and the right kind. In other words, what you will try to do is to:
- Minimize the time in which the workers are waiting and not serving. They are on the clock, they should be on their feet.
- Optimize the skills of your workers — they should work as fast as needed and not as fast as possible. Faster worker costs more.
Your problem is often even more complicated:
- The customers are not distributed evenly throughout the day — there are busy hours and slow hours.
- The number of customers is not predictable. There could be a bus of tourists, surprisingly parked outside the mall with dozens of customers looking for food.
- Unplanned problems can always occur which degrades the speed of your workers.
Managing all of this by yourself is quite a pain. You need to create schedules, find the right employees, replace employees, try to predict the customers’ patterns, etc. Most people I know will have to hire people to do just that, and that means more people on the payroll and more costs. Besides, you will always want to have more employees than you need at any point in time, just to be on the safe side for any surprises that might come your way.
But what if I told you that there is a magical place in the mall which has an infinite number of workers of all types. This place knows how to adjust the right number of workers to suit exactly the needs of your food-stand.
When customers are starting to queue, you immediately get more employees. If the current ones are too slow, they are instantly replaced with faster ones. When the peak is over, and your workers are doing nothing, they clock out. If you do not need the fast ones anymore, they are replaced with the cheaper ones to save you from overpaying.
This magical place is, at least as I see it, Serverless computing. It tries to solve the complicated problem of optimizing resources and handling various and changing volumes. It is created to help us save money and provide our users with a better service.
I used the adjective “magical” because it is quite complicated. Most people will agree with me when I say that we are still today pretty far from there (at least from the ideal solution described above). But I do hope, that at least now, it is clear where we want to go with it.