精耕细作的运维资源成本管控方法-互联网企业的Finops思考与实践

本文主要是介绍精耕细作的运维资源成本管控方法-互联网企业的Finops思考与实践,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

当前,降本增效成为各大互联网公司的重要方向,IT成本则占据了互联网成本的大头。随着IT资源成本花费越来越高,很多公司意识到掌握管控成本和优化成本的重要性。

如何有效的降本?如何做好成本的洞察管控?如何掌握资源成本优化的技术方法?

优维第5期UGeek大咖说邀请了SRE领域极具声望的大咖,《SRE原理与实践》作者、前虎牙业务运维负责人张观石做客直播间,带来《精耕细作的运维资源成本管控方法-互联网企业的Finops思考与实践》的主题分享,张老师从专业角度为大家讲解了有关FinOps成本优化的思考与方法探索。

下面,就跟着鹿小U 一起来回顾一下本期大咖说的精彩内容。

「直播回顾」

一、认识IT资源成本及搞Finops必要性

对FinOps的理解,有一个概念就是省下来就是利润。

先来看一个案例。

 

上图是券商的分析报告,是对某个直播平台的IT资源做了一些分析。上图左侧红框部分,每个付费用户的服务器带宽成本在2019年和2020年都是125块,到2022年的时候就降到81块。可以看出该直播平台付费用户服务器带宽成本逐年下降了20%以上。

上图的右侧统计的是每个用户收入是69块,每个用户带宽成本是6块,就是说每个用户收入中带宽成本占比仅有8%。这个比列从另一个行情来讲,假如行业发展很快,营收增长迅猛的时候,这个成本可以忽略不计。如果是业务增长停滞的情况下,这样的成本都可能会成为一个敏感的话题。所以成本优化管控会越来越成为一个重要的事情。

>> IT支出占营收多少是合理的

 上图是服务器和带宽的成本在整个营收里面的占比情况。可以看出在2019年的时候服务器和带宽的占比是13%,这其实是相当高的。而比较理想的情况是做到5%。

大家可以想一想在公司IT成本和营收的比例是什么样子的?有没有占比到5%?

5%可以当做一个参考值,很多公司如果能做到5%即是一个相对理想的状态。根据各公司具体情况分析,5%不是一个绝对的参考值,要看公司的市占是多少。如果我们的成本优化做的足够好的时候,对财报的影响是很重大的。

还是上面讲的那句话,省下的就是利润。

>> Finops是什么?

网上有一种说法,FinOps应该叫做运维经济学或者叫云计算的经济学,如果及讲云成本优化,显然FinOps的概念远远大于这个云成本优化的。

 首先做FinOps不只关注云成本,也有可能有自建IDC,或者其他的IT资源的成本,要让有限的资源发挥最大的生产力,包括怎么去学好资源的供给,怎么样让资源发挥最大的效用,比如说云跟供应链的关系怎么样,内外部各个团队之间怎么去协同?从整个互联网来讲,要关注更大范围的经济问题。所以,我觉得叫经济学或者云计算经济学可能更贴切。

>> 浪费是普遍存在的

浪费其实是一个普遍的现象,先来看一下,Flexera 2022 年云状态报告数据显示,受访企业认为他们云开支里有 32%是浪费的。在国内,基于某公有云客户数据分析和调研,在线业务资源利用率普遍处于10%-15%

浪费的原因可能有:

  • 为了应对可能的毛刺,而申请大规格。大量时间是闲置的,不进行释放。因为从传统而来,没有习惯,没有技术
  • 组织脱节:申请人和使用人不同,使用人不知道成本,申请人不了解业务。 研发、资源、运维。
  • 资源种类多规模大,运维和研发都很难全面关注。数百种,数个厂商,各种产品参数差异。
  • 效率与成本之间的关系:研发申请,明天上线,未经仔细评估,匆忙上线后无人关注

>> 推动Finops的动力

我相信,在大部分企业,节省10-30%,可能是比较大的。假如月支出千万元,每月节省百万级。且是持续有效的节省。

在推动FinOps时,有两个问题需要想清楚:

问题1:各团队间存在很大鸿沟,阶段目标不一致,降本驱动力来自于哪里?

问题2:在没有明显浪费的企业,怎么降本?

想清楚以上问题后,如何推动FinOps呢

  • 大额降本:值得投入,在业务增长趋缓甚至缩量背景下、降本增效是必然选择
  • 有奖激励:拿出一定比例来奖励优化团队,也值得工程团队大力投入
  • 改进供给:加强IT资源管理,提供更多优质低价资源,帮助创新试错成本更低

