当前位置: 首页 > news >正文

网站推广优化外包公司深圳网页设计与制作公司

网站推广优化外包公司,深圳网页设计与制作公司,濮阳网站建设哪家好,专门做游戏交易的网站有哪些Key Takeaways#xff1a;1. 尽管 Serverless 的迅猛发展吸引了广泛深入的关注#xff0c;Serverless 函数总成本的事先估计仍缺乏有效的理论指导。本文基于 FunctionGraph 在 Serverless 领域的 FinOps 探索和实践#xff0c;提出业界首个 Serverless 函数总成本估计模型。…Key Takeaways1. 尽管 Serverless 的迅猛发展吸引了广泛深入的关注Serverless 函数总成本的事先估计仍缺乏有效的理论指导。本文基于 FunctionGraph 在 Serverless 领域的 FinOps 探索和实践提出业界首个 Serverless 函数总成本估计模型。2. 根据对成本模型的关键因素分析提出五大类函数运行成本的优化方法同时为更好地帮助用户实现降本增效华为云首次提出透明、高效、一键式的 “用户函数成本研究中心”。作者 | 历川、平山、冯嘉出品 | CSDNIDCSDNnewsServerless 精确到毫秒级的按用付费模式使得用户不再需要为资源的空闲时间付费。然而对于给定的某个应用函数由于影响其计费成本的因素并不唯一使得用户对函数运行期间的总计费进行精确的事先估计变成了一项困难的工作。以传统云资源的周期性租赁模式为例通过周期数乘以周期单价用户可以很容易地估计出租赁期间的总费用形成清晰的心理账户预期即使在云平台采用阶梯定价或价格歧视策略的情形下计算租赁总成本也不是一件难事。但在Serverless场景中事先估计函数总成本仍缺乏有效的理论指导。一方面影响函数计费的关键因素不唯一如包括函数内存规格、单实例并发度、函数执行时长等另一方面函数调用流量的波动通常具有随机性和非平稳性使得基于流量的“按用计费”具有较大的不确定性。当然寻找函数计费的理论指导主要是为用户评估函数总成本提供一种有效依据但更加重要地如何进一步利用估计模型帮助用户优化应用函数及其配置选择进而显著降低用户函数总成本是Serverless领域中FinOps亟待回答的问题。FinOps聚焦云上资源管理和成本优化通过有机链接技术、业务、和财务专业人士来优化用户、企业、组织的云资源成本提高云上业务的投入-产出比 [1]。本文结合华为云FunctionGraph在Serverless领域的FinOps探索和实践剖析Serverless场景下的函数计费模式和关键影响因素介绍一种对函数运行期间总计费进行事先估计的模型框架更重要地该模型为帮助用户优化函数运行总成本、提升用户云上Serverless资源管理效能实现经济型 (Economical) Serverless 提供有效依据。名词解释与背景知识首先对表1所列的几个概念做简要说明。表1Serverless函数常见名词内存规格MemoryMB单实例最大并发度Maximum Requests per Instance/函数执行时延Function Execution Timems单函数最大实例数Maximum Instances per Function/内存规格 (Memory)内存规格也即函数规格、函数实例规格表示Serverless平台为函数的单个实例所分配的资源大小一般表示为函数可使用的内存大小由用户指定实例可使用的CPU份额与内存大小成正比。Serverless云平台通常提供多种规格供用户选择以FunctionGraph为例用户可选15种函数规格如图1所示。图1FunctionGraph提供多种函数内存规格函数执行时延 (Function Execution Time)这里指完成一次调用请求响应的过程中函数本身执行所消耗的时间主要由函数代码逻辑决定。一般地对于CPU密集型的函数增大函数资源规格内存-CPU Share可以显著降低函数执行时延。但对于消耗大部分时间在网络IO等操作上的函数增大资源规格对执行时延的改善则非常有限。单实例最大并发度 (Maximum Requests per Instance)函数的单个实例可以同时处理的最大请求数主要适用于函数执行过程中有显著时间在等待下游服务返回的场景如访问数据库操作或磁盘IO等。对于相同的流量负载提高函数的单实例并发度可以降低按量实例个数为用户节省计费同时也可以降低函数调用请求的冷启动比例。单函数最大实例数 (Maximum Instances per Function)指同一函数同一时刻下同时运行的实例数上限。对用户来说最大实例数可以防止异常流量洪峰下或函数发生故障时由于云平台的过度扩容而导致的费用失控对云平台来说最大实例数可以防止异常情况下平台资源被部分函数耗光从而保障不同函数间的性能隔离。函数计费与成本模型单实例视角下的函数计费估计模型可参考 [2]。在真实生产环境中除异步函数外Serverless云平台通常采用FCFSFirst Come First Serve的方式响应调用请求对于函数流量的潮汐波动平台通过自动扩缩容实例进行自适应系统中运行的并发实例数随时间的变化可以由一个分段常线性函数完全刻画如图2所示。图2函数并发实例数随扩缩容过程的变化尽管不同Serverless云厂商之间的计费方法存在差异函数计费一般主要包括两部分对函数所使用资源的计费以及对请求次数的计费表示如下其中 表示对资源使用的计费单位为GB-秒GB-second 表示对调用次数的计费。为方便计算用表示函数的资源规格单位为GB。例如对于128MB规格的函数其 c表示该函数的单实例并发数μ表示函数的平均执行时延单位为毫秒并用α0α1表示Serverless平台的调用链路性能在最理想的情况下该指标为1表示在当前Serverless平台上该函数响应单个请求的端到端时延等于函数执行时延μ本身不同Serverless平台的α值可能略有不同但通常在0.9以上。给定上述指标可以得到单实例在理想状况下的请求处理能力, 即理论上每秒可以响应的调用次数为因此单实例的实际请求处理能力则为我们以一个月作为估计周期。假设一个月内函数共经历了n次扩、缩容形成了n个常线性子区间如图2所示。先考察单个子区间内的计费成本模型总成本模型则为各个连续子区间的加和。在时间窗口内假设函数调用次数为则该时间窗内的并发实例数为对应的资源计费部分则可表示为其中表示每GB-秒的资源的计费单价。现在记第i个子区间为则一个月内的总成本模型可以估计为其中表示每次调用的计费单价 表示函数该月总流量为云平台提供的月度免费计量时间为月度免费计量调用次数。在上式中单实例并发度c和函数规格可以认为在用户配置之后属于常数α属于平台侧参数也可视作常数对于函数执行时延μ实际中通常会由于冷热启动差异、网络抖动、调用请求入参等的不同而波动且考虑到Serverless计费是精确到毫秒级别的因此严格意义上不能被视作为常数。不过作为估计模型这里暂且假定μ也为常数。综上总成本模型可以表示为后半部分代表云平台提供的免计费总量与函数调用流量以及函数配置无关。成本优化方法讨论有了函数成本的估计模型就可以对影响用户成本的关键因素进行讨论。在估计式 (1) 中忽略云平台提供的免计费总量函数月度总成本的结构如下Point 1优化函数代码逻辑本身降低函数执行时延对于同样的函数流量负载更低的执行时延μ可以为用户节省更多计费成本。在用户业务逻辑允许的前提下不断优化函数代码、提高函数执行效率是软件工程本身天然的诉求但在Serverless场景下这一点显得更为迫切。具体地考虑采用Python、Nodejs等轻量化编程语言减少函数初始化配置中的非必要项将连接其它服务如数据库等的操作尽量移到函数执行入口之前的初始化阶段完成简化代码逻辑等。另外为帮助用户掌握函数运行情况FunctionGraph为应用函数提供深度可视化的可观测能力支持丰富的观测指标配置包括调用次数、错误次数、运行时延等如图3所示的函数运行时间监控示例。 图3: FunctionGraph 函数运行时间监控示例Point 2: 优化函数代码包、依赖包、镜像大小当函数调用触发冷启动的时候从计费角度看冷启动时延包含在执行时延μ中一起计费而冷启动中有相当比例的时延消耗在云平台从第三方存储服务如华为云对象存储服务OBS中下载用户的代码包、依赖包或从镜像仓库服务中拉取用户应用镜像如图4所示。尽管为了优化冷启动性能目前大部分云平台均会采用各类缓存机制对用户代码和镜像进行预缓存但实例启动中消耗在用户代码加载上的时延仍然十分显著。因此应尽可能优化函数代码包大小包括对依赖包、镜像等进行瘦身进而降低计费时长。图4冷热启动下的计费时长及优化点Point 3: 编写功能聚焦的轻量化函数在Serverless编程框架下尽可能将函数编写为轻量型的、功能聚焦的程序代码即“functions should be small and purpose-built”[3]让“一个函数只做一件事”一方面功能单一的函数运行时延也更容易针对性地进行优化另一方面当一个函数内同时实现多个功能的时候大概率会以所有功能都在性能上同时做出妥协为结果最终提高了函数运行期间总计费。图5华为云FunctionGraph 函数流示例若应用函数的确需要提供多个功能可以考虑将大函数分解为多个小函数然后通过函数编排的方式实现整体逻辑, 如图5所示的FunctionGraph函数流功能。大函数分解也是Serverless计算中用户处理超时timeout等异常场景的最佳实践之一 [4]。Point 4: 业务模型支持的前提下采用单实例多并发从公式2的函数成本结构中可以看出在用户业务模型支持的前提下配置一定的单实例并发度c可以有效降低函数月度总成本若用户不进行配置云平台默认值通常为1即单个实例同一时刻只能处理一个请求因此在函数被并发调用的情形下平台会启动多个实例进行响应从而增大了计费实例数目如图6所示同时采用单实例多并发也能改善调用请求处于等待状态的尾时延。图6单实例并发度计费时长视角和实例数视角当然单实例并发度并非越高越好例如过高的并发度设置会使得函数实例内多线程之间的资源竞争加剧e.g., CPU contention导致函数响应性能恶化影响用户应用的QoS指标等。同时如本文在背景知识中所提并非所有的应用函数都适合设置单实例多并发。单实例多并发主要适用于函数执行过程中有相当比例的时延消耗在等待下游服务返回的场景这类场景下实例资源如CPU等有显著比例处于空闲等待状态如访问数据库、消息队列等中间件、或磁盘IO、网络IO等。单实例多并发也需要用户在函数代码中对错误捕获e.g., 考虑请求级别的错误捕获粒度和全局共享变量的线程安全e.g., 加锁保护问题进行适配。Point 5: 函数资源规格的选择需考虑对执行时延的影响最后讨论函数资源规格的选择问题。从公式2明显可以看出更大规格的实例内存对应更高的计费成本。但内存规格的选择需要同时考虑对函数执行时延μ的影响。从用户函数的角度看函数执行时延除了由代码本身的业务逻辑决定之外还受实例运行时可使用资源大小的影响。更大的实例规格对应更大的可使用内存和更多的CPU份额从而可能显著改善高内存占用型或CPU密集型函数的执行性能降低执行时延当然这种改善也存在上限超过某个资源规格后资源的增加对降低函数执行时延的效果几乎可以忽略如图7中虚线所表示的过程。上述事实表明对于给定的用户函数为降低总计费成本需要配置合理的实例规格使得尽可能取得最小值如图7中实线所表示的过程。图7函数规格的选择需同时考虑对成本和执行时延的影响例如考虑实例规格的初始配置为例如从最小规格开始i.e., 128MB, 经测试该规格下函数执行时延为则可以得到基线然后逐步增大资源规格测试对应执行时延直到某一组出现使得此时表明资源增大对计费成本的边际提升已经超过了对执行时延的边际改善因此从成本的角度看此时的为帕累托最优解即最佳规格对应执行时延为。最后图8对上述几个决定函数成本的关键因素做了一个总结其中箭头方向表示元素之间的直接影响“”号代表成正比“-”代表成反比。图8函数计费成本的关键因素分析Serverless函数成本研究中心为用户降本增效是FunctionGraph的核心理念。尽管前文分析的五种函数成本优化手段是站在用户视角下的讨论但我们认为这些问题远不是只属于用户需要考虑的范围相反地FunctionGraph在持续探索如何最大限度地帮助用户在Serverless领域实现最佳的FinOps效果让用户能够真正享受到Economical Serverless的福利例如在实例级别的深度可视化、可观测性前提下帮助用户实现函数FinOps全流程的自动化为用户提供透明、高效、一键式的函数资源管理和成本优化服务。图9. 在线式资源消耗感知与规格动态推荐为此基于内部实践FunctionGraph 将于近期推出“用户函数成本研究中心 – Cost Analysis and Optimization Center”, 为用户提供包括离线式函数最佳配置调优offline power tuning、在线式资源消耗感知与规格动态推荐online resource recommendation 如图9所示、预测性函数弹性预览predictive auto-scaling preview等在内的多个重量级特性服务最大限度降低用户实现函数FinOps的技术门槛为用户业务开发、Serverless化改造等提供极致便捷性。总结与展望本文主要讨论了Serverless计算场景下的FinOps问题给出了业界首个用户函数总成本估计模型并根据该模型为用户优化应用函数、提升Serverless资源管理效能、降低总成本提供理论参考和实践依据。一项新兴技术领域的兴起首先需要回答的问题是“Why Value”,  FunctionGraph作为华为元戎加持的下一代Serverless函数计算与编排服务结合FinOps等技术理念持续为用户提供经济型Serverless服务。后续我们将分享更多围绕通用全场景Serverless的前沿理论及其案例实践回馈社区包括FunctionGraph在微服务Serverless化上的实践经验等。参考资料[1] What is FinOps: https://www.finops.org/introduction/what-is-finops/ [2] Running Lambda Functions Faster and Cheaper: https://levelup.gitconnected.com/running-lambda-functions-faster-and-cheaper-416260fbc375?gi4370e4c57684 [3] AWS Lambda Cost Optimizations Strategies That Work. https://dashbird.io/blog/aws-lambda-cost-optimization-strategies/ [4] Timeout Best Practices. https://lumigo.io/learn/aws-lambda-timeout-best-practices/ 作者介绍华为云Serverless研发专家历川、华为云中间件Serverless负责人平山、华为云中间件首席专家冯嘉。
http://www.huolong8.cn/news/184357/

