写点什么

华为云云原生 FinOps 解决方案,释放云原生最大价值

  • 2024-04-29
    广东
  • 本文字数:4523 字

    阅读完需:约 15 分钟

华为云云原生FinOps解决方案,释放云原生最大价值

华为云云原生 FinOps 通过可视化的成本洞察和成本优化,帮助用户精细用云以提升单位成本的资源利用率,实现降本增效目标

企业上云现状:上云趋势持续加深,但云上开支存在显著浪费


根据 Flexer 2024 年最新的一项调查显示,当前有超过 70%的企业重度使用云服务,而这个数据去年是 65%。由此可见,越来越多的企业开始把业务部署在云上。企业在使用云厂商提供的云服务的同时,也在为云服务的花费买单。调查显示,平均大约有 30%的云成本支出被认为是无效支出。如何节省云成本支出成为近几年上云企业最关心的 Top1 问题。


企业云原生化逐步深入,成本治理依然存在挑战


云原生技术当前已经成为很多企业进行数字化转型的主流方式。kubernetes 提供的资源共享、资源隔离、弹性调度等能力,本身能够帮助企业提升资源使用率,降低企业 IT 成本。然而,2021 年 CNCF《FinOps Kubernetes Report》的调研报告显示,迁移至 Kubernetes 平台后,68%的受访者表示所在企业计算资源成本有所增加,36%的受访者表示成本飙升超过 20%。其背后的原因值得深思。


云原生时代成本治理面对的挑战


云原生时代成本治理有四个矛盾点:


  1. 业务单元 VS 计费单元:一般云服务(比如 ECS)的计费周期比较长,可能是包月或者包年;而云原生容器的生命周期相对比较短暂,容器的弹性伸缩、故障重启等动作,都有可能导致资源的闲置率比较高。

  2. 容量规划 VS 资源供给:容量规划一般是静态的,一般是按照预算或者规划提前准备容器,而资源供给是业务来驱动。业务的高峰流量冲击,升级扩容等场景,都会对容量规划造成很大的挑战。

  3. 统一治理 VS 多云部署:现在很多企业使用了不止一朵云,不同的云厂商的账单接口和格式都不一样,不利于企业的多云统一成本治理。

  4. 成本模型 VS 云原生架构:云厂商的成本模型相对比较简单,一般是按照物理资源来计费,比如 ECS 服务是以整机的价格来计费。云原生架构以应用为中心,资源的申请细化到 CPU/内存等粒度。这就导致云原生场景成本可视化和成本分析比较困难。


总结下来,云原生成本治理面临三大挑战:


成本洞察:云原生场景如何实现成本可视化,如何快速定位成本问题、识别资源浪费?


成本优化:云原生成本优化的手段很多,如何采用合适的成本优化手段来实现收益最大化?


成本运营:企业如何构建可持续的成本治理体系与文化?


华为云云原生 FinOps 解决方案


FinOps 是一门将财务管理原则与云工程和运营相结合的学科,它使组织更好地了解其云支出。 它还能够帮助他们就如何分配和管理云成本做出明智的决策。 FinOps 的目标不是节省资金,而是通过云实现最大化的收入或业务价值。 它有助于组织控制云支出,同时保持支持其业务运营所需的性能、可靠性和安全性级别。


FinOps Foundation 将 FinOps 定义为三个阶段:通知、优化和运营。根据每个团队或企业完成 FinOps 的进度,公司可能会同时处于多个阶段。


通知(成本洞察):通知是 FinOps 框架的第一阶段。这一阶段旨在为所有利益相关者提供所需的信息,以便于他们了解情况,从而做出有关云使用的经济高效的明智决策。


成本优化:成本优化重点是想方设法节约成本。根据当前使用情况,您的组织可以在哪些方面合理调整资源规模,并从折扣中受益?


成本运营:成本运营是 FinOps 框架的最后一个阶段。在这一阶段,组织会根据业务目标持续评估绩效,然后想方设法改进 FinOps 实践。优化工作到位后,组织可以借助自动化来实施策略,在不影响性能的情况下不断调整云资源来控制成本。



华为云云原生 FinOps 解决方案,参照业界 FinOps 标准与最佳实践,为用户提供云原生成本多维可视化与多种成本优化治理手段,协助客户最大化的收入或业务价值。


云原生 FinOps - 成本洞察


华为云云原生 FinOps 成本洞察,提供如下关键特性:


1、基于标签的资源成本归属


支持 ECS、EVS 等资源关联集群标签,便于集群费用汇总计算


