递归无服务器函数是云端最大的计费风险?

2022 年 8 月 20 日 InfoQ

作者 | Renato Losio
译者 | 明知山
策划 | 丁晓昀

最近,谷歌云内容主管 Forrest Brazeal 表示,对于开发者来说,无服务器函数是云端最大的计费风险,因为我们没有简单的方法来防止递归调用,而且它们几乎可以无限地在所有的云提供商中扩散。

Brazeal 提到了云开发者撰写的一些文章,这些文章描述了那些导致无服务器函数“失控”和巨额账单的错误。其中,Cloudsoft 工程副总裁 Aled Sage 报告了亚马逊云科技的一个 Lambda 巨额账单的例子,Tom Wright 描述了发生在 Azure 上一个可怕的无服务器事故,Milkie Way 创始人 Sudeep Chauhan 解释了他如何在谷歌云上测试 Firebase 和 Cloud Run 花费了 72000 美元。Brazeal 警告说:

这一切发生得太快了。它就像是云灾难的山洪暴发。这不只是忘记了一个 GPU 实例,导致每小时多花费几美元的成本,而是你睡觉之前的账单是 5 没有,等你一觉醒来变成了 5 万美元——这一切都发生在你的预算有机会发出警报之前。

在讨论谷歌云、亚马逊云科技和 Azure 的具体限制和保护措施时,作者认为它们没有提供安全的方法来防范风险,因为这些供应商都还没有完全保护开发者的机制。Brazeal 补充说:

要保护自己不在一些资源(如 VM)上花太多的钱是很容易的,但现在还没有什么好的方法来保证你不会被来自函数的意外账单惊到……

亚马逊云科技有一个页面专门介绍了导致 Lambda 函数计费问题的递归反模式,并承认:

大多数编程语言都存在无限循环的可能性,而这种反模式在无服务器应用程序中会消耗更多的资源。

对函数进行并发性限制可能会有所帮助,但这会给开发人员造成一种错误的安全感假象:它可以在递归分叉式场景(无限的函数扩展)中提供保护,但不能避免几个小时内的大笔费用,例如使用相同的 S3 桶作为函数的源和目标。Qube Cinema 技术架构师 Sudhir Jonathan 去年报道过这样的案例。亚马逊云科技首席开发者 James Beswick 写了一篇关于如何使用 Amazon S3 和 AWS Lambda 避免递归调用的文章,他解释说:

如果意外触发递归调用,可以按下 Lambda 控制台上的“Throttle”按钮将函数并发性降至零并中断递归循环。

正如云顾问、亚马逊云科技无服务器英雄(Serverless Hero)Yan Cui 最近所说的那样,虽然有很多可能的优化措施来节省使用 Lambda 的成本,但并没有提供自动断路器。在云供应商可能引入的缓解措施中,Brazeal 建议采用近实时计费方式,对云计费设置上限,并更好地自动化异常检测和递归工作负载修复。

The Duckbill Group 云经济学家 Corey Quinn 在他的新闻稿中评论道:

事实上,甲骨文“对免费层非常认真,除非用户确定要升级,否则不会让用户增加费用。”这是他们平台最棒的地方之一。

去年,时任 A Cloud Guru 内容和社区总监的 Brazeal 强调了亚马逊云科技缺少沙盒账户和硬收费限制。

原文链接:

https://www.infoq.com/news/2022/08/recursive-serverless-functions/

点击底部阅读原文访问 InfoQ 官网,获取更多精彩内容!

今日好文推荐

让大厂抓狂的“额外一秒”:谷歌、微软、Meta 和亚马逊纷纷提议放弃

“今日头条”名字是 AB 测试定的?字节跳动用九年时间打造出了怎样的数据平台

Node.js 之父着急宣布:Deno 将迎来重大变革,更好地兼容 Node 和 npm 包

操作系统的“冷板凳”要坐多久?万字长文解读 16 年开源老兵的坚持

登录查看更多
0

相关内容

服务器,也称伺服器,是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。
服务器的构成包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
【Manning新书】云计算安全指南:以AWS为例,311页pdf
专知会员服务
38+阅读 · 2022年9月11日
【2022新书】数据隐私:工程师手册,799页pdf
专知会员服务
82+阅读 · 2022年6月20日
【干货书】大数据小摘要,272页pdf,剑桥大学出版社
专知会员服务
41+阅读 · 2021年7月6日
【干货书】现代数据平台架构,636页pdf
专知会员服务
253+阅读 · 2020年6月15日
模型压缩究竟在做什么?我们真的需要模型压缩么?
专知会员服务
27+阅读 · 2020年1月16日
无服务器和 Kubernetes 原生 Java 部署实践
InfoQ
0+阅读 · 2022年6月28日
单体服务到云端的迁移实践
InfoQ
0+阅读 · 2022年6月8日
超过 380,000 个 Kubernetes API 服务器面临一系列攻击
CCF计算机安全专委会
0+阅读 · 2022年5月26日
如何提升 HBase 大规模集群下的低延时性能
AI前线
0+阅读 · 2022年3月28日
在你的SaaS中,要避免这13个最糟糕的用户体验设计
人人都是产品经理
0+阅读 · 2022年3月13日
为什么选择无服务器模型?
InfoQ
0+阅读 · 2022年3月6日
WebAssembly 开启微服务新时代
CSDN
0+阅读 · 2022年3月4日
停止盲目使用微服务
InfoQ
0+阅读 · 2022年2月27日
新年第一天,3000台Apache服务器宕机
CSDN
0+阅读 · 2022年2月16日
微服务依赖管理的陷阱与模式
InfoQ
0+阅读 · 2021年12月2日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
2+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2011年12月31日
国家自然科学基金
0+阅读 · 2011年12月31日
Arxiv
0+阅读 · 2022年11月29日
Arxiv
0+阅读 · 2022年11月24日
Arxiv
0+阅读 · 2022年11月24日
Interest-aware Message-Passing GCN for Recommendation
Arxiv
12+阅读 · 2021年2月19日
已删除
Arxiv
32+阅读 · 2020年3月23日
VIP会员
相关资讯
无服务器和 Kubernetes 原生 Java 部署实践
InfoQ
0+阅读 · 2022年6月28日
单体服务到云端的迁移实践
InfoQ
0+阅读 · 2022年6月8日
超过 380,000 个 Kubernetes API 服务器面临一系列攻击
CCF计算机安全专委会
0+阅读 · 2022年5月26日
如何提升 HBase 大规模集群下的低延时性能
AI前线
0+阅读 · 2022年3月28日
在你的SaaS中,要避免这13个最糟糕的用户体验设计
人人都是产品经理
0+阅读 · 2022年3月13日
为什么选择无服务器模型?
InfoQ
0+阅读 · 2022年3月6日
WebAssembly 开启微服务新时代
CSDN
0+阅读 · 2022年3月4日
停止盲目使用微服务
InfoQ
0+阅读 · 2022年2月27日
新年第一天,3000台Apache服务器宕机
CSDN
0+阅读 · 2022年2月16日
微服务依赖管理的陷阱与模式
InfoQ
0+阅读 · 2021年12月2日
相关基金
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
2+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2011年12月31日
国家自然科学基金
0+阅读 · 2011年12月31日
Top
微信扫码咨询专知VIP会员