#discussIs无服务器真的像所有人一样便宜吗?

本文是#ServerlessSeptember的一部分。您将在此无事物内容中心化找到其他有用的文章,详细教程和视频。 9月份社区成员和云倡导者每天都会发布新文章 – 这是正确的。有关Microsoft Azure如何启用无服务器功能的更多信息,请访问https://docs.microsoft.com/azure/azure-functions/。

总结:除非你在大规模运营,否则无服务器不仅便宜,而且是一种偷窃。你今天应该开始吧。

人们经常使用无服务器的最令人信服的原因之一是成本。

在无服务器应用程序中,您只需在应用程序运行时付费。哪个听起来很棒为什么要支付一个应用程序,如果你可以在忙碌的时候只需付费就可以随时支付?

我的意思是,你不要把水留在家里。你需要它时打开它,而不需要时打开它。除非你是我的孩子。然后你洗手,让水流动,因为你有3秒钟的注意力,让我们玩去玩MINECRAFT

无服务器听起来像是偷窃。就像在达成交易之前,有人意识到正在发生的事情并改变规则。但是Serverless真的有多便宜?

我的意思是,来吧;什么是捕获。

分解Azure功能的成本

当你看看无服务器的成本时,它看起来很便宜。比如,任何人都能以任何方式赚取任何金钱 – 这种便宜。例如,Azure功能消费计划向您收取(每月)三件事:

  • 处决
  • 执行时间处理时间
  • 存储

执行很容易理解:你的函数执行了多少次?每百万次执行你需要支付20美分。哪个,哇。这似乎基本上是免费的。最重要的是,你每个月都会获得第一批免费执行。

从正确的角度来看,你的功能每天可以运行32,258次,这将花费你ZILCH。这是每分钟22次。如果你每天每秒执行一次功能,即2.628e + 6次 – 或2,628,000次。这不是40 CENTS。

但执行不是你被指控的唯一事情。您还需要支付执行时间。

执行时间在你的头脑中有点难以量化。它基本上是对函数在执行时使用的资源量以及使用它的时间长度的一种收费。这称为GB-s。或者,“每秒千兆字节”。

以下是它的工作原理:每当您的Function执行时,Azure都会使用向上舍入到最接近的128MB计算内存量。因此,如果您的Function仅使用25MB内存,则计为128.它还会计算它运行的时间,向上舍入到最接近的100毫秒。

因此,如果您有一个简单的“Hello World”无服务器功能,那么每次运行时它将计入128MB内存,或者.125千兆。为了获得执行成本,您需要执行总执行次数,并将其乘以执行函数所需的时间。对于“Hello World”,这将是100ms,因为这是它可能的最小量。

现在假设您每天都运行该功能。我们已经说过了2,628,000次。你取这个数字,然后用函数运行的毫秒数(100毫秒)将它加倍。

2,628,000 * .100 

这给了我们26,280。我们现在必须取这个数字并乘以它每次运行时使用的内存量,我们已经说过.125。

26,280 * .125 

这相当于3,285。好的,总执行时间是3,285 GB-s。这花了多少钱?

没有。因为你免费获得第一个400K GB-s。

好的。好。因此,所有这些执行都花了我们40美分,执行时间我们没有任何成本。这似乎是一个完全的双赢。谁将这种商业模式放在一起?

存储是代码耗尽的存储量。在幕后,Azure使用Azure存储帐户来放置您的代码,任何触发器逻辑以及您可能编写的任何队列。

如果你只存储你的代码,那基本上什么都没有。 Azure存储成本甚至没有开始,直到你达到第一个千兆字节。如果要在队列中存储大量和大量数据,它可能会开始上涨,但即使这样,您也需要使用大量数据。请记住,存储不是免费的,但它几乎是免费的。

在这种规模下,无服务器几乎付钱让我们使用它。但是当我们扩大规模时会发生什么?喜欢的方式?

Facebook规模

让我们假设我们正在处理Facebook大小的流量。这是一个难以确定的数字,但Facebook报告每秒发布510K评测,发布293K状态更新并上传136K张照片。这甚至不是所有的流量,但如果我们只采取这3件事,那就是每秒939K的执行次数。

