Cloud Broke Its Promise, but Serverless Delivered

Ten years ago, the cloud promised no maintenance, high salability, and pay only what you use. With serverless, this has become a reality. Friday, February 15, 2019

Cloud started gaining attraction about 10 years ago. In 2008, Microsoft, one of the major players, introduced its service, Azure, which became available in 2010. Cloud hype turned into reality. It is funny to look back at those early days. For the purpose of this blog, I looked for some old introduction videos about the cloud. Looking back, now that serverless is slowly becoming the mayor player, I found the following video from 2009 absolutely hilarious.

Short transcript:

...what if there was a different way, what if there was something that would take care of all those other things for us, all the operating systems, the networking, the storage, the scale, and let us worry about that one thing we cared about, our application. Well, with something like that we could build our application faster and we could keep our users happy, this is the idea behind.

...means that you pay for it only when you use it, when you turn on the electricity you start paying and as soon as you turn it off you stop. If we apply that same notion to the computing resources in our data centers, we arrive at the Windows Azure model, the utility model where you pay for only what you need only when you use it. With that model, you can stop worrying about where your peak is, you can stop paying for things upfront, and you can save a lot of money.

Isn't this like the introduction to serverless? Back then, it was pure bullshit made by PR. Cloud providers promised to resolve all the problems you had. You would only have to deal with your application and not with infrastructure. But it was mostly empty promises. Instead of managing infrastructure on your premises, you started to manage infrastructure on the cloud. If you wanted to only pay for what you used, you had to deal with infrastructure to automate provisioning to scale up and down as much as you wanted. And what about costs? Did it really lower them down so significantly?

Cloud broke its promise, but serverless delivered

With serverless, the promises they made 10 years ago finally became reality. Serverless does not resolve all the problems, but it is the beginning of a revolution in which we will finally not have to take care of infrastructure and mostly only care about making our application.

What is Serverless?

Serverless means:

  • No servers or containers to manage
  • Autoscale
  • Pay only for what you use
  • High availability and secure

Serverless solutions mainly consist of:

  • Function as a service (FaaS) In the case of Amazon Web Services (AWS), this is called Lambda. It's just a function written in one of the supported languages: Node.js (JavaScript), Python, Java, C# (.NET Core), Go, Ruby... You write a function and upload it or you write it in an online console. A cloud provider runs it as many times and on as many instances it needs it. And you do not care how it does it.
  • Backend as a Service (BaaS) Many services that you can use to store data, push notifications, queue tasks, authenticate... The main concept is that you do not manage those services and pay by usage.

Lowering Costs

Because you (mostly) do not manage either FaaS and BaaS, your cost for operations reduce significantly. However, operations do not disappear completely as you still need to test, deploy, log, and monitor your code. The operations team has the opportunity to refocus on higher value tasks. With serverless, it is possible for a single person to build and deploy a service in a very short time (hours, days) that can be used by millions of users.

The lowering of operational costs is only a part of lowering costs. Only paying for what you use is another major factor for cutting costs. On-premise datacenter servers are only 15% to 30% utilized. There are some known cases of huge (70–90%) savings with serverless solutions. According to a survey, companies with serverless reduced their AWS monthly bill by 26%. Plus, they increased the delivery speed by 77%.

Serverless = 70–90% savings

You can calculate savings for your scenario here and here. But do not forget the hidden costs so your calculation can be as accurate as possible.

Becoming More Agile

By lowering your operations, you can concentrate on things that bring you money — your company becomes more agile and can easily adapt to changes. This is a major benefit nowadays with an ever-changing environment.

Serverless - your company becomes more agile and can easily adapt to changes

AutoScaling Works Both Ways

When we talk about autoscaling, we mostly talk about how it scales to support millions and millions of users. But it goes the other way too. If you have a small application build for one or a few customers, you only pay as much as the app is used. In most cases, you do not pay anything at all. Most services have a free tier available. For Lambda, it is 1 million requests per month. You can fit quite a large application in that free tier.

Not Convinced?

Still not convinced? Look at this long discussion: Have you shipped anything serious with a "serverless" architecture? You will find of lot of real-life cases where serverless proved its value. There are some considerations and some cases where serverless does not fit, but most people are extremely positive about it.

Here is a list of articles from across the web written by organizations who built their production workloads with real users on a serverless AWS architecture. The articles describe the problems they hit along the way, the solutions they arrived at, and an overall summary of the impact on their organization.

More?

Need more reading? I recommend The Business Case For Serverless and Serverless on AWS is a Game Changer.