DEV Community

Cover image for Is Serverless really as cheap as everyone claims?

Is Serverless really as cheap as everyone claims?

Burke Holland on September 16, 2019

This article is part of #ServerlessSeptember. You'll find other helpful articles, detailed tutorials, and videos in this all-things-Serverless cont...
Collapse
 
kendru profile image
Andrew Meredith

I had one project that I moved to Google Cloud Functions, and I now pay nothing to run it most months... I also have another project that I worked on that started on Cloud Functions and later moved to a Kubernetes cluster because it was $10k less per month. It was all a matter of scale.

Collapse
 
burkeholland profile image
Burke Holland

Perfect example of "right tool right job". I love it.

Collapse
 
mistahcummings profile image
Chris Cummings

Wow. I am blown away. This sounds much more appealing than a home rolled simple kubernetes config running on a manged kubernetes cluster. Don't get me wrong managed kubernetes is incredible but I would love to bail on the complexity where I can.

Collapse
 
burkeholland profile image
Burke Holland

Totally agree. I think that at some point the complexity is necessary because of the direct correlation with flexibility.

Collapse
 
tehmas profile image
Asad Raheem

Thanks for such a detailed article.

  • On the consumption plan, we also need to take account of the cold start. Is that time also included in the execution time? Doesn't it hinder the experience of the user?
  • Can we adopt a multi/poly cloud strategy when it comes to serverless?
Collapse
 
burkeholland profile image
Burke Holland
  • No. Azure Functions does not charge for startup time.
  • Funny you should ask this. I do happen to know of something coming quite soon that does exactly this. I've pinged those folks. Perhaps they'll drop in here and give us some news.
Collapse
 
tehmas profile image
Asad Raheem • Edited

Excited about the upcoming thing. Thanks for pinging them.

It would be super awesome if you can do a similar article on Azure Serverless Databases in the future. Dynamic scaling while being charged only when databases are being used seems to be really interesting.

Collapse
 
allanjeremy profile image
Allan N Jeremy • Edited

The personality that went into this!! Couldn't stop reading

You turn it on when you need it and off when you don't. Unless you're my kids.

😂 this cracked me up

Loved it!
Quick question, from a learning curve standpoint, how do you think it would be like migrating from GCP? Also, from a totally naïve point of view, what would be the best azure learning resources in your opinion

PS. You should definitely make videos on these

If you've got a channel by all means shoot. You've got a new sub

Collapse
 
burkeholland profile image
Burke Holland • Edited

Hey! This is great feedback!

My colleague @jeremy Likness did some videos on coming from AWS. Could you take a look and let us know if this pattern/format would be good for GCP? I think we can make that happen.

blog.jeremylikness.com/blog/moving...

Collapse
 
allanjeremy profile image
Allan N Jeremy

Hey Burke!

I have checked it out and it definitely is a format that would do.

Even better would be the same format with direct or close to direct translations of "this is how you do it in gcp" vis a vis "this is how it works in azure)

Similarly to how @jeremy did it, having multiple sections on the various technologies would be great. For example "cloud functions" to "azure equivalent", "app engine" to "azure equivalent"

In that sense, that approach is perfect for people looking to migrate

I just joined a company planning on using azure and would definitely appreciate such a resource

Cheers!

Collapse
 
alexjpawlak profile image
Alex Pawlak

For my little functions, Storage costs and files for consumption plan were the most expensive. Each time a function starts it does an intensive read on file share, causing charge as there is no free tier in storage accounts unfortunately.

Collapse
 
mikhailshilkov profile image
Mikhail Shilkov • Edited

2,628,000 * .100 is 262,800, not 26k, you lost a zero here.
As a rule of thumb, pay-per-GBs is always more expensive than per-per-executions.
By the way, "gigabyte-per-second" doesn't sound correct to me. It's gigabytes multiplied by seconds, the same as the energy consumption is kW*h.

Collapse
 
burkeholland profile image
Burke Holland

Good catch on both fronts!

It's not "Gigabytes per second", it's "Gigabyte seconds".

I'll update the post.

Collapse
 
shaijut profile image
Shaiju T

Nice 😄, In Paas like App Service, no mater your app is used or not you have to pay for hosting. But In Server less the hosting is free and we pay only for consuming the Azure functions. So how can cloud providers provide free hosting for server less ? What they will do if all businesses go server less ? Then How can they make profit ?

Collapse
 
kamalhm profile image
Kamal

