2023年2月28日,由优维科技联合FinOps产业推进方阵举办了第1期「UGeek大咖说-极致用云·共济FinOps」线上直播活动,来自中国信通院及美图公司技术专家共同带来了一场精彩的技术视听盛宴。


直 播 背 景


目前,许多以“上云”为数字化转型路径的企业正面临着严重的云上超支问题,因而“成本优化”成为企业上云的核心关切。为了让上云变得更加划算,一个新名词“FinOps”诞生了。FinOps是解决云原生成本问题的一整套方法论,其核心是希望确保企业在云服务中花费的每一分钱都获得最大的价值,不花一分冤枉钱。

 

但是,该如何打造FinOps管理云资源,提升云资源利用率,让钱花在刀刃上,需要企业和IT技术从业者持续探讨和互相学习。

 

基于以上背景,优维科技联合FinOps产业推进方阵召开了此次“UGeek大咖说-极致用云·共济FinOps”直播,就是为了让更多技术工程师了解到FinOps是什么,能够干什么,对业务的价值,以及其中的技术难点和相应的落地方案。


接下来,将带大家共同回顾本次直播活动的主要内容。分为上下两篇,此为下篇!


直 播 回 顾


2美图公司FinOps探索的那些事——吴旭星


美图公司运维技术专家吴旭星,在此次直播中集中介绍了FinOps相关工具的建设,重点是从成本决策中心入手,分享了美图公司的FinOps的探索之路。


>> 为什么会落地FinOps?

 

美图作为一家以美为核心的科技公司,产品线非常丰富,产品架构比较复杂。而随着产品线越来越丰富,产品越来越复杂,成本也随之直线上涨。在这种情况下,公司控制成本的意识逐渐加强,并在公司层面得到大家的一个确认,因此在成本意识上再拔高了一个台阶。


再之,近年来公司业务全面上云,搭建一个成本决策中心迫在眉睫。如何更好的接入多云?如何更好的实现成本分摊?如何更好的推进利用率以及成本优化?如何更好实现成本分析?......成为美图公司建设“成本决策中心”的目标。2022年,美图公司开始正式接触FinOps,然后开始以FinOps的理念来做相关的成本优化的推进。


>> 美图是如何落地FinOps的?


在搭建成本决策中心之初,在成本管控、效率、稳定性、平台一体化四个方面设立了建设目标。整体的话就是一个成本管理的系统,主要是拿来做成本分析和资源优化的决策辅助工具。


整体核心模块的话主要集中在围绕与产品数为基础上的一个系统,主要涵盖分摊引擎、成本报表、资源分析、成本预算、成本告警、成本管理。而成本决策中心的建设就是围绕“产品树”来设计的。



>> 产品树是什么?

 

在很多公司里面,大家可能会叫服务。我们这边的话就叫产品树。这一部分的话主要是围绕这一棵树去做相关的一个场景化落地,比如我们可以去打造自己的原数据,还有流程引擎等。最后发展的话,可能就会是C M B B,或者是C P的一个模式。之所以我们叫做产品树,主要是为了进一步解决成本归一的一个问题,因为毕竟我们对公司的一个业务有所了解,才能更好的开展工作。

在我们的一个产品树里面,我们是有相关的一个节点,这些节点的话实际就叫标签。我们这里的话一共是分为三级:第一级的话叫产品线,第二级是产品,第三级是服务。因为公司的一个整体业务比较繁多,然后市级的一个部门也比较多。然后在这一个产品树的一个推进中有一些相关的一个技巧的,然后我们这里的话主要是引入了PMO,按照项目管理的一个机制来快速的落地相关的一个方案和结果。

 

>> 成本项与分摊规则

 

在产品树建立完之后,其实我们需要去做的第二件事情的话就是成本项与分摊的一个规则。

>> 成本项是什么呢?