二、上云还是下云

大家都在说云成本优化,显然FinOps不止于云成本的优化,也包括IDC的部分。

用云与自建的利弊

 从上面矩阵图,很明显可以看出上云是有很多好处的。比如资源类型很丰富,交互快,云产品的技术起点比较高,用着放心,维护成本低,按需付费就可以。而上云最大的劣势就是贵,还有就是管理失控可能会造成更多的浪费。

那上云为什么这么贵?因为上云包含很多隐性成本,比如设备成本、建设成本、研发成本、销售费用、支持费用、运维应用,还有空置成本等等,导致上云费用比高贵。

企业如果自建也是有好处的,比如成本低,好控制。像很多传统企业,包括银行、证券、国企很多都是没有上云的,都在使用自己的IDC。

>> 混合云是主流

上云和自建存在的优劣势,导致混合云成为主流,且适合大部分企业的架构。

 >> 如何用好云:自建与上云,鱼和熊掌兼顾

 上图右侧IDC自建的级别,就是企业自己负责的部分:

  • 第一级别是从土建开始,到建楼,到通往电机柜服务器都是自己的,这种是安全自建。
  • 第二级别是租楼,即去租一个房间自己设计机柜,从机构开始,包括综合水电及网络都是自己的。
  • 第三级别是网络是自己的,从机构开始都是由经营商提供,或者是机房服务商提供的。
  • 第四级别是租服务器,就是连服务器都不是自己的,通过去找运营商提需求来配置,很多游戏企业是这样做的。

那自建有两种路径:

  • 一种是早期上云、稳态部分下云。这阶段上云和自建保持一定的比例。
  • 另一种是常量自建,弹性上云。即先有IDC自建,然后增量上云,最后达成一种平衡状态。

>> 如何用好云?

  • 合理规划、精细管控

针对企业业务特性与云业务场景,能够事先合理规划云资源的使用预算与规模,并在申请使用过程中,可以根据规划进行评估与控制。针对具体的云资源,精细控制可用规格配置与使用场景,杜绝过度申请。

  • 多维洞察,识别可优化

提供多种维度详细跟踪云成本,持续分析识别云成本可优化部分,为需求方提高云成本洞察和业务决策的能力,提供从时间、业务系统、部门、云资源等不同视角查看成本分布与消费趋势,成本结构。

  • 中立对接多云

分析多个云厂商、云平台的商务价格与折扣。根据业务形态,综合推荐性价比最优的云服务、云资源。

  • 合理优化、避免浪费

识别未使用或未得到充分利用的资源,并给出合理的优化策略以减少不必要的成本浪费。提供预估优化前后的比对效果,包括成本降低情况、利用率情况,并根据优化策略进行优化。

三、资源流程与职责

团队该如何开展工作?上面有说到FinOps是一个生产关系,即涉及很多个团队,比如业务研发、商务采购、运维管理、云产品管理,还有外部云的接入,包括商务架构 、财务、内审、法务甚至老老板。这么多的团队,工作应该怎么开展?

>> 资源申请与交付的流程

  1. 提出需求:如果一个研发人员想要用资源,应该怎么获取/申请?
  2. 技术评估:如何评估,谁来评估?我要用XX云的XX产品,我会问他几个问题,为什么要用,能否用其他云的,能否用现有产品满足?
  3. 商务跟进/评估:跟进厂商、协商价格、折扣、代金券、测试额度等;
  4. 执行交付:通过云控制台或统一平台交付、配置产品参数、业务参数,并按需交付;

 >> 资源管理者/架构师的挑战:

  • 需要有评估流程,几百个研发,都来要各种产品,比如我用XX云的XXGPU产品。
  • 如何评估,能不能多个供应商,能不能谈判,有没有其他方案。
  • 要比研发更了解,跟厂商做更深入沟通。
  • 研发对价格一般是不知道的,
  • 这云的这个产品 跟 别家云的同一产品,功能特性,架构差异,价格/这块差异,跟现有业务的架构的契合程度。

>> 构建资源管理及成本洞察能力

1.资源成本归集和成本标签

  • 成本追踪:云和IDC资源用量上报,到CMDB模块/成本标签,使用资源组、标签、业务、部门、项目的等维度分类资源;
  • 成本归集:云资源开通后挂到CMDB模块 或 成本标签下;
  • 成本分摊:挂载不了的,如共用SLB带宽用分摊方式,分摊需要确定比例;中型业务,按PCU,按DAU啥的,管理手段就行。

