• 作者:老汪软件技巧
  • 发表时间:2024-09-13 21:01
  • 浏览量:

前言

在数字化转型的浪潮中,越来越多的企业选择使用云服务来提升业务灵活性和扩展能力。然而,云资源的快速增长同时也带来了成本控制的挑战。FinOps 作为一个结合了成本、业务和运维的跨领域实践,旨在帮助企业优化云资源的使用,实现成本透明化、可预测性和控制。

云计算的成本挑战

云计算的按需定价模式虽然带来了灵活性,但同时也使得企业在成本控制上面临诸多挑战。首先,云服务的使用量和费用往往呈现出高度的波动性,企业很难根据历史数据准确预测未来的支出。这种不确定性使得预算编制和财务规划变得复杂,且容易导致超支。

其次,云服务的复杂性增加了成本管理的难度。不同云厂商的计费方式各异,企业在使用多种来源的云服务时,难以统一管理和监控各项费用。这种复杂的账单结构往往让团队感到困惑,难以快速提取关键信息,导致决策的滞后。

第三,受云厂商本身账单体系设计的限制,对于多产品、跨地域的场景,其原生账单体系在使用上也可能出现账单数据割裂的情况。使用户无法简单快捷的获取整体账单及费用情况。

最后,云资源成本来源难以准确评估,导致业务或财务团队无法准确识别成本驱动因素并制定相应的优化策略。或识别特定的成本责任主体。

综上,实现精准有效的 FinOps 优化,对于企业“用好云”是至关重要的一个环节。

基于云账单实施FinOps的问题

虽然基于云厂商的消费账单明细进行财务视角下的云成本优化是一个常见的做法,但一直存在一些不足之处:

忽视资源使用效率

基于账单的成本评估及优化措施往往容易单纯关注账单金额而忽视资源的使用效率,可能导致企业在节省成本的同时,影响业务性能。而有效的成本优化措施要求我们必须关注成本产生来源,应优化那些不能为实际业务产生价值或与业务无关的无效资源浪费,而非优化与主要业务相关的核心资源投入。但对于大部分的云服务,客观上无法通过数据探针的方式采集到相关资源的使用率,如何获取或聚合这些云服务也是云成本优化过程中需要解决的一个难题。

缺乏业务上下文信息

为解决资源使用效率的问题,用户通常引入一些简单的监控,或基于云厂商提供的原始监控能力对优化目标系统进行资源利用率管理。由于这些数据孤立且缺乏关联,使得账单数据缺少与最终业务目标的关联,进一步导致优化措施无法与企业的业务目标对齐。在这样的数据背景下实施的成本优化措施通常会出现与业务实际的资源需求方向偏差的情况,容易引发成本事故。

数据易用性问题

通过原始账单采集到的成本数据通常受限于不同云厂商、不同消费地域或不同产品类型限制,需要较为复杂的查询过程——例如反复切换账单来源、筛选条件,或登录多个账单入口界面——才能获取整体消费情况。如云厂商账单系统提供的定制化、个性化筛选能力不足,用户可能无法为不同的账单使用主体快速定制个性化消费情况。影响费用评估的效率和最终效果。

可观测体系下的FinOps方案

与传统账单功能相比,可观测工具(Observability Tools)能够帮助企业更好地理解和管理云资源。借助自身对云资源的多维度观测和数据收集能力,可观测工具可以将账单分析和优化的视角从传统财务视角扩展到业务视角,并通过自身强大的数据处理和清洗能力,提供个性化、定制化的费用聚合分析。用户可以借助这些能力,制定贴合业务实际运行情况的成本优化方案,实现精准的云成本优化。以观测云为例,可以实现的FinOps效果如下:

数据统一采集

观测云通过提供统一的数据采集套件 Datakit,将业务系统内所有相关的指标、日志、链路及用户访问情况统一采集到平台中。借助数据清洗打标的功能,用户可以在采集时为不同来源的指标、日志等数据定制个性化标签,作为后续成本数据分析的聚合依据,提升成本分析效率。

全链路分析

观测云提供的全链路分析能力,可以将云资源使用情况和用户实际的业务访问情况进行关联。以业务使用的视角——例如真实用户体验或后端链路服务质量——来评价当前云成本使用情况的合理性,帮助分析团队从实际业务效果的角度理解云资源的价值,判断成本投入是否合理,为后续的优化决策提供业务数据支持。

云原生可观测_云观测的实验报告_

云账单、云服务监控集成

