企业面对FinOps,到底能做些什么?总结了4个方面

简介: 本文主要介绍企业在实施云成本管理和优化(FinOps)的动作中,都可以做些什么,以及云联壹云对于Finops可以提供哪些支持。

之前花时间研究了一下云成本管理和优化,算是有一些收获,我今天把这些分享出来,算是抛砖引玉了,如果有朋友有更好的方法或者好的文章,也欢迎推荐给我们。

一、头脑风暴:云成本优化的方法有哪些?

首先,我们看一下,在企业说要做云成本优化的时候,我们都能够做什么?
f1.png
如上图所示,我们所有的行为分为 4 大类,分别是可见性、使用效率、定价效率、控制。

1、可见性

可以通过系统或工具,把公有云账单和业务资源使用情况关联起来,做到及时(延迟尽可能做到 12 小时至 48 小时之内)查看账单数据或者图表展示。例如可以随时查看近一周的某个组织、某个项目、某个标签的消耗,都消耗了哪些资源等等。

2、使用效率

这个模块可以做的很多,但需要投入的人力成本也比较大。

闲置资源:包含 2 种,一种是可以独立使用的资源使用率长期低于 1%,例如闲置的虚拟机实例、闲置的 RDS 实例、闲置的负载的实例等,这种资源一般可以做回收再分配或者直接释放;另外一种是不可以独立使用的资源,这种资源一般需要依附在可独立使用的资源之上,例如未挂载的硬盘、未挂载的公网 IP 、未关联的 https 证书等,这种资源一般可以直接释放。

超配资源:这种资源相较于闲置资源来说,它有负载,但是使用率长期较低,例如使用率长期在1%~30%之间,这种资源可以在不影响业务的情况下,降低它配置,以节省成本。一般来说,负载或使用率提升一倍,可节省的成本要超过 50%。我们某个互联网客户,在实施 FinOps 之初,只关注业务对应的平均 CPU 使用率,在保证业务安全运行的情况下,制定指标涨一倍,节约成本近 60%。

定时关机:某些按需付费的资源,只有在工作时间内使用,其他时间都是空跑,这种也会给企业带来成本浪费,例如某些按需使用的开发资源、测试资源等,不仅是常用的虚拟机,其他的资源类型也会存在这个问题,常见的比如 RDS 实例等,这些资源都是可以通过定时关机来降低费用,我们假设资源每周使用 5*10 也就是 50 个小时,其他时间关机可节约 70%。

启动参数:现在的公有云已经非常成熟,虽然是同一款产品,但是在不同的场景下,它的启动参数(创建参数)也会有所不同,当然,带来的收益也是不一样的。换句话说,一种场景如果使用了不合适的启动参数,它所带来的成本也是天壤之别的,例如虚拟机光实例类型就不下七八种,同样是 8 核 16 G,最贵的和最便宜的相差 10 倍。而且更恶心的是,同一款产品,不同的公有云,启动参数也不尽相同。这种资源就需要深入了解公有云提供的产品特点以及企业的使用场景做出合理的选择,才能很好的规避成本浪费。除了这种比较有深度而且耗时间研究公有云产品的方法,还可以及时关注或者参加公有云厂商每年的大会(例如 AWS 的 re:Invent、Google Cloud 的 Next )来获取高价值的新功能,一般这种重量级的会议公布的一些亮点功能,会大大的降低成本的同时提高用云的质量。举个例子,Google Cloud 在 2022 年的 Next 大会上公布了其在对象存储(Cloud Storage)的新功能 autoclass,该功能旨在用户无需理解不同的存储级别,只需要使用 autoclass 就可以自动将不同读取频率的文件设置相应的存储级别,进而达到节约成本的目的。当然,像这种还有很多,例如在创建 k8s 集群时,可以选用 spot 实例来承载容错率比较高的业务进而节省超过 50% 的成本。

架构优化:架构优化有大有小,大的比如说从传统的部署模式改为微服务架构,当然这种成本比较高,但收益也会比较高;小的可能就是配置应用或者改造服务令其具备水平扩展的能力,利用类似于服务器组弹性伸缩,达到只为需要的资源付费。总体上来讲,每次架构优化和升级都会带来效率的提升和成本的下降,否则,我们也没有动力做这件事。

异常使用:异常使用的情况其实比较多,我们没有办法穷尽,但从表现上可以分为 2 种,一种是在云成本可视化图表上有着明显的波峰也就是费用异常波动,这种可以通过简单或者复杂的算法去识别到;另一种,一直都是错的,不仔细看根本无法发现,例如同在一个公有云的区域里面,通过公网访问对象存储的资源,产生互联网流量,这种只能通过分析账单、熟悉云计算、熟悉产品收费模式等下苦功夫。

3、定价效率

承诺用量:像国内常用的包年包月、AWS RI、Azure 国际的 RI 、Azure 中国的 CPP、Google Cloud 承诺使用折扣等等,这些都属于承诺用量,可以带来至少 40% 到 80% 的节省。

定价模式:这里想表达的意思是,在公有云上,同一款产品一般拥有多种收费模型,同时解决同一个需求又有着多种产品,在获取相应资源的时候,重新审视要选择的产品以及付费模式可以带来成本上的优化。例如同样是解决计算问题,有着服务器计算、容器计算、无服务器计算、函数计算等等,在保证业务正常的情况下,不同选择带来的成本也是不一样的。