2、基于 CBC 账单的精准成本计算


基于 CBC 真实账单进行成本分摊计算,精准划分部门成本


3、灵活的成本分摊策略


支持集群、命名空间、节点池、应用、自定义等多种维度的成本可视化与成本分摊策略。


4、支持长期的成本数据存储与检索


最大支持长达 2 年的成本分析,支持月度,季度,年度报表及导出。


5、工作负载快速感知,轻松应对快速弹性场景


针对应用快速弹性场景,支持分钟级的负载发现与计费能力,让所有成本无一遗漏。



云原生成本洞察的实现机制介绍:


1、集群物理资源成本 VS 集群逻辑资源成本


集群的成本可以从两个角度来计算:


  • 集群物理资源成本,包括集群直接或间接关联的资源成本,比如集群管理费、ECS 成本、EVS 成本等。集群的物理资源成本可以从云成本账单中直观的体现出来。

  • 集群逻辑资源成本,从 kubernetes 资源的角度,集群的成本包括工作负载的成本,再加上集群闲置资源成本和公共开销成本。


不难看出,集群物理资源成本=集群逻辑资源成本。



2、单位资源(CPU/内存等)成本计算


在集群的物理资源成本已知的情况下,如何推导出集群逻辑资源成本(如 pod/工作负载),是云原生 FinOps 成本洞察的关键。这里核心要解决的问题是单位资源成本计算的问题。我们知道,一般的云虚拟机是按照整机的价格去售卖的,不会按照单位 CPU 或内存售卖。但是容器服务的资源占用是按照单位资源(CPU 或内存等)来申请的。所以必须计算出单位资源的成本,才能最终计算出容器服务占用的成本。


一般云厂商单位 CPU 或内存的价格会有一个估算值,我们也可以按照 CPU 和内存的成本占比来计算单位资源成本。



3、云原生资源成本计算


从下图我们可以看出,一个 Pod 的资源使用是随着时间动态波动。有些时刻 Pod 的资源占用低于资源申请(Request),有些时刻 Pod 的资源占用大于资源申请(Request)。在计算 Pod 成本时,我们会定时采样 Pod 的实际使用值和 Request 值,并将实际使用值和 Request 值中的最大值用于 Pod 的成本计算。这是因为一旦 Request 值分配给 Pod,那么这不是资源会被 K8S 预留,不会被其他 Pod 抢占。所有 Pod 需要为 Request 部门的资源买单。同理,如果 Pod 的实际使用量大于 Request,那么这个 Pod 也需要为超出的部分买单。



基于以上原理,我们就可以得出 Pod 的成本计算:



将命名空间下所有的 Pod 成本累加,就可以得出命名空间维度的成本:



基于以上计算逻辑,华为云 CCE 云原生成本治理特性实现了多种维度的集群成本可视化,比如:

集群成本可视化



命名空间成本可视化



节点池成本可视化



工作负载成本可视化



4、部门成本分摊与成本分析报表


很多企业会把一个集群安装命名空间的粒度分配给不同的部门使用。那么如何对各个部门的成本进行可视化分析?



从上图可以看出,部门的成本不仅包括部门归属的命名空间的成本,还应该承担一部分公共成本。这部分功能成本包括系统命名空间成本和空闲资源成本。


华为云 CCE 云原生成本治理支持基于部门的成本分摊策略配置,如下图所示:



同时,基于部门的成本分摊策略,华为云 CCE 云原生成本治理提供了月度/季度/年度报表功能,最大支持 2 年的报表查询与导出。


云原生 FinOps - 成本优化


云原生场景如何提升资源利用率?


据 Gartner 统计,企业 CPU 平均使用率不足 15%,造成资源利用率低的原因有多种,典型场景有:


• 资源配置不合理:部分用户对于自己服务的资源使用情况不了解,申请资源时具有盲目性,通常申请过量资源


• 业务波峰波谷:微服务具有明显日级别波峰、波谷特性,用户为保证服务的性能和稳定性按照波峰申请资源


• 资源碎片化:不同业务部门资源池独立,无法做到资源共享,容易产生资源碎片。



容器化能一定程度上提升资源利用率,但是存在部分问题单纯依赖容器化无法得到有效解决:


• 资源过量申请:如果没有有效的资源推荐和监控机制,普遍实践还是是超额申请、积沙成塔造成资源浪费。


• 资源池统一:K8s 原生调度器缺少组、队列等高阶调度能力;大数据业务存算一体难以利用容器弹性优势。


• 应用性能:单纯增加部署密度难以保证服务质量。


