The whole cow or just the hamburger?
As cloud computing continues to evolve we’re starting to hear a lot more about Serverless Computing.
Serverless Computing is not a great name as “serverless” implies that there is no actual server running in the background, 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?
Well, 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 to be built you had to install it on a server, which would be a physical piece of hardware that you would host in a data center or perhaps in the corner of your office, where it was also used as a coffee table.
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 to 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 these virtual servers is that they can be created on demand, you are only charged when they are up and running and you can create or terminate them whenever you want. In other words you never have to worry about capacity management ever again.
So to recap, the progression has been physical server -> virtual server -> cloud server. So if you’ve moved all your infrastructure to cloud based virtual servers, then you’re all set, right?
Cloud technology is advancing at an ever increasing pace and the next step is, yep you’ve guessed it, Serverless Computing.
Imagine that you have a server that runs some code on a periodic basis, for example your 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 would have purchased a server, or created a virtual server, that would be idle for most of day and only used for a period of time overnight. In other words you have an expensive asset that is doing nothing other than costing you money to run, maintain and host. I saw countless examples of this during my time working for investment banks.
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 penny for it. However, you still have to maintain the server and make sure it is available when you need it.
But what if there was no server?
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 the definition of Serverless Computing. 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”.
All the cloud providers have launched, or are in the process of launching, their own version of this concept and at present AWS seems to be leading the pack with their Lambda product.
But that doesn’t mean that we can kiss goodbye to the good old server quite yet. Obviously services that need to be available all the time will require a server to run on, for example databases. And at present AWS Lambda only lets you run Java, Node.js and Python.
However, Serverless Computing is definitely the direction that IT infrastructure is headed and this blog is just a very high level overview of the concept. The use cases are practically limitless and for an idea of what companies are already doing you can check out some of the AWS case studies here.
So next time you need to provision some new IT equipment, ask yourself do you need the whole cow or just the hamburger?
To streamline your migration to AWS, just email me at firstname.lastname@example.org.