观测云提供的数据处理开发平台 DataFlux Func,不仅可以实现多个厂商云账单数据的统一归集,还可以将通常无法监控的云厂商原生服务的资源利用率指标等数据统一采集到一个分析平台,实现云服务监控数据到云账单数据的关联分析。同时,对于云服务商无法提供消费明细的云服务,Func 还可基于自定义脚本,实现整体消费情况到特定云服务的成本明细分摊,使云成本分析更贴近业务的实际使用情况。

灵活的可视化能力

通过场景仪表板的自定义可视化功能,用户可根据自身的分析需要定制不同的成本分析看板,对云资源、云账单及自定义成本数据分析进行可视化展示。帮助分析团队更直观的理解当前成本来源的构成。通过看板视图变量,用户可以快速筛选、过滤需要聚焦的账单数据,针对特定业务团队、特定云资源进行账单分析。相比原厂费用账单提供更灵活的分析维度。

观测云FinOps方案实践

下面我们以某客户的成本洞察及 FinOps 优化事件举例,分享观测云在实际优化场景中的使用。

云账单数据采集

该用户的云服务账单来源于某云厂商境内及境外的两个服务账号,在未使用观测云之前,需要分别登录国内站及国际站手工获取账单数据,且由于涉及的云资源归属三个不同的业务团队,而云服务申请时并未对云资源归属进行分类打标。导致导入的云账单数据只能显示某一单一服务类型的总体使用情况。无法基于业务单元进行分类分析。

针对这种情况,观测云首先使用 Func 的云厂商账单采集功能对账单数据进行拉取,获得消费成本的基础数据。再基于云服务对象采集和数据打标能力,对云服务对象基于实例命名特征进行业务单元归纳,统计每个业务单元所申请云服务的总量。再使用实例规格和目录单价计算每个业务单元在特定服务中的费用占比,进而重建业务单元维度的账单使用情况。使用户可以在一个统一界面上对两个云账号下的消费总额进行业务单元维度拆分。获取每个业务单元的账单明细。

云服务成本均摊

对于部分云服务,例如弹性容器服务或算力服务,需要按照业务单元对按量使用情况进行汇总。但此种类型的云服务在原厂账单中并不提供按实例拆分的消费明细,也无法安装数据探针进行资源利用率的采集。为获取这个数据,我们首先通过 Func 脚本,结合厂商提供的服务资源查询 API 获取特定时间段内工作负载运行明细,再结合云服务的当期成本费用计算每小时成本均摊。最后根据工作负载在当前时段内的运行占比,核算出归属不同业务单元的按量付费资源实际占用的成本。基于总体账单数据重建单一云服务资源在工作负载维度上的成本明细数据。

业务单元负载效率估算

对于不同业务单元对云资源使用效率的计算,我们首先通过观测云的 RUM-APM 全链路采集能力将一定时间段内的业务运行情况进行完整收集。结合用户实际访问量对当期云资源利用率——如 CPU/内存/磁盘等涉及成本计费项的资源——进行评估,结合业务系统对外承诺的 SLA 评判云资源利用率是否符合成本预期。对于访问量较少、云服务响应符合 SLA 预期的服务进行分析,判断是否需要降低配置规格以满足成本优化要求。对于访问量较大,有明显服务质量降低的业务,判断是否需要扩容相关资源或增加云服务实例购买数量以提升用户使用体验。通过实际业务表现和云资源利用率相结合的方式,实现对成本优化策略的科学制定。避免简单粗暴的“省钱”式优化,使成本优化结果更符合业务运行目标。

云服务账单看板制作

基于上述步骤采集的账单数据、指标数据、业务系统服务质量数据最终通过场景-仪表板的自定义图表功能汇总到一个统一的仪表看板。不同业务体系、不同部门的分析人员可根据自身数据聚合需求,通过视图变量按云资源、地域、业务归属、云服务对象等维度,对云资源费用进行分类展示和快速筛选。有效提升成本分析人员对成本数据的使用效率。直观展示不同业务所使用的不同云服务在指定时间段内的成本支出情况,协助用户快速确定成本优化点并基于数据实现成本优化决策的指定。

结论

随着云计算的普及,企业在享受云服务带来的便利的同时,也面临着成本控制的挑战。 FinOps 作为一种新的管理理念,通过与观测云强大的数据采集、分析、展示能力相结合,能够帮助企业实现云资源的精细化成本分析与成本优化。通过实时监控、深度分析和数据驱动的决策,企业不仅能够降低云成本,还能提升资源使用效率,推动业务以最优成本使用效率持续发展。