Have you heard of serverless computing? Guess what, it’s not serverless at all. It simply automates the allocation of back-end servers that you will need to complete a particular task. Today we have dozens of types of serverless systems, from databases to containers to more traditional development systems. They all have the same promise: to provide automatic vertical and horizontal scaling without having to configure servers in advance.
This means that developers do not have to guess how many compute and storage servers to launch before applications run. Serverless systems make those decisions for you, allocating the resources you need at run time and deallocating them when you no longer need them.
Automation is really the key value. We don’t have to try to figure out how many resources we will need. Choosing too many resources (most of which we forget to shut down) leads to a huge cloud bill at the end of the month. If you choose too few resources, we see our applications crashing shortly after launch.
Personally, I left the resources running and have always been bothered by the fact that cloud providers forced me, as a human being, to choose the resources I needed. It is not about whether you will be wrong, but how wrong you will be.
Therefore, I like serverless technology as a concept. Unless a customer has a good handle on the resources that will be needed, it is a safer bet to go for brand-new cloud-native applications than to guess at the required capacity. In addition, it has the ability to grow and change capacity continuously. There is the value of serverless there, in my opinion.
The counterargument is that serverless is more expensive than resources that self-allocate before runtime. Of course. However, this assumes that you will correctly choose an optimal setting that starts and stops at the correct time and in the correct sequence. Some can do it, but most can’t.
Additionally, there are several downsides to serverless technology that most don’t understand until they use it. It is “cloud native” or specific to a single public cloud provider, which means that easy portability is not a feature of serverless technology in any public cloud provider. There are few, if any, management and monitoring tools for native serverless systems beyond those provided by the public cloud provider that sells it.
Serverless is one of those technologies that clearly has trade-offs, but with its maturation over the last seven years, we’re seeing a clear path of value to serverless for many brand-new cloud-native workloads. That said, it also depends heavily on what you’re building and for what purpose, as you’re trading portability for automating resource allocation and have less to worry about.
In many of the uses I’m looking at, serverless technology makes sense. But it is still case by case.
Copyright © 2021 IDG Communications, Inc.