忆梦|Serverless的4种错误打开方式( 四 )
在 Serverless 的场景下 , 实例的 CPU 利用率达到最大并不是问题 , 因为它可以自动伸缩 。 从理论上讲 , 可以增加无限数量的工作节点 , 甚至可以满足最严格的递归算法的需求 。 但是 , 从成本的角度出发 , 递归会导致 DoW(Denial on Wallet) 的攻击 。
时刻需要记住 , 在 Serverless 的场景下 , 计费里面不止包含计算能力 , 还包括调用和运行时间 。 结果就是递归导致你云供应商收费激增 。 选择 Serverless 模式是为了节约成本 , 而这种使用方式却抵消了这种优势 , 你以为费用下降了 , 但实际却恰恰相反 。
解决方案
显而易见的解决方案是在构建无服务器应用程序时注意代码库中的递归算法 。 但是 , 可能有些应用程序仍需要递归操作 。 例如 , 在机器学习的应用中 , 重复训练模型直到在训练数据或验证数据上达到一定有意义的精度 。 但是 , 问题是可以提供多少次递归?
就像前面说的 , 递归函数最大的威胁点是无限递归的可能性 。 不过在大多数情况下 , 这是一种意料之外的结果 , 程序理论上不需要特殊处理无限递归 。 因此如果需要使用到递归 , 请确保进行严格的测试 , 尽可能完全避免这种问题 。
此外 , 您也可以在自己的 function 之间传递数据 , 以保持一个递归计数 , 并设置一个失效保护的开关 , 以便当递归计数达到一定的数量时停止正在运行的 function 。 这将使系统知道递归发生的次数 , 并允许可配置的限制随着时间的推移而变化 , 同时考虑到无服务器应用程序的成本和其他因素 。 这样你的系统就知道递归实际发生的次数 , 并允许配置一个限制 , 可以随着时间的变化而变化 , 同时牢记成本和无服务器应用程序的其他因素 。
结论无服务器无疑正在彻底改变应用程序在云服务上面的构建方式 。 但是 , 随着这种新模型和体系结构的出现 , 它具有了自己独特的反模式 。
如果不小心谨慎的话 , 这些反模式很容易浮现 , 抹去选择无服务器架构获得的所有好处 。 实际上 , 根据问题的严重性 , 无服务器架构可能对业务应用程序有害无益 。
但是 , 该技术的优势极大地促进了其应用 。 因此多年来 , 云社区已经看到了很高的采用率 。 我们有必要积极了解如何在无服务器场景下构建软件 , 同时注意避免反模式 。 俗话说 , 强大的力量伴随着巨大的责任!
原文链接
关注我并转发此篇文章 , 私信我“领取资料” , 即可免费获得InfoQ价值4999元迷你书!
- 消化疾病|秋燥来袭口燥咽干还便秘?秋燥的人都应知道的4种缓解方法,建议收藏
- 尿酸|尿酸高可得忌口!这4种食物,看完赶紧拉入“黑名单”
- 特色美食|爱吃水果的要留意,这4种尽量不放冰箱,抓紧看看,早点提醒家人
- 忆梦|电视接口都有哪些?各自有哪些作用?智能电视常见接口解析来了
- 时装搭配|女人上了四五十岁,穿衣要避开这4种搭配,会显得“廉价”又俗气
- 女性健康|世界公认最伤胎儿的4种工作,对孩子负责,怀孕之后一定要辞职
- 玲倩科技|子女争相效仿,老人却是有苦难言,这4种“假孝顺”方式正在兴起
- 中医孙医师|秋天到了,4种食物要多吃,排毒素清,养血驻颜,增强免疫力
- 女性|女人上了四五十岁,穿衣要避开这4种搭配,会显得“廉价”又俗气1、颜色鲜艳的穿搭2、破洞裤穿搭3、宽松穿搭4、紧身穿搭
- 中医孙医师|女人爱美,4种食物不能少,提亮肤色,不容错过,改善血液循环