账单等级:在国内,感觉应该叫大客户折扣,某些大客户拥有独享的折扣,很深很深。

4、控制

预算管理:通过为部门或者项目以及在某个产品或服务设置预算,并且设置相应的预警,超过预算相关人员就会收到相应的报警通知,属于后置的管理手段。

配额限制:通过为部门或者项目设置配额,来限制其使用资源的上限,这种属于前置的管理手段。

二、成本优化矩阵

我们把每种事项的复杂程度以及节省效果绘制成一个成本优化矩阵,以指导我们日常 FinOps 的动作。
f2.png
通过上图,我们可以很轻松的识别到,企业在实施云成本管理和优化(FinOps)的动作中,优先考虑右侧象限的定价效率、控制、可见性以及架构优化,实现快速降低云成本的目的。左侧象限动作复杂性较高,需要长期学习和坚持,才能达到预期的效果。

三、云联壹云的产品做到了哪些?

从上边的 4 大模块来讲,第三方的工具只能围绕可见性、控制、使用效率这 3 个方面做一些尝试。我们虽然也在这 3 个方面都做了,但是,我们在可见性和控制方面做得比较全面,这个对企业来说也是刚需,最直观的感受就是先要把公有云的账算清楚,才能谈其他的。从 2018 年帮助 VIPKID 做云成本管理开始,到现在陆陆续续接了几十家客户的云成本管理的需求,主要也是基于 6 大公有云做一些处理和分析,再加上多云管理平台里面天然有资源、业务等数据,整合起来,通过不同维度数据组合,并且可视化的展示出来,能够帮到企业客户把账算清楚,让云成本可运营可治理。
f3.jpeg
使用效率方面(也就是成本优化建议相关的功能)很早的时候也做了一些,而且我们把这些问题资源都筛出来,通过关联账单,把采取相应动作之后,可节约的费用也统计出来,就可以从定量的角度评估费用优化的价值,不过,这件事情叫好不叫座。究其原因其实就是优化目标的识别还不够准确,并且还需要人来做,未来我觉得这个模块应该可以更自动化或者更智能一些(没有安全风险的前提下)。
f4.png
点击阅读原文:企业面对FinOps,到底能做些什么?总结了4个方面

相关文章
|
Docker 容器
rpm查看安装软件的路径、日志
rpm查看安装软件的路径、日志
966 0
|
4月前
|
运维 前端开发 JavaScript
前端埋点校验工具:数据驱动的最后一道防线
数据埋点是企业决策的关键基础,但常面临覆盖率低、数据不准和故障难排查三大难题。本文深入剖析了这些问题的成因与影响,并提出“三维校验矩阵”解决方案:提升覆盖率至99.8%、降低错误率至0.3%、提速故障定位5倍。同时对比Split.io、Tealium、Sentry、板栗看板等工具优劣,为企业选型提供参考。迈向高质量数据治理,从精准埋点开始。
|
5月前
|
机器学习/深度学习 运维 自然语言处理
AIOps在美团的探索与实践——事件管理篇
本文介绍了美团AIOps在事件管理领域的探索与实践,涵盖事前预防、事中处理和事后运营三大阶段。通过智能变更检测、多模态故障诊断、相似事件推荐等技术,提升故障发现效率与准确性,助力运维智能化升级。
|
3月前
|
人工智能 JavaScript 前端开发
理解 JavaScript 中的节流和防抖:实现 `throttle` 和 `debounce` 函数
节流(throttle)是指在一定时间间隔内只执行一次函数,常用于控制高频事件触发频率,如滚动、窗口调整等。本文介绍其实现原理与代码示例。
169 0
|
9月前
|
机器学习/深度学习 人工智能 开发者
DeepSeek安装部署指南,基于阿里云PAI零代码,小白也能轻松搞定!
阿里云PAI平台支持零代码一键部署DeepSeek-V3和DeepSeek-R1大模型,用户可轻松实现从训练到部署再到推理的全流程。通过PAI Model Gallery,开发者只需简单几步即可完成模型部署,享受高效便捷的AI开发体验。具体步骤包括:开通PAI服务、进入控制台选择模型、一键部署并获取调用信息。整个过程简单快捷,极大降低了使用门槛。
1949 43
|
数据挖掘 BI 数据处理
FineBI在线学习资源-数据处理
FineBI在线学习资源-数据处理
241 1
|
SQL NoSQL 安全
MongoDB命令汇总
这篇文章提供了一个MongoDB命令的汇总,包括数据库操作、DDL和DML命令、安全管理、数据备份恢复、远程连接管理和聚合操作等。
567 2
|
JavaScript 前端开发
JS常用数据类型转换(数字型和字符串型之间转换)
JS常用数据类型转换(数字型和字符串型之间转换)
458 2
|
数据库 UED 开发者
try-catch的作用及使用场景
`try-catch`是错误处理的关键结构,用于执行可能出错的代码并捕获异常,防止程序崩溃。它用于异常处理、资源管理、错误恢复、日志记录和控制业务逻辑。例如,在数据库操作、文件操作、网络请求及用户输入处理中常见其身影,确保程序稳定性和用户体验。
1333 0
|
前端开发 Java Android开发
基于Java的跨平台移动应用开发
基于Java的跨平台移动应用开发