SERVERLESS COMPUTING – THE WHOLE COW OR THE HAMBURGER

Cloud computing is continually evolving. One of the trends that has evolved recently is that of Serverless Computing.

The term Serverless Computing implies that there are no servers involved, which is not the case. Another way of describing it would be Function-as-a-Service or FaaS, which is still vague and confusing.

So what is Serverless Computing?

To truly understand we need to start at the beginning and go back a few decades. Back in the day if you needed a new application you would install it on a server, which at the time meant a physical piece of hardware that you would host in a data center or perhaps in the corner of your office.

Then came the concept of virtual servers. Virtualization allows you to divide up the CPU and memory of a server and run multiple “virtual” operating systems that give the impression that you have lots of individual servers at your disposal. The virtual servers can be easily changed as required so you aren’t limited or stuck with a specific server type.

The arrival of cloud computing extended this idea further. Cloud providers host the virtual servers for you and allow you to connect to them over the Internet. The best thing about cloud virtual servers is that they can be created on demand and you are only charged when they are up and running. You can terminate them at any time and stop paying for them. In other words you never have to worry about capacity management ever again.

Containerization takes the concept of virtual servers another step further, but for people that really don’t want to manage any infrastructure, the next leap is Serverless Computing.

Imagine that you have a server that runs some code on a periodic basis, for example, daily business reports that run via a Java script. It might be that this server is only used for a few hours overnight to crunch the numbers and generate reports ready for the next business day.

Traditionally, you run this process on a server, virtual or otherwsie, that would sit idle for most of day and would only be truly utilized for a period of time overnight. In other words you have an expensive asset that for the most part is doing nothing other than costing you money to run, maintain and host.

Cloud computing dramatically improves the situation, as you can shut down the server when it’s not needed and you won’t have to pay a cent for it. However, you still have to maintain the server and make sure it is available when you need it.

But what if there were no servers to manage?

What if you could take the code that runs your business reports, upload it to a service that manages its execution on your behalf and you only have to pay for the actual time that it takes to complete?

It almost sounds too good to be true, but that is basically what Serverless Computing offers. It allows you to run your code without requiring you to provision or manage servers.

Or as Tim Wagner, manager of AWS Serverless Compute, put it:

“You pay for the hamburger not the cow”

The AWS service that provides this feature is called Lambda, howeve all the major cloud providers have launched their own version of this concept.

However, that doesn’t mean that we can kiss goodbye to servers quite yet. Some services will always need to be available all the time and they will require a server of some sort, for example databases.

Serverless Computing is the direction that IT infrastructure is headed and has matured a lot in recent years. So next time you need to provision some new IT equipment, ask yourself do you need the whole cow or just the hamburger?