上云是企业数字化转型的必经之路,它带来的资源申请便利性很好的支撑了企业的高速发展。用好云可给企业开发、运维及稳定性保障成本带来有效改善。然而业界时常报出一些科技巨头,云计算成本账单膨胀到令人瞠目结舌状态的情况。表明在资源管理和成本优化上存在一些挑战和优化点。
本次演讲会给大家介绍美团在资源管理和成本优化上的一些工作,将从实际场景出发,讲述在机器选型、预算制定、资源交付、使用管控运营等资源全生命周期管理各阶段的问题和应对策略。
资源运营特点及现状
首先看一下资源运营的特点和现状。资源运营是什么?一句话,根据业务的预算去采购服务器,然后将服务器高效交付给业务的可用资源,并将这些可用资源合理分配业务使用的一个过程。这个过程主要要实现两个主要的目标,第一个是保障业务的资源供应,另外一个是要降低业务资源的使用成本。从图上来看,资源运营主要分为供给层、平台层和业务层这三层的联动。
接下来我们看一下资源运营的特点。从供给层来看,其实产业链是比较长的,服务器交付涉及到上中下三游很多环节,其中一个环节出现问题,都有可能导致资源交付受到影响。比如近几年,美国对中国的无端制裁,导致芯片及其他的一些配件供应不足。前几年我们出现了一些服务器采购比较紧张的情况,业务层资源需求是变化比较快的,变化主要有两类特征,一类是周期性高低峰的变化,另外一类是热点事件的凸增需求。
以上两个特点对平台层的资源保障造成了比较大的压力。再加上平台层资源运营能力不足,平台层只能通过资源冗余的方式去解决这种资源的问题,势必会造成资源的浪费这里有三个数据来说明云资源的运营现状,第一个是 4,000 亿美元,这是甘特评估的 2022 年公有云资源的市场规模,可以看到规模还是比较大的。第二个是 29%,这是 flex 在 2022 年云计算报告里面预估的接下来 12 个月的云资源规模的增长比例,我们可以看到云计算资源规模的增长还是比较迅猛的。第三个是 32%,这个也是 flex 在 2022 年云计算资源报告里面提到的,云计算资源的浪费比例,其实这个比例还是比较触目惊心的。从这三个数字我们可以看到,云资源规模是比较大的,增长也比较迅猛,浪费其实是比较严重的。在全球经济比较低迷的情况下,业务发展也比较缓慢,浪费就会显得更加明显了。
降本增效挑战及思路
降本增效挑战
现在大家逐渐把云资源的降本增效提上日程,但是 2022 年云计算报告里面也提到,云计算资源的降本增效连续三年位于具有挑战事项的 Top3,为什么这么有挑战性?我从三个方面做一些阐述。
第一个方面就是资源运营本身是一个重流程的业务,它涉及的相关方是比较多的,要跨团队的推进是十分困难的。右下角那个图是我根据美团的一个资源运营的流程梳理的阶段,能看到每个阶段里面要完成的事项是比较多的,然后涉及的参与方也是比较多的,势必就会给资源运营相关的推进带来很多团队协作的难点。
第二个方面是资源运营相关的管理系统体系化和自动化不足,导致我们成本优化的效率是比较低的。专营管理体系化不足主要体现在三个方面,一个是关键性建设不足,成本分散不合理,导致我们不知道资源用在哪里,哪里可以进行成本优化。第二个体现是缺失工具平台,自动化能力不足,特别是在多元管理方面,有一些还是靠人工去做,不仅耗时耗力,还容易出现一些问题。第三个体现是成本运营本身和稳定性保障分不开,这两个的权衡不是一个 0 和 1 的问题,需要综合考虑多种因素寻求平衡。在平台建设不足的情况下,对于平衡的挑战是更大的。
第三个方面是智能云本身是长流程,降本增效需要持续运营,但在持续运营过程当中,涉及到的团队比较多,很容易导致职责划分收益分配不合理的情况。稍有不慎可能导致做事故摊责的时候更容易产生团队协作的问题。再加上成本运营本身的见效也比较慢。
综上原因,就很容易导致降本增效项目流产。
降本增效策略
那么我们怎么样去推进我们的降本增效?FinOps 定义了一系列的云成本管理的原则和最佳实践,通过帮助财务团队技术团队和业务团队彼此的协作,进行数据驱动和业务价值驱动的成本优化决策,帮助团队提升资源的投入产出比。
其中有两个比较重要的点,第一个是成本实施的原则,包括:
倡导中心化团队驱动,多团队协作,只有中心化团队驱动才能保证目标的高度统一,而多团队协作会提升我们的执行力。
倡导数据驱动和业务价值驱动,只有这样才能保障是基于我们的业务现状有的放矢。
倡导是灵活运用公有云的或者私有云的成本模型去做一些这种优化的实施。
具体实施主要是三三阶段的模型,成本洞察提供可观测的资源分析和成本分摊,便于发现资源的一个瓶颈。提供自动化的智能化的工具手段,保障成本优化高效,最终实现业务资源按需使用和预留最小。资源管理是长流程的过程,降本增效也需要持续运营迭代,基于 FinOps 的理念,业界结合自身的特点落地实践。
资源运营在美团的实践
接下来我们看一下资源运营在美团的实践。多数情况下,大家认为 FinOps 是帮助我们去优化成本省钱的,但是其实我们忽略了一点,其实 finOps 是通过可视化投入产出比去衡量资源的管理决策,可以更好地帮助我们聚焦高优核心业务的资源供应保障。所以说美团在资源运营方面像资源保障和成本优化,作为一个整体来看的,这体现在我们的业务目标上面,首先我们要保障业务的资源供给,其次再是降低成本,其实因为美团资源的交付还是以私有云为主,形式上面主要还是预算采购交付过程。
尽管我们尽量去缩短周期,但还是一种以静态的资源容量预估去满足动态变化的需求的过程。美团的业务特点其实和大家业界的特点比较类似,业务形态比较多,需求突增也是常态化的,平台的资源规模也是比较大的,这些特点都给资源运营管理带来了比较大的挑战。
在资源运营管理实施之初,我们也有很多这种痛点,主要体现在三个方面:
资源成本可观测性比较差,我们就很难回答资源到底够不够,资源有没有浪费,更无从下手去做保障和成本优化。
资源管理自动化程度比较低,最初资源交付可能是按周计的,这种资源运维主要靠人工,耗费大量人力物力。
持续运营机制不完善,主要是一些运动式的推进,导致收益是不持续的。
针对以上问题,我们结合 FinOps 理念与内部的实践经验,确定了从资源保障和成本优化两方面闭环去建设能力,然后基于数据驱动去做运营的策略思路。
资源运营思考
基于资源供给和成本优化的全链路,我们沉淀了一个六层双水位的资源运营管理模型,这个模型涵盖资源的全生命周期,在每层之间做到数据的对等、数据可校准。在每层内做领域的闭环,建设相应的能力和做精细化的运营。虚拟层和主要是对应双水位的整体资源,包括水位。配额层主要是运营业务的资源水位。美团的资源交资源交付是从整体的资源池交付到对应业务的虚逻辑的资源池。业务申请资愿的时候,都会从自己的逻辑资源池里面去申请和释放,基于业务单独的逻辑资源池的水位,我们可以看到单个业务的资源的健康状态,在上面 6 层模型的基础上,我们梳理了资源交付的整个流程,自上自下建设资源实时供给能力,自上而下去建设资源的成本优化能力。
资源运营落地的关键
我们梳理出来了一个资源能力架构,主要包括 4 个方面的能力,第一个是可观测能力,第二个是资源保障能力,第三个是成本优化,最上层是持续运营的能力,可观测性主要集中在资源追踪和成本分摊,保证资源的整体视图。
资源保障主要是建设自动交付和风险识别的能力,成本优化主要是基于自动优化的工具能力建设,做好层间协同,最终体现在服务器的采购数量上,因为我们是私有云为主,上层的资源优化如果没有体现在采购服务器的数量的减少上面,其实对于公司意味着成本没有得到优化。
我们建设了相应的持续运营机制,基于这个指标去做持续的迭代和运营优化。下面我们分别从以上 4 个方面看一下我们资源运营落地的关键。
首先是在可观性方面,我们主要做到资源可追踪,成本合理分摊。我们梳理了资源在业务流转的全生命周期的状态机,实时监听这些资源状态的变化,基于这些状态变化的事件,去分析资源的状态停留时长或业务的资源使用合理性。另外我们引入了业务结算单元的概念,建立服务结算单元和组织的对应关系,以保证成本分摊到具体的实际组织,便于进行优化推进。我们建设了精细的计费能力,账单层面支持这种下钻,支持秒级计费,可以保证业务成本优化的实时性,账单的成本节省对于业务的积极性的提升还是比较有帮助的。我们也提供了满足不同业务需求的不同的资源类型,在成本分摊方面,我们尽量真实反映业务的不同类型的资源占用,基于每个成本每类产品内部收支平衡去做到合理定价。
资源交互保障方面,首先,我们打通了全流程的自动交付流程,基于 buffer 水位和业务的重要性,确定分级保障级别和要保障的对象,最终实现核心业务、高优业务优先保障的结果。左边的图是我们资源交付的流程,可以看到资源的 buffer 起到比较重要的作用,我们实时监控资源(包括水位),去触发资源的腾挪或者是补给。右边是我们分级保障的示意图,会根据资资源余量确定要保障业务的极点。
第二,针对这种资源结构性交互不足的问题,我们建设了常态化的资源迁移承诺能力。资源结构性不足主要是指业务资源的机房需求和平台侧资源机房是不对等的,满足不了业务特定机房的需求,我们把这个称为资源的结构性不足。针对这种问题,我们建设了自动化的迁移能力,能够业务无感地将一些对机房不敏感的业务,从一个机房迁到另外一个机房,然后把对应机房的资源腾空出来给高危业务去使用。
第三,针对活动和节假日波动比较大保障困难的问题,我们会联合业务提前做压测和资源的准备。
第四,为了应对私有云交付异常,或者业务资源需求凸增的场景,我们也建设了混合云的能力,通过混合云去提升资源的可扩展性。
接下来我们看一下成本优化的具体的实践。基于前面的资源交付的过程,我们梳理出来一个成本优化的漏斗模型,每一层的资源形态都存在已使用和未使用的分布。
针对这个情况,我们确定了成本优化的整体策略,就是在层内极致地去减少未使用的资源量,确保已使用的资源量是合理的,对不合理使用的资源能够做到及时的回收,层间做上下层的联动,在上层优化,保证能够及时体现在下层需求,最终体现在最下层资源采购量的减少。
具体落地包括建设需求预测的能力,多维度成本洞察和根因下钻的可观测能力,提供自动化能力去做高效的优化。接下来从成本漏洞模型里面的应用层、平台层和采购层这三个方面讲一下我们在成本优化方面的一些具体动作。
在应用层成本优化方面,我们根据应用层成本的一个公式,能看到应用层成本和资源的单价,实际的配置副本数和使用时长是强相关的,所以说我们成本优化也是基于这 4 个方面去做。
第一个方面就是降资源单价,美团提供不同的资源类型,方便业务根据它的业务特点去选择性价比比较高的类型。
第二个是降低资源配置。这里边主要涉及到两个方面,一个是减少 CPU 内存或磁盘大小,另外一个是优化 CPU/内存配比,我们主要是提供资源利用率的视图,帮助业务发现低资源利用率的容器,进行一键降配,或者是资源机器资源配比的更新。
第三方面是降低副本数,主要分两种场景,如果是业务的资源副本是满足容灾的情况,可以通过直接减少部署节点数来达到优化的效果。对于部署节点已经最小的服务,也提供了合并部署的方式去减少节点数。
最后一个是减少资源的使用时长,主要是利用业务的高低峰,通过高峰期扩容和低峰期缩容去减少业务的资源使用。在美团内部,我们提供基于负载或者是周期性触发的弹性伸缩,为业务无缝自动扩缩,降低业务的低峰期的资源浪费。
接下来看一下我们平台层的成本优化,主要分成两个方面,一个是管理面的成本,还有数据面的成本。
首先看管理面成本优化,管理面成本优化主要涉及集群的管理成本,服务器的管理成本或者是虚拟化的成本,甚至最上层可能还有为保障业务的配额使用必须要做的一些预留资源的办法。
对于服务器的管理成本优化,我们主要是建设服务器的自动运维能力,提升资源的流转效率,减少服务器的控制率,对于集群的管理成本,主要通过提升单集群的规模,降低集群管理资源在平台资源的占比。
虚拟化成本主要还是通过容器化利用容器相对 VM 更轻量的方式去降低管理成本。美团在 18 年开始就推动容器化,两年前就完成了全量容器化。
对于业务配额成本优化,主要通过合理性的监控,建设需求预测,尽量减少资源的预留。
对于这个宿主机的成本,可以简单理解为宿主机的数量。在业务上层我们这里给出来一个数量的公式,在分子业务需求业务利用状态一定的情况下,数据平均配置一定的情况下,数据成本的优化可以转换成提升宿主机的资源利用率和提升超售比,去减少宿主机的数量。
我们主要从三个方面去做这种成本优化。
首先提供平台的弹性伸缩能力,实现平台层的资源错峰复用,提升平台资源的利用率,降低平台资源的容量。二是在调度优化方面,我们主要还是基于的调度算法的优化,比如集群负载自动均衡管理系统,通过调度算法的优化,实现更高的时空复用,比如通过超卖混部等策略提升分配率和资源利用率。
三是建设混合云的管理能力,建设公有云数据的自动购买、释放业务侧自动腾退的能力,合理利用按量计费的实例,做峰值的资源应对,避免低峰期资源大量空置。
最后介绍一下采购层的一个成本优化。应用层和平台层主要还是保障存量资源的最大化利用。供应采购这一层,一方面要将上层的技术或者成本优化的红利体现到服务器的采购,另外一方面还会联合我们平台和业务做好新硬件的引入,借助技术红利去降低增量资源的采购成本。
现在在美团已经或即将落地的优化手段,包括:
AEP 引⼊解决搜索、推荐等业务⼤内存需求
HDD 机型去 Raid 降低采购单价,适⽤于⽆状态在线业务场景
⾼密机型、AMD、ARM 引⼊,降低单核成本
在运营方面我们主要还是参照 FinOps 的一些原则和业界的实践,通过集中决策和多团队协作的方式进行持续推进。
资源运营落地的难点
接下来我们介绍一下资源运营落地的难点,成本优化势必会带来宿主机的负载的增加,资源增强也会加剧,如何保障服务质量也是我们绕不开的一个问题。
美团主要是从事前事中事后三个阶段去保障线上业务的服务质量。事前主要是通过能力建设,比如内核的隔离能力、调度的抢占能力,建设服务画像服务分级,通过精细化的运营去保障要求更高优的业务的资源获得 SUV。另外我们在调度层面去做调度算法的优化,做提前调度规避,比如避免高优的业务被调度在已经负载比较高的宿主机上。事中主要建设及时的发现,自动处理能力,比如能够较快识别高负载的宿主机,然后通过重调度或者驱逐的方式及时恢复问题。故障的发现和自动处理是在建设的一个故障治愈平台,会支持更多资源问题的处理,也支持业务自定义一些异常的规则,还有处理的规则。事后主要是保障问题的跟进机制,通过定期复盘去反向推动前面能力的优化提升。
第二个难点是,资源管理流程⻓,场景多变,如何⾼效实现⾃动化?从前面的介绍可以看到,不管是资源的保障还是成本的优化,都能看到资源管理的流程比较长,场景也比较多,优化推进如果完全靠人工去做,肯定拿不到好的结果,甚至团队成长也会比较慢。我们需要通过自动化的方式去支持业务。
那么如何在这种流程长场景多的情况下高效实现自动化的交付?我们主要从以下三点去做:基础能⼒内聚复⽤、流程引擎:流程可编排 、规则引擎:策略可配置。
接下来看一下我们资源运营落地的效果。21 年在线服务基本上实现了全量的容器化。20 年容器宿主机的资源利用率提升 10%左右,通过服务器资源管理自动化的建设和运营,我们整体的服务器资源空置率降低 20%。在新硬件引入方面,我们完成了高密机型的切换,比如 AEP、去 Raid 化得到规模应⽤。
总结思考
美团针对资源运营的特点和挑战,主要从可观测性建设、资源保障、成本优化和持续运行这 4 个方面进行了思考和落地。未来规划会围绕资源保障和提效去成本优化这方面去做:
保供给方面,我们会基于 DPU 和快存储去实现分钟级的资源交付,提升资源风险的应对能力。
在提效方面,我们要去做资源需求的预测能力建设,自动化、智能化应急保障或成本优化。
最后,性能、稳定性、成本本身是相互制约的三个主体,如何在降本增效的前提下去做好服务质量的保障,始终是一个比较难回答的问题,我们会通过精细化监控、管控能力的建设去探索两方面更好的平衡。
接下来说一下我的一些思考:
降本增效是个系统性⼯程,需要魄⼒和团队精诚协作
FinOps 是不错的系统⽅法,需要基于业务现状、投⼊产出做好侧重
运营重流程、耗⼈⼒,需要做好⼯具产品沉淀
指标运营需要持续并不断精进迭代
嘉宾介绍
侯⾦轩,15 年加⼊美团,现为基础软件系统运营团队负责⼈, 负责容器云资源运营管理、故障运营管理、集群运维 及⼯具平台研发。曾负责 Gravity 流程平台、EagleES 搜索服务平台研发。
评论