I see, so serverless to start, serverfull (if that's a term) at large

Collapse
 
jkhaui profile image
Jordy Lee

Serverful when you reach Facebook-scale

Collapse
 
planetadventure profile image
planetadventure • Edited

That statement translates to "Probably never" !! how many platforms (of any kind) exist that have billions of users? half a dozen, if that? followed by some in the hundreds of millions followed by many more in the hundreds of thousands (which is a happy place to be for a startup) - if a platform reaches the heights of likes of fb and others, lets be honest, building their own cloud platform is going to be the least of their worries.

Thread Thread
 
Sloan, the sloth mascot
Comment deleted
 
planetadventure profile image
planetadventure

It sounds like an example of an overprovisioned solution, but what do I care? it's your company's money, not mine.

Collapse
 
guyinpv profile image
Zack

I understand the idea about functions being called, but those functions have to be called from somewhere, like the frontend of whatever the app is? Where is THAT hosted? If you have a frontend app, handling a million people a month, and the app mostly makes use of the functions, well you still need the app hosted somewhere that can handle a million hits a month right? Or am I missing something?
Can the entire app, frontend, routing, logic, database, basically the entire architecture of the app, ALL be serverless functions?

Collapse
 
james231 profile image
James231

More modern architectures tend to have a static frontend app which interacts with the API (see JAMStack architecture). The static site is just files (html, css, js) file that need to be served with no computation. For this you can use static hosting services, which are actually very cheap. For example, GitHub Pages will host your static frontends for free handling millions of hits a month (similarily GitLab Pages, and Netlify).

(I know it's been a while since the question was asked, but hopefully someone will find this useful)

Collapse
 
chris_bertrand profile image
Chris Bertrand

Great article, especially love the figure calculations! It is indeed a great technology when used for the right reasons.

Collapse
 
burkeholland profile image
Burke Holland

Crunching Facebook's numbers is fun. I would like to see their actual monthly operating run rate. 😲

Collapse
 
cescquintero profile image
Francisco Quintero 🇨🇴

Ready for it? $486,777.40. Don't forget the forty cents.

xDDD

Collapse
 
pchinery profile image
Philip

I completely agree regarding the scale, with one addendum: there is a second range, where you outgrow a dedicated server. You either have to deal with the new complexity of load-balancing and making the application ready to be distributed, or go with a serverless system again, which largely cuts down on costs for operation now (covering failover scenarios, even outside business hours etc.).

Collapse
 
burkeholland profile image
Burke Holland

This is a fascinating perspective. So you can outgrow Serverless, but then outgrow a dedicated server and come back to Serverless? I never even considered this. I suppose the distributed needs are the driver from coming back from dedicated?

Thread Thread
 
alexjpawlak profile image
Alex Pawlak

Isn't that more about booking a reserved, dedicated capacity and scale out when and if needed?

Collapse
 
pavelloz profile image
Paweł Kowalski

The key thing that often people miss when talking about cost of serverless is the use case. Sometimes its just not the right tool for the job. In those cases, usually, its just more expensive than running a server. Just like in your example with FB.

Collapse
 
lepinekong profile image
lepinekong • Edited

What prevent me to use it is you cannot cap the cost, there are so many horrors stories on that :)

Collapse
 
burkeholland profile image
Burke Holland

You can cap your spending - at least in Azure...

docs.microsoft.com/azure/billing/b...

Now that does take your resources offline when you hit your spending cap. The other option is to use something like the Dedicated Plan, which gives you a dedicated VM.

Collapse
 
lepinekong profile image
lepinekong • Edited

"The spending limit is $0 and it can’t be changed." ??? then it's useless.

I don't need to go to azure for a VM there are plentifull out there ;)

Thread Thread
 
devingoble profile image
Devin Goble

The benefit of the Dedicated Plan is that it allows you to pay for dedicated VMs, but still make use of the Functions development model. So, it's not just a VM that you can get from anywhere, it's a fixed cost Function execution environment.

docs.microsoft.com/en-us/azure/app...

Thread Thread
 
lepinekong profile image
lepinekong

ah ok thanks.

Collapse
 
simbo1905 profile image
Simon Massey • Edited

Thanks for this particularly the Facebook scale calc. I do think it's a bit odd though to emphasize that your friend paying zero and then play down that he gets billed $30. There are services where the bandwidth is free. For example the fully managed kubernetes hosting we use charges $25 a gig then limits the cpu but the bandwidth as free. It requires that we sign up for 2G minimum so that's a minimum of $50 per month but there are no hidden costs, no propriety technologies, and no lock in and it's portable to all the clouds.

Also if the service you are talking wasn't second in the market and in a price war with a competitor would it have such a large discount? How many millions is your company paying to host so many apps that don't make it past a million hits? Can you post a link to a commitment that the first free million will be free forever? If not can you provide an estimate of how much cost it would be for your friend to rewrite their app onto a competitors serverless offering?

Collapse
 
burkeholland profile image
Burke Holland • Edited

I'm not familiar with pricing for all providers everywhere. Some do give away hosting and bandwidth free, but rest assured they are paying for it somewhere - usually they are absorbing it to attract developers. Bandwidth is an unavoidable charge in the cloud.

Here's some comparisons...

Collapse
 
kartikanand_45 profile image
Kartik Anand

This is a great article on Serverless as I am very big fan of this architecture.

You have not factored that the costs are per subscription. If you are running more than 100 function in the same subscription, you will use 100 times more resource so you will end up paying depending upon usage.

Collapse
 
maxkatz profile image
Max Katz

Hey Burke - interesting article, thanks for posting! I think in addition to serverless function cost, you also have to take into account database access/storage. Your function will most likely access other resources such as a data store and other APIs. Agree that for small to medium scale applications - serverless can be a good fit.

Collapse
 
techbos profile image
TechBos😎

you have a 3 second attention span and LET'S GO PLAY MINECRAFT!

Hahaha omg so true!

Collapse
 
cavernhead profile image
Cavernhead

I'm not sure how much my app is going to cost me but all i want to do is make sure that if the costs go over a certain amount my app just stops working and I stop getting charged this feels like a simple functionality that should be basic but I don't really understand how to get this to happen with the azure serverless functions. When your making a free app that will be available for the general public you never know if someone is going to manage to make millions of accounts and have them using your functions a crazy amount of times leaving you with a bill of a few millions, you might of expected to pay 40 cents and end with 50 millions$ bill.
Seems logic to be shielded against this.

Collapse
 
rajivrparikh profile image
Rajiv Parikh

great insight regarding Serverless. thanks for sharing

Collapse
 
gaz082 profile image
Gabriel

This article is great to understand how serverless pricing works. Thanks!