服务
关于
CloudProse博客
无服务器

江苏体彩预置并发定价的隐藏成本

It'对于无服务器采用来说是一个巨大的飞跃,但与江苏体彩达成了一个小妥协's vision.
福雷斯特Brazeal Trek10 191210 171202
阿甘(Forrest Brazeal) | 2019年12月3日

当AWS 江苏体彩 宣布 他们昨天新的预配置并发功能 说过 这是“对江苏体彩愿景的一个小妥协,但对于无服务器采用而言是一个巨大的飞跃。”

我不是在开玩笑。冷启动始终是 #1投诉 在江苏体彩用户中,我很高兴与企业客户进行不同的对话,他们不一定会挥舞魔杖并重构其旧代码以实现无服务器的最佳性能。

但我也很重视妥协。让我们清楚一点:江苏体彩设置的并发性与传统的江苏体彩模型相距一步,因为它 不再按使用付费.

您支付 每小时收费 您的功能下方的预配置并发池中的每个“热备用”。无论您是否使用可用的计算,这都会向您收费。

严翠 彻底分解 预配置并发的细节,指出预配置实际上是 更便宜 如果您始终使用接近100%容量的预配置并发,则可以比按需江苏体彩调用多。但是请稍等。 江苏体彩的要点是大多数工作负载 不是 充分利用其计算能力。使用预配置的并发性使我们重新回到调整大小和容量规划的游戏中,这是我们首先选择无服务器时要避免的一大事情。

当您意识到这一切时,都会感到奇怪 未配置江苏体彩配置的并发计算。 AWS保证可以在您指定的限制范围内使用预热功能,但它们不保证该功能始终是相同的执行环境。就像所有江苏体彩函数一样,已配置的环境每隔几个小时就会回收一次以应用更新等。(顺便说一句,这是一件好事。这使您不必为下一个Spectre和Meltdown进行修补而烦恼。)

但这意味着预配功能不是有状态的;他们会并且将会丢失缓存状态。让我通过一个小的Python代码示例向您展示我的意思:

import json
count = 0
def lambda_handler(event, context):
    global count
    count += 1
    return {
        'statusCode': 200,
        'body': json.dumps({"count": count})
    }

When you run this code in 江苏体彩 the first time, cold start or provisioned, count will be 1. If you invoke the function several more times over the next few minutes, you’ll see a higher number printed each time as the counter increments itself. This is possible because 所有 江苏体彩 functions preserve a warm environment for some period of time after they start, meaning that global state can be reused — a feature commonly used for 无服务器缓存策略.

但是在某个时候,即使函数是温暖的,并且即使设置了并发,江苏体彩服务也会回收该执行环境。在预配置的并发世界中,该功能将是 重新初始化 in a new environment without you having to call it directly, running the global code outside your handler and resetting count to 0.

有趣的是,此重新变暖事件在AWS X-Ray中可见。如果您想看到“运行时间”为一个小时的江苏体彩函数,这是您的机会!

请注意,“初始化”时间发生在实际函数调用之前的一个小时内。

因此,如果我不按小时计费来支付State费用,那么江苏体彩配置的并发给我的钱到底是什么?简而言之,它是江苏体彩用户使用的预热器的托管版本 在一起已经好几年了。偶尔的变暖事件之间的温暖环境是江苏体彩经常免费提供给我的东西。但是预配功能甚至没有免费层。

话虽如此,我真的希望AWS将预配置并发的定价模型修改为 仅负责变暖事件本身。 如果您设置了50的并发性,并且AWS必须每两个小时运行50个计划的初始化,那么我应该仅为那些初始化事件付费,而不是为每小时不透明的费用付费。我已经在X射线中看到了这些事件,因此为它们计费很容易,对吧?

如果需要,将“预热”事件的费用比常规江苏体彩调用高15%,以覆盖计划或其他任何正在发生的魔术的开销。但是,请不要忽略我的从零到零的计费模式。那就是我最初来江苏体彩的目的。

同时,何时对置备的并发妥协才有意义?如果冷启动对您的业务造成的影响比以下两件事中的任何一个都要昂贵:

  • 重构您的应用以产生可接受的低冷启动惩罚所需的时间(如果可能)
  • 运行始终在线的并发的成本

由于在很多用例中冷启动都妨碍了在这些条件下的采用,因此,我很高兴提供并发是一种选择。但是,如果它坚持基于使用价格的定价,那将使我感到更加高兴,该定价使江苏体彩首先具有革命性意义。

Trek10的Adam Baker为这篇文章做出了贡献。

作者
福雷斯特Brazeal Trek10 191210 171202
阿甘(Forrest Brazeal)