为了提升集群资源利用率,CCE 云原生 FinOps 解决方案提供了多种优化手段,比如智能应用资源规格推荐、云原生混部、动态超卖等能力。


5、智能应用资源规格推荐


为了保障应用性能和可靠性,同时由于缺乏足够的可视化工具,我们总是倾向为应用申请过量的资源。为了解决这一问题,CCE 云原生成本治理提供了智能应用资源规格推荐功能。该功能基于应用的历史画像数据,基于机器学习算法,为应用推荐最佳的申请值。




6、华为云云原生混部解决方案


华为云 CCE 云原生混部解决方案基于 volcano 插件,支持一键部署,为容器业务提供高低优先级混合部署,动态超卖,服务 QoS 保障等能力。关键能力主要包括:


  • 容器业务优先级与资源隔离



  • 融合调度


  1. 应用 SLO 感知:多类型业务智能混合调度,应用拓扑感知,分时复用,超卖等;

  2. 资源感知调度:提供 CPU NUMA 拓扑感知、IO 感知、网络感知调度,软硬协同,提升应用性能;

  3. 集群资源规划:提供队列、公平、优先级、预留、抢占等丰富策略,统一满足高优、低优业务;


  • 节点 QoS 管理:多维度资源隔离、干扰检查、驱逐机制。



下面重点介绍动态超卖特性:如何将节点闲置资源再利用,提升资源利用率。


动态超卖的核心原理为:将节点 Request 和实际使用量的差值部分,作为可调度资源,供调度器重新分配,仅供低优任务使用。


超卖特性有如下特点:


  • 低于作业优先使用超卖资源

  • 高优作业预选超卖节点时只能使用其非超卖资源

  • 统一调度周期高优作业先于低优作业调度



不管是云原生混部还是超卖特性,都可以提升资源利用率。那么如何在提升资源利用率的同时,保障应用性能与服务质量?


华为 HCE 2.0 OS 提供的 CPU 隔离能力,结合 CPU 快速抢占、SMT 管理控制和离线任务压制指令的负载均衡能力,保障在线业务资源 QoS 同时,也能让被压制的离线任务指令尽量快速得到响应。



根据实验室中模拟在线和离线混部场景(CPU 利用率 70+%)与单独业务部署在线的场景(CPU 利用率 30%)进行性能对比,混部场景中在线业务的性能(时延 &吞吐)劣化幅度控制在单独部署在线业务性能的 5%之内。基本可以认为把混部对性能的影响降低到可以忽略不计。



下面我们来看一个客户案例,该客户利用华为云云原生混部解决方案,优化资源配置,最终实现 35%的资源利用率提升。


该客户的主要痛点包括:


  • 应用干扰:大数据与在线语音、推荐等应用争抢资源,e.g. cpu/memory,网络;影响高优任务服务质量。

  • 应用资源配置不合理:为了保证调度成功,request 设置很小,不能反馈负载资源需求,引发资源冲突

  • 应用绑核:部分应用绑核,总体资源利用率低


基于客户痛点,我们为客户提供如下解决方案:


  • 客户将原来节点 OS 由 CentOS 切换至华为云 HCE OS;

  • 将调度器由原来基于默认调度器切换至 Volcano 调度器;

  • 根据客户业务属性,配置调度优先级、隔离等等策略;


通过华为云云原生混部解决方案,最终为客户带来资源利用率提升 35%的收益。



7、CCE Autopilot:按需付费与灵活规格助力客户节约成本


CCE 全新推出的 Autopilot 集群,支持按照应用的实际用量按需付费,相对于 CCE 集群的优势是 Autopilot 集群将节点的管理运维完全托管起来,这样您无需提前规划和购买节点资源,从而实现精细化的成本治理。


这里我们看两个客户场景:


  • 互联网文娱和社交业务,春节假期期间流量是平时的数倍,专项跟踪运维保障,提前预留资源,成本巨大。

  • 网约车平台,业务具有典型的早晚高峰特点,传统驾驶模式需要客户手动购买和提前预留资源,资源利用率低。


通过 Autopilot 可以实现成本精细化治理,最终实现整体成本降低与收益最大化。



点击关注,第一时间了解华为云新鲜技术~

发布于: 2024-04-29阅读数: 24
用户头像

提供全面深入的云计算技术干货 2020-07-14 加入

生于云,长于云,让开发者成为决定性力量

评论

发布
暂无评论
华为云云原生FinOps解决方案,释放云原生最大价值_云原生_华为云开发者联盟_InfoQ写作社区