2.建立多维度的资源用量视角

  • 业务层级维度:各个业务的成本洞察
  • 分摊关系维度:某个产品、公共资源的分摊规则和结果
  • 资源层级维度:按产品、资源的观测 、洞察
  • 账单属性维度:按账单计量的多维度的统计

四、GPU服务器攒机降本

下面举个例子来讲讲GPU服务器攒及降本。它的背景是这样的,有很多推理的场景,大几百张卡,在云上,用的T4卡。成本不低,需求数量在增长。希望能找到GPU的降本方案。然后问题调研下来,T4是2018年老卡,新卡也出来了,行业大部分还用T4,新卡的效益也不清楚。首先是不清楚应该用什么卡?厂商新旧没太衔接上,就必须要调研可行性,能不能节省成本。过程中要调研(服务器厂、卡厂、行业、业务调研)选卡、机型设计、技术准备、采购等;考察内部的可运维性,业务的适用性等。这样做的结果就是成功替换大部分,能够节省70%,在低折扣的基础上。

>> GPU卡的定位

如果没有做GPU卡的人,可能不是很了解,要调研才清楚。

当前英伟达Amper架构的新卡主要是A100(80G),A30,A16,A2,A40,

A10:可替代T4卡,供应形势不确定,曾停止接单

A30:针对轻度训练和推理场景,介于A100和V100的中间性能的GPU卡

A40 :主要替代之前的RTX6000和RTX8000,针对图形渲染的场景

A2:边缘场景,针对推理、渲染,物理规格和T4一致,T4卡的70%性能,价格低很多,性价比比T4卡更好

A16:主要替代M10,针对虚拟化场景

A100(80G):主要替代之前的V100和A100(40G),针对高性能计算场景

单个卡对比,inference大部分场景下:

性能:A30的性能是A10的1.3 ~ 1.7倍左右,A30的功耗跟A10差不多

价格:1.4倍左右,

供应:主推A30,A10 供货不好说。

>> 选卡:官方升级

 T4升级为A10、A16、A30都可以。A16是图像视频卡,是一个非推理场景。A10政策不确定,变化比较大。重点是A30市场上比较少。

 上图是卡的参数,可以关注卡的功耗、算力。新一代卡,了解视频解码器,它没有编码器,这个都是和音视频的关系比较大的特性。功耗上升了一倍多,这个在服务器成本里面其实是要考虑的。算力的一个对比,那也是需要去关注的。

 了解清楚卡的参数后,可以做一些业务通用的测试,就是用通用的一些模型去做推理。那通用的场景做业务测试会关注很多指标,比如选存、GPU及对速度还有业务在各种程序里做一些收益测算。

要综合的考虑,不限用FinOps,因为不只是云的优化,应该打开思路,打开视野,从整个业务资源的视角,或者从整个供应链,甚至从整个经济的视角去考虑怎么用高效的方式去支撑业务的发展。

五、CPU算力降本思路及小案例

其实讲cpu的优化,或者说算力的优化,业界已经讲的很多,这里面讲的最多的其实就是CPU代差、计费方式、https带宽、存储回源带宽 。

>> 算力优化的通用方法

一般方法是缩容降配:缩容减少数量、降规格减少浪费、压榨利用率、升级新一代机型、部分下云、利用边缘机房、利用偏远算力。

高级点玩法:弹性扩缩容、潮汐调度,被动弹性,预测弹性,一键扩缩,混部提升复用即在离线混部/错峰混部,容器粒度,跨业务混布

>> 你选的规格合理吗?

 为什么提出这个问题?因为很多公司可能会把云主机或者云上的资源当做物理机来用。有可能两年前申请的没有出问题就一直在用着。可以想一想,可能在两年前它的这个弹数,就它的cpu的规格已经是很老的。这个规格还没有升级到最新的?比如我发现云上某两个主机的历史价格比最新一代的还便宜些,占比是88%,性能是1.7倍,可以想一下这里面的收益有多少。

所以在申请主机的时候,不要只关注的核数或者频率。它的cpu的代数升级也会带来比较大的性能收益。

>> 算力成本优化:选择云机代数

  • CPU型号小知识
  • Intel Xeon(Ice Lake) Platinum 8369B
  • Intel ® Xeon ® Platinum 8269CY(Cascade Lake )
  • Intel ® Xeon ® Platinum 8163(Skylake)
  • Intel ® Xeon ® E5-2682 v4(Broadwell)

>> 算力成本优化:选择计费方式