就是说,主要是成本项是考量的,是我们成本支出的一个对象。比如说我们是自建的idc机柜、服务器带宽...这些东西的话就是我们的一个成本项。如果我们是上了公有云,那这个时候,公有云的话就是我们的一个成本项,然后还有像cdn、专线...如果这几个大类都没办法去做相关的一个归集的话,那你这个时候的话就可以用一个其他来表示,比如说一些乱七八糟的一个成本,它不是特别多的情况下,你就可以把它放到其他这个大类里面。这里面展示的话都是一个一级成本,二级成本的话,就是在一级的成本的一个情况下,它还得继续向下划分,比如说像公有云里面,你可能有阿里云,腾讯云。或者是华为云,这一个的话就是抓大放小,然后一级一级的往下沉淀的一种方式。

 

其次,成本项的一个分摊规则的话,我们都是以定性或者定量的规则量化,我们可以按照算力的大小,或者是请求处的请求数的一个次数,还有或者是带宽的一个大小,按照实际的一个成本项的一个收费因子,确定好分摊子被分摊子还有占比占量的一个关系,去做相关的一个成本计算。

 

>> 成本分摊引擎


分摊引擎的整个模块设计,主要是涵盖了三大模块:数据预处理、分摊以及账单发布。数据预处理这一部分的话,主要是一些成本月的账单建立,多云账单的下载,以及分摊策略的数据同步与校验。其次,分摊这里的话是有市级的一级分摊,二级分摊还有三级分摊,以及分摊结果的校验。这一部分为什么设计的这么复杂?其实是为了更好的去查看我们产品成本数据的支出情况,以及成本数据的流向,这样子的话,方便业务去做相关的成本优化。


>> 成本分摊引擎对接方案

成本分摊引擎,它的整体的对接方案是这样子的,就是说外部的一个平台或者系统,它会去自定义这个分摊规则,比如说我们一些中台类的业务或者支撑类的业务的一个成本,通过api上报的一个方式,把这一个分摊规则的一个数据上报给分摊引擎,分摊引擎这边的话,接收到这个数据的时候,它会去做数据的一个分类分摊规则的管理,然后分档规则它会把它应用到具体的一个项目,也其实就是我们的一个标签,再根据不同的产品标签的一个分摊占比计算成本,最终输出我们的一个成本报表。

 

>> 分摊定义



如何去确定分摊的一个定义?这里的话总共是分成了两种类型,四种维度来定义分摊。第一种类型是基于产品标签的分摊,另外一种是基于利润中心的分摊。四种分摊维度:


  • 一次分摊,根据资源的一个标签分摊成本。比如说,你在云上申请了一个资源,这个资源你在上面打了一个标签,然后你在账单里面的话就有对应的这一条账单记录,根据这一个标签去做相关的一个成本归集这种方式就叫做一次分摊。

  • 二次分摊,在标签分摊的基础上,对公共服务成本再次分摊。该分摊的话由公共服务提供分摊比例,结合标签分摊算出具体的成本,将成本分摊给具体的一个消费业务。

  • 三次分摊,在完成多次分摊的基础上,针对部署在公共服务上的公关服务再次进行分摊。该分摊由公共服务提供分摊比例,结合多次分摊后结果,将成本分摊给消费业务。

  • 利润中心分摊,在标签分摊后的成本的基础上,各个标签的成本按照工时、MAU、收入等规则,按成本单元进行成本归集。


>> 分摊规则


下面重点讲解一下,主要是大家在做成本分摊的时候可能会遇到的一个问题,就是说这个分摊规则要怎么去做。其中一个非常典型案例是,公有云上VPC的带宽包在无法打标签的情况下应该怎么分摊。


• VPC带宽分摊


带宽包的话,它其实是一个很大的资源池。这个资源池,你是没有办法知道到底是给谁用的?最少在这一个账单里面,你是体现不出来这种东西的,但是这个东西你要怎么去做呢?我们这里的经验的话就是会去分析自己一个带宽包整体的一个组成,比如说它是nat的,还有E L B的,还有云连接的一个带宽。然后再根据这三个维度中的一个带宽,我们再去做进一步的一个细分。

 


• OBS带宽分摊


另外一个的话就是O B S的一个带宽成本。OBS这部分的话主要是体现在一个套餐包。OBS带宽分摊 OBS的套餐包无法知道被哪个Bucket使用。


