之前花时间研究了一下云成本管理和优化,算是有一些收获,我今天把这些分享出来,算是抛砖引玉了,如果有朋友有更好的方法或者好的文章,也欢迎推荐给我们。
一、头脑风暴:云成本优化的方法有哪些?
首先,我们看一下,在企业说要做云成本优化的时候,我们都能够做什么?
如上图所示,我们所有的行为分为 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 的动作。
通过上图,我们可以很轻松的识别到,企业在实施云成本管理和优化(FinOps)的动作中,优先考虑右侧象限的定价效率、控制、可见性以及架构优化,实现快速降低云成本的目的。左侧象限动作复杂性较高,需要长期学习和坚持,才能达到预期的效果。
三、云联壹云的产品做到了哪些?
从上边的 4 大模块来讲,第三方的工具只能围绕可见性、控制、使用效率这 3 个方面做一些尝试。我们虽然也在这 3 个方面都做了,但是,我们在可见性和控制方面做得比较全面,这个对企业来说也是刚需,最直观的感受就是先要把公有云的账算清楚,才能谈其他的。从 2018 年帮助 VIPKID 做云成本管理开始,到现在陆陆续续接了几十家客户的云成本管理的需求,主要也是基于 6 大公有云做一些处理和分析,再加上多云管理平台里面天然有资源、业务等数据,整合起来,通过不同维度数据组合,并且可视化的展示出来,能够帮到企业客户把账算清楚,让云成本可运营可治理。
使用效率方面(也就是成本优化建议相关的功能)很早的时候也做了一些,而且我们把这些问题资源都筛出来,通过关联账单,把采取相应动作之后,可节约的费用也统计出来,就可以从定量的角度评估费用优化的价值,不过,这件事情叫好不叫座。究其原因其实就是优化目标的识别还不够准确,并且还需要人来做,未来我觉得这个模块应该可以更自动化或者更智能一些(没有安全风险的前提下)。
点击阅读原文:企业面对FinOps,到底能做些什么?总结了4个方面