选择不同的计费方式,它的成本差异还是很大的。

 这里列了几点,你看同样一个机型和规格的主机都是包年包月,但是成本差异还是比较大的,如果调度能力能跟得上,其实是可以去用好这种计费方式来节省成本。

举个例子,某个业务,白天一部门使用一批资源,晚上另外一个部门使用另外一批资源。不同时段对资源需求不同,包年包月资源有近一半时间是浪费的。那有两个方法可以解决:

  • 方法1:节省计划搭配按量付费,切换后总成本降低42%。
  • 方法2:通过技术实现混布,用同一批资源。

六、Finops成本管控方法

下面讲一下成本管控的通用方法。

>> 成本优化通用方法

其实成本优化最简单的优化思路就是成本等于用量乘以单价。那优化成本有两个思路,一个是减少用量,一个是降低单价。

减少用量有很多运营优化的方式,包括降数量,利用率,价格优化,资源价格以外都能够减少用量。第二个方面是用更低的资源成本,要么让商务去谈更低的价格,要么是找到更低价格的资源来降低单价。那更进一步的方式是结构性的变化,就是用不同的资源来满足通用的需业务求。

减少用量,提升资源效用

  1. 效能利用率:减量/降配提升利用率,降低资源冗余,充分利用算力、网络带宽、存储空间等
  2. 时间利用率:资源混布,在时间维度上充分利用资源
  3. 弹性:只在业务容量需要时申请资源
  4. 利用新技术:如p2p、AI画质;
  5. 改进架构减少用量,如流量走内网、增加缓存减少带宽、减少计算;

降低单价,用更低价资源

  • 同样的资源,用更便宜的,比如不同云的同类产品,同一云的不同规格的产品,或自建IDC服务器;如OSS的低频存储;
  • 同样的资源,用更低价的计量计费方式,比如95计费/流量计费,包月/按量/抢占/RI/SP/资源包等
  • 议低价:利用可迁移架构,利用多云、保持议价能力
  • 用不同(更高效低本)的资源
  • 升级CPU、升级GPU、网卡、磁盘等。案例:升级GPU机型,一台换多台
  • 服务器升级多种部件,一台顶多台。

>> 资源成本优化思路

怎么去优化成本,降低成本,有几点建议给大家参考。

  • 第一点是从业务的维度,可以做全链路的优化,如业务从CDN到LB到算力、存储、中间件、数据库,看哪个产品是不合理的,可以优化的。
  • 第二点是从纵向的专业的角度来看。从技术组件做全局优化,如所有算力、存储、宽带等专项优化。
  • 第三点事多云议价能力,提升对不同云厂商的议价能力。
  • 第四点是用好资源优化,如优势产品,很难自己做的,如BGP LB、大规模CDN、AI等。

>> Finops建设思考

  • 组织建设:建设Finops小组,可以是虚拟的,增强对资源、成本、业务架构的专业性
  • 流程规范:构建以业务/应用为主体,包含资源、成本等管控流程,合理评估合理使用、预算和配额控制
  • 成本洞察:立体的,按业务、按资源、成本、用量、利用率,深入研究各类资源、各类业务的成本结构
  • 成本优化:对各类资源的使用效用、结合业务进行全链路优化,深入研究梳理可复制的优化方案

七、Q&A

Q1:如何降低云成本?

张观石:成本优化最简单的优化思路就是成本等于用量乘以单价,减少用量或者降低单价。那具体怎么去做,要结合企业的具体情况来讲。比较简单的方式,其实就上面讲的减少资源的数量,或者降低它的规格,这比较容易把整个资源的利用率给提升上来,这是一个最简单的方式。

第二点比较简单的就是从商务上要用低价的,用不同的计费方式,用不同的资源,不同级别方式的资源。通过调度的方式去做,这种方式也是可以做得到的。

Q2:5%是怎么算出来的?请问案例中的成本是如何算的呀?如单用户的服务器带宽成本。

张观石:从案例的数据来讲,它是一家券商从他的财报里面去分析出来的,这不是我们内部的一个数据。这个数据对咱们做资源来讲,应该是有这样的数据的,首先你营收从公开或者从内部都能够拿到成本,IT的支出的成本应该是知道的,这个数据应该比较容易获得到5%。单单用户怎么来算?有很多种算法来算,主要看哪个是比较适合公司业务的。有些是从pc来算,就是单个pc成本是多少?或者按照MAU miu的方式来算,就人均成本是多少或者单笔订单的方式来算,它的成本是多少?就是把、把成本和业务量给结合起来。

Q3:资源利用率有时候不太好统计,特别是业务发展到一定程度不同业务部门消化云咨询的方式都不一样,那老板想看详细统计结果,有什么比较好的处理方式呢?