>> 利用率与优化推荐


在做完分摊规则后,接下来就是要让大家知道业务的支出情况,在去做相关的数据优化。

关于利用率这部分,当前是只做了E C S和B M S。资源分析这一部分主要涉及利用率的概览、利用率详情、资源的优化建议。


值得重点关注的是,利用率概览中的利用率分布这块总共分了三个等级:高利用率、低利用率、中利用率。其中,


  • 大于等于60%,属于高利用率;

  • 低于30%,属于低利用率;

  • 大于等于30%,小于60%,属于中利用率。

 

当时,我们推出利用率与优化推荐这部分的主要目的,实现基础利用率的可视化,然后要整合当前最基础的一个数据,比如cpu内存等等通过产品标签的维度进行统一的查看。第二个目的话是要打通Mcc到监控平台的链路,然后在可视化的基础上,将优化和建议给到相关的业务团队。



在整体的功能规划里总共是分了以上四个阶段。这个四个阶段的话,也就是从低往高,它的难度是逐步增加的,也就是说大家在一个建设的过程中,可以根据自身的一个情况,去做相关的一个考量。


今年,我们公司内部把FinOps作为公司级的一种实践,会成立一个具体的虚拟小组,来落地实施FinOps。在落地过程中,主要做两件事情:


第一件事情的话,就是如何去做相关的一个成本优化的流程落地。各个业务部门,各个岗位应该做什么?如何去做?这是流程的问题。在流程梳理完成之后,再把它沉淀到相关的系统,然后在这个系统下面,大家可以发起各样的流程去做相关的运行。最后,在这样一个实践的模式下,梳理出我们这个月优化了多少钱?今年优化了多少钱?目标是否达成?


3Q&A问答环节


Q1:启用FinOps体系的必要背景是什么


吴旭星:针对这个问题,你得这么看,就说我们应该怎么去落地?它落地的时候,应该有什么样的一种契机?首先的话就觉得你必须要有个契机,然后有相关的一个支持。比方说你的it的运营成本的支出非常高了,然后需要去优化,又或者说你每一年在做相关的一个服务器的采购或者成本需求的时候,你不知道怎么计算的时候,你这个时候就应该得去做相关的一个系统去度量一下,你这个成本应该怎么去做,在这种情况下你就需要去了解一下FinOps了。第二就是先规范化,先流程化,最后再去做相关的一个系统化。这一部分的话其实跟我们去做D V O的情况其实是一致的。


Q2:成本系统该如何入门,要配哪些角色?


吴旭星:它的一个入门的话,首先就是你已经感受到了你的成本已经需要去优化了,那这个时候你就需要去做了。按照我们的一个经验来看的话,就是你要做好相关的一个规范,就像我们刚才说的,你要知道你的一个成本开销到底是什么?然后到底花费在哪里?你的资源采购是不是有问题?采购的成本是不是过高?这部分的话是需要我们前期去做相关的一个梳理的。

至于说要配多少人,比如我们在建设成本系统的时,是以虚拟小组的方式推进的。在人员配备方面的话,主要是看公司的一个规模大小。按照实际的一个情况具体分析,落实我们当前的话是七个人去做相关的一个推进。有一个的话是项目的一个总负责人,他主要是负责我们统筹项目的规划以及推动。然后有产品,产品的话,负责相关的一个产品规划。P的话赋值我们的一个项目。管理的一个内容和跨团队的一个沟通。还有的话就是后端后端这部分主要是负值统筹项目,技术架构设计,还有它的一个实现。这里的话主要是两人,因为你需要api部分,还有分担引擎部分。然后前端的话,其实根据实际的一个情况合理安排,一般的话一到两人就够了。到了后期,比如说你在前期的一个快速迭代到后面的话相对稳定的时候。前后端的一个人员就可以。还有的话就是我们还需要测试,因为我们的一个成本的话,你需要有一个准确性,你如果一个逻辑有问题的话是非常会非常大的,所以有测试人员的介入是非常有必要的。


Q3:使用哪些工具或平台来推进FinOps?是找外面的服务商还是自己做,自己做有哪些基础的要求。