相关文章:

  • 彩票网站开发周期贵阳企业免费建站
  • 发布的手机网站是乱码深圳网站设计公司怎么找
  • 网站建设招聘系统苏州网站建设制作设计
  • 建设企业网站律师网站模版
  • 云虚拟主机做网站网站建设太金手指六六二八
  • 合肥网站运营房地产市场调查问卷
  • 青羊网站建设建设网站需要给钱吗
  • 2019建设摩托官方网站江苏建筑信息平台
  • Asp.net 手机网站制作义乌网站建设公司书生商友
  • 烟台网站建设在哪视频制作gif动图
  • 微信网站建设计入什么科目创想网站
  • 合肥网站设计品牌自己搭建邮件服务器
  • 网站切换语言怎么做毕业设计报告网站开发
  • 淄川网站建设yx718wordpress 修改后台地址
  • 龙岩网站建设推广朝阳网站制作设计
  • 网站开发了解客户需求app自己怎么开发软件
  • 做企业网站怎么样代卖货平台
  • 沈阳 网站建设wordpress移动导航菜单
  • 外军网站建设个人网站备案范围
  • 旅游网站开发工程师代理记账公司排名前十强
  • 响应式网站开发现状阿里云oss做网站
  • 哪个网站做二手车买卖网站绝对路径
  • 留电话的广告网站广西水利电力建设集团网站
  • 哪些网站做的最有特色怎么制作网站内容
  • 手机网站二级域名阿里巴巴网站开发工具
  • 南京网站建设企业phpcms旅游网站模板
  • 网盘做网站服务器做外贸的网站要多少钱
  • 怎么申请免费网站wordpress ssl 慢
  • 北京做网站优化的科技公司2345网址大全下载
  • 动漫谷网站建设策划书微信运营公司