其实,成本、效率和稳定性方面,这三块是不可兼得的,这是一个不可能的三角形。所以我们努力在这个成本,也就是利用率,稳定性,用户体验,还有效率,就是我们迭代速度之间需要去寻求平衡。我们要不要限制变更来寻求稳定性,那如果业务的首位跑高了,是不是稳定性就没有?是不是这个稳定性就没有提升空间了?那我们的资源的这个水位上了以后,是不是一定会对稳定性会带来威胁等等,都是会挑战业务,然后在这里面会去寻求一些平衡的点。那便宜的资源实际上都是不稳定的,不稳定的资源,需要更多的运维和更多的上层应用的高可用的一些保证,没有完美的资源配置,只有最适合当下的方案,对于一个具体的业务来说,成本其实并不是全部,那业务它还面临着其他的稳定性和业务压力,然后它的人也是有限的。所以需要从更大的一些视角去进行取舍,所以并不是推进这些降本的动作,或者是去追求成本,还是追求稳性,还是追求效率,实际上我们会跟着业务一起商量去选择,并不是在每次的取舍中都会去选择成本。
资源运营:资源的全生命周期管理
前面提到过资源,我们要做全生命周期的管理,那么公有云的云主机,我们会结合利用率监控,混合利用我们的混合云平台以及供应商的账单数据,我们会去看其中不合理的一些冗余的用量,以及不再使用的资源要及时的去推进。比如,我们在实际做分析资源的过程中,发现实际上就是因为以前的平台或者是系统的不完善,有很多的业务,它清退了云主机以后,也并没有清退负债均衡实例。那么这些实例,在线上残存了上万个负债均衡的实例,而每个实例,实际上也都是要收费的,这就是一个很典型的就是业务没有及时清退和缩容的一个例子。
那对于云服务,我们会做一些资源巡检,如果发现没有人认领或者是没有清退完全的资源,例如闲置,没有挂载,但是仍然在计费的云硬盘,还有一些历史悠久的快照等等,我们会定期公示出来,并且去联系业务,然后一起去做推进清退的一些动作,还有就是IDC的服务器,对于一些利用率极低的服务器,我们会把它纳入到容器的资源池里面去,尽量的去让它做容器化并且接入混部。
最后总结一下,就是通过落地的这个闭环数据洞察资源优化和成本优化和运营优化,最终我们能够达成在业务增长的情况下,成本不增长。22年的时候是业务增长达成了,成本不增长,甚至还做的更好。
PART3:Q&A
Q1:有没有好的开源工具,支持国内的云厂商的成本可视化。
叶翠:这块就是我了解到的是一些大的云厂都会提供一些FinOps的工具,一般会集成在账单中心里面。那B站,我们自己实际上是一套自研的成本系统,然后外加阿里云提供的一套云资系统,这套云资系统它会去兼容到各家云,然后所有云上成本在这套云资系统里面,自研的这套系统会结合到云上的成本和我们自建的Idc的一些成本。所以目前是没有看到,开源的一些产品。
尚梦宸: 我们也讨论过这块,确实相关开源工具是比较少的,可能更多的,就像咱们这种,是自以为主。在国内来看开源工具也是比较少的,可能更多就是我们自己去建一些这种,根据我们自己企业一些情况去做一些资源的管理工具,然后去适应我们自己的企业内部的一些情况。
Q2:如何预测带来的这个收益?
叶翠:我们的成本实际上等于单价乘以用量,所以收益来自于两个方面,一个就是单价的降低,另外一个就是用量的降低。那单价的降低,可能是采购谈判更低的折扣,或者是切换到更适合的一些计费方式,或者是切换了根据性价比的这种产品。那用量的降低,主要就是资源利用率的提升,或者是资源的混部复用以及资源的及时清退,其实就是我们在预测收益的时候,就是从这两个因素去考虑,基本上就能够计算出来。当然了,这个并不一定是完全准确的,因为实际上我们的这些收益也夹杂着业务的持续波动,那我觉得大家在做收益预测的时候,需要将项目的时间风险考虑进去,就是不要满打满算,给自己留一点余地。
尚梦宸: 我想补充一点,就是从建设来说的话,叶老师说的可能就是一些具体的。从技术角度或者说从我们管理角度去做一些实践的一些方式,那我想就说的一点就是可能没有提到的,就是这个理念的这个事儿,因为就是说它其实一方面是说我们从技术手段怎么去管理我们的资源呢,其实还有一方面就是说怎么把FinOps的理念文化去传递给我们刚刚提到的这三类人员,包括管理人员,财务人员以及我们的业务人员。把这个理念如果给大家去贯彻到以后,比如从业务人员角度出发,那他可能再去做需求的时候,可能就需要考虑,实现这个需求可能需要多少资源,这个资源可需要花费到多少的成本,怎么去把理念贯彻到的不同人员,让他理解这个事的意义,在日常工作中,就会把这个理念就是潜移默化的,带到工作中来,从而更好的去帮助企业降低成本。
Q3:如何设计可信的成本模型体系?
叶翠:从我的观念来看,设计一个可信的成本模型,它的前提基础是你对业务需求的理解,对业务技术架构方案的了解,以及你对底层资源的了解,就是在这个基础之上,你可以基于你的技术方案确定你需要的一些资源的类型,然后你可以基于你的压测的数据,或者是历史的一些容量数据,去确定你需要的资源数量,这样就能形成一个资源清单,然后补充单价,这样就完成了整个的这样一个成本的模型。其实可信的关键点觉得,一是技术方案的可行性,需要有验证或者是灰度的这样的一个过程,二是资源清单里面不要有遗漏,这块儿实际上是可以基于就是你对业务了解,或者是对历史账单的分析去做一些查缺补漏。我们曾经就遇到过,一个项目因为它里面遗漏了某一类的某一个资源的一个计算,然后导致这个项目本来应该是一个cos大的项目,最后实际上使得这个优化的效果大打折扣,因为最后有一类资源,实际上支出还是比较大。所以,实际上是可以代入历史的一些数据,做一下验证,这样的话,能够让你整个成本模型会更加的靠谱一些。
Q4:实际成本治理未达成目标的过程中,最难的是什么?
叶翠: 就以我的经验最难的实际上是推动业务的配合,因为业务它是有自己的业务目标的,它的业务目标很可能跟你的一样,那怎么样去推动业务去配合你优化,然后协调到对应的人,以及在业务的策略上怎么样能够让他考虑到这些。众所周知,B站是一个不赚钱的这样的一个还在处于亏损的业务,且B站的这些主站的这些业务,实际上既然不挣钱,也就很难去衡量。
Q5:对账之后不是会导致账单波动吗?这个事怎么解决?
叶翠:对账之后导致账单波动,对账基本上就是一个账期结束了以后才会对账,基本上不会有波动,但是会对于这个账期,我们一般是一个月对这个账期的里面的资源的这种情况,就是会看看数据核对是不是真实的,是不是实际的资源情况。如果说业务有质疑的话,那么大家去进行协商,最后去修改这个账单,所以对账的过程,实际上就是账单的review和确认的过程。
Q6:应用及数据自然增加(大数据,数据库用量自然增加)业务没增成本增加如何解决?
叶翠:业务的用户没增长,它的场景可能会变复杂了,或者是说它的这个策略上面,有一些其他可以优化的地方,那么导致它整体的这个数据量增长,所以像大数据这块儿,公司也可以看到我们公众号里面分享的文章,我们公司是有一个书委会这样的一个组织,书委会会专门推各个业务去做优化。书委会会从最底层的就是数据存储,一直到上面的这个数据,根据数据,它被读取访问的一些频率,推动大家去做一些优化。