这个月有多少次处决?

939,000 * 60 (seconds in a minute) * 60 (minutes in an hour) * 24 (hours in a day) * 30 (days in a month) 

这给了我们2.43389e12。我现在甚至不怎么说那个数字。每百万次执行20美分(第一百万免费)……

(2.43389e12 - 1,000,000 free executions ) / 1,000,000 ) * .20 cents per execution 

准备好了吗? $486,777.40。别忘了四十美分。

那只是执行成本。现在让我们添加执行时间。

为此,我们需要知道这些操作需要多长时间。发表评论可能需要不到一秒钟,但上传照片可能需要几秒钟。让我们只使用1秒作为所有939K执行的漂亮,圆形,任意数字。要弄清楚每月有多少次执行……

2.43389e12 * 1 

你可以在脑海中做到这一点。我几乎可以。

现在这些操作消耗了多少内存?这取决于在服务器上加载到内存中的代码量。这很难知道,但让我们只留下128MB。这似乎是一个很大的数字。我觉得你可以加载那么大的功能。

所以我们最后的等式是……

2.43389e12 * .125 

这给了我们3.04236e11 GB-s。我们免费获得第一个400K GB-s。之后它是0.000016 / GB-s。

(3.04236e11 - 400,000 free GB-s) * 0.000016 per GB-s 

这给了我们4,867,769.60美元的执行时间成本。所以总账单是……

486,777.40 execution cost + 4,867,769.60 execution time 

总计5,354,547美元。每月。每个月。我们甚至没有接近Facebook实际做的事情。

那么每月只有500多万?这就是全部?

不,那不是全部。

所有关于带宽

带宽费用适用于您在云端执行的所有操作。这包括无服务器功能。如果您有自己的数据中心,则需要为带宽付费。如果您在云中运行它,则需要为带宽付费。无论哪种方式,带宽。

带宽多少钱? Azure以滑动比例收取带宽费用。你使用的越多,它就越便宜。您获得前5 GB免费版。然后,对于5GB到10TB,每GB带宽需要8.7美分。然后在接下来的40 TB中继续下跌到8.3美分,直到你获得超过150 TB并且每GB下跌到5美分。

你认为Facebook使用了多少带宽?伊克。我认为我甚至不能做这个计算。我甚至不知道从哪里开始。但我可以打赌,这将超过每月530万的执行成本。

这就是Facebook拥有自己的数据中心的原因。在某些时候,你变得如此之大,以至于你成为自己的云才有意义。

但你可能不是自己的云,所以回到现实。我们仍然没有回答无服务器对于“典型”应用程序有多么昂贵的问题。我们这样做。

典型的无服务器成本

我的朋友和我在一段时间之前编写了一个应用程序,供一些人使用,但总的来说并不是一个使用频繁的应用程序。它每月要求大约20K的请求。

甚至没有看,我们知道我们执行的费用是免费的。我们无处接近百万大关。

这是过去30天的成本信息中心。

事实上,我们支付zilch来托管和执行此应用程序。没有。它是完全免费的。

我们带来的带宽费用。这是因为我们的无服务器应用程序是一个API,所以它从Azure发送数据。如果这是一个微服务,只是在Azure中的同一区域内移动数据,我们的带宽成本也将为零。这就是无服务器真的是一个惊人的交易。

真正的交易

那么无服务器过度炒作的成本是多少?

不,这是真实的。在达到相当大的规模之前,如果有的话,你将付出很少的代价。无服务器是在很长一段时间内出现的最卓越的技术之一。再加上自动无限扩展以及您甚至不再需要处理运行时的事实,这一点是不费脑子的。

  • 创建无服务器应用程序演练
  • 使用Azure Functions教程创建无服务器逻辑
  • 使用VS Code构建和部署Azure功能

资讯来源:由0x资讯编译自DEV,原文:https://dev.to/azure/is-serverless-really-as-cheap-as-everyone-claims-4i9n ,版权归作者所有,未经许可,不得转载
你可能还喜欢