吴旭星: 首先第一个是成本管理,第二个就是资源管理。那像这一部分的话,其实在市面上的话,它是有一些商用的一个产品。比如说据我了解的话,就是说阿里云的话,它有一个云校。它这里面的话它会整合,像资源管理还有一个成本计费,但是他在分摊这一部分的话,他是没有办法去做精细化的一个运营的。然后还有像华为云,腾讯云,它其实都有自己的一个后台,后台向上面的一个相关成本分析的话,它都有一定的一个能力,其实是能满足。


比较就是中小公司的一些分析的需要。如果上升到集团或者是更大的一个层面,你需要去做更精细化的一个成本管理的时候。我的看法还是说你需要自研。然后你应该想想如何去借助公有云现有的一些能力,比如说你把一些涉及到流程类的或数据比较隐私的这部分你可以沉淀到自己的一个平台上面去做或者定制化的沉淀到自己的平台去做,然后。其他的一些比较公共的一些数据,你可以利用公有云的相关数据去做相关的一个加工,这样子的话是可以进一步降低我们的一个开发门槛的。


Q4:成本决策中心的组建和工具搭建以后,投入产出比如何?一共投入了多少人做这件事,成本节省上的显著效果可以分享下嘛?


吴旭星: 可以的。我们是从2020年开始投入的,总共是七个人。到目前的话,只剩下后端、前端、测试、产品四个人。也就是说四个人已经是能够去做相关的产品迭代。然后成本节省这一部分的话,每一个账单月出报表的时候,我们都是会去做相关的成本分析,去分析每一个业务的成本开销情况,以及运营情况。比如说你这个月广告是否投多了,投多了之后你这一个相关的业务成本是不是上升了?又或者是你有上了什么新的功能?那这一部分的话,通过相关的成本分析,在我们这一个系统上面都是能比较明确的体现出来的,然后可以及时止损。具体说节省多少钱?这还是非常可观的,我就是简单透露一下的话,其实是能有10%左右的。


Q5:年度预算维度,依托现有的成本平台有什么推导经验介绍吗?


吴旭星:年度预算这一部分的话,首先要跟财务部门沟通好,比如说他们的一个预算的一种工作模式,到底是怎么去做的,然后根据相关的一个需求,把这个场景落地到成本平台上面来,也就是说你需要帮他们去开发这一部分的一个工具和平台,让他们在这个平台上面去玩。这是我们去落地的一种思路。然后如果你拿不到这一个预算的一个数据,我们也依然能去做。怎么去做呢?就是说自理部分的话,可能就是财务部门他可能不会去介入,但是财务部门不去介入的话,那你实际上在整体的一个推行的话会有不太好的效果,因为你实际上有些事情需要其他部门去帮你去做,而不是由技术层面去。怎么去做呢?就是说比如说你可以根据你上一年的一个成本开销的一个情况,以及今年相关业务的迭代需求,比如说你今年会在哪个地方发力,然后你大概会有多少的一个投入,比如说你投入某个功能,他可能会一个爆量,它会是一个爆炸性的增长,然后你再结合你以前相关业务的一个压测数据,你能知道每Q ps到底是花多少钱?根据质量的一个度量数据的话,你就能去大概计算,你今年应该大概会消耗多少钱,然后根据这种信息的话,你可以大概的去给自己拍一个预算的数据,拍完了之后,再去做每个月的一个扣减,比如说你这个月花了10万块钱,那你开始的时候是100万,那你剩下90万,那在后续的一个业务,它申请资源的时候你都可以去做相关的扣减,能提醒他你这个接下来剩多少钱,你应该怎么去注意你这一个成本的开销。


以上就是关于「美图公司FinOps探索的那些事」分享的全部内容啦!如果大家对FinOps感兴趣,可以关注添加鹿小U(微信号:Uwin-Technology)为好友,进入技术交流群,跟技术小伙伴们一起讨论哦!



原版PPT和视频获取方式:


进入「优维科技UWin」公众号

回复关键词「美图/FinOps」

根据提示获得原版PPT和视频资料


- end -