张观石:统计利用率其实是比较重要的一个工作哈,因为它是成本洞察的一个基础,跟我们可观测性的关系也比较大。单台服务器的利用力,我相信在每个公司都有通过监控数据来汇总。我们公司或者全平台或者是要分级的维度的这种方式来统计它的利用率的话,这需要有个算法,但这种算法可以用很多种口径来讨论就都可以,只要公司内部能够达成一致,我觉得就是一种方式。还有一种更简单的方式,就是你把利用力分档位,哪些是属于高涨,哪些属于空载的服务器,你把它列出来数量比例,这是一种简单的管理方式。

Q4:私有云如何费用化?如何将私有云成本分摊出去?那私有云费用化有没有好的落地方案呢?

张观石:我理解它是私有云成本的分摊的问题。如果你要做私有云的话,或者你要做FinOps这个事情就能分摊,也是一个比较重要的工作。基金会他们提出一个点,就是你的所有的成本都要分摊出去,分到各个业务上面去。那具体怎么分摊呢?有几种方式,其实不只是私有云,也包括公有,有这种方式需要去考虑怎么去分摊,怎么去挂靠到各业务团队。一种方式就是打标签的方式,就是像公有云一样,我每个资源都要挂一个业务标签,挂在这个标签下面去要通过标签的方式来聚合,能够归集我们的成本。还有一种方式就是通过cmdb的方式去挂载。因为cmdb可以说是跟我们业务是对应的,你把所有的资源都挂靠在cmdb上面,挂靠归集的方式能够去统一起来。

这篇关于精耕细作的运维资源成本管控方法-互联网企业的Finops思考与实践的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/402077

相关文章

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

浅谈主机加固,六种有效的主机加固方法

在数字化时代,数据的价值不言而喻,但随之而来的安全威胁也日益严峻。从勒索病毒到内部泄露,企业的数据安全面临着前所未有的挑战。为了应对这些挑战,一种全新的主机加固解决方案应运而生。 MCK主机加固解决方案,采用先进的安全容器中间件技术,构建起一套内核级的纵深立体防护体系。这一体系突破了传统安全防护的局限,即使在管理员权限被恶意利用的情况下,也能确保服务器的安全稳定运行。 普适主机加固措施:

webm怎么转换成mp4?这几种方法超多人在用!

webm怎么转换成mp4?WebM作为一种新兴的视频编码格式,近年来逐渐进入大众视野,其背后承载着诸多优势,但同时也伴随着不容忽视的局限性,首要挑战在于其兼容性边界,尽管WebM已广泛适应于众多网站与软件平台,但在特定应用环境或老旧设备上,其兼容难题依旧凸显,为用户体验带来不便,再者,WebM格式的非普适性也体现在编辑流程上,由于它并非行业内的通用标准,编辑过程中可能会遭遇格式不兼容的障碍,导致操

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

【北交大信息所AI-Max2】使用方法

BJTU信息所集群AI_MAX2使用方法 使用的前提是预约到相应的算力卡,拥有登录权限的账号密码,一般为导师组共用一个。 有浏览器、ssh工具就可以。 1.新建集群Terminal 浏览器登陆10.126.62.75 (如果是1集群把75改成66) 交互式开发 执行器选Terminal 密码随便设一个(需记住) 工作空间:私有数据、全部文件 加速器选GeForce_RTX_2080_Ti

【Linux 从基础到进阶】Ansible自动化运维工具使用

Ansible自动化运维工具使用 Ansible 是一款开源的自动化运维工具,采用无代理架构(agentless),基于 SSH 连接进行管理,具有简单易用、灵活强大、可扩展性高等特点。它广泛用于服务器管理、应用部署、配置管理等任务。本文将介绍 Ansible 的安装、基本使用方法及一些实际运维场景中的应用,旨在帮助运维人员快速上手并熟练运用 Ansible。 1. Ansible的核心概念

【编程底层思考】垃圾收集机制,GC算法,垃圾收集器类型概述

Java的垃圾收集(Garbage Collection,GC)机制是Java语言的一大特色,它负责自动管理内存的回收,释放不再使用的对象所占用的内存。以下是对Java垃圾收集机制的详细介绍: 一、垃圾收集机制概述: 对象存活判断:垃圾收集器定期检查堆内存中的对象,判断哪些对象是“垃圾”,即不再被任何引用链直接或间接引用的对象。内存回收:将判断为垃圾的对象占用的内存进行回收,以便重新使用。