首页 > 其他分享 >华为云云原生FinOps解决方案,释放云原生最大价值

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

时间:2024-09-02 19:58:26浏览次数:12  
标签:原生 云云 FinOps 集群 成本 Pod 资源

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

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

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

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

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

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

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

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

  • 业务单元 VS 计费单元:一般云服务(比如ECS)的计费周期比较长,可能是包月或者包年;而云原生容器的生命周期相对比较短暂,容器的弹性伸缩、故障重启等动作,都有可能导致资源的闲置率比较高。
  • 容量规划 VS 资源供给:容量规划一般是静态的,一般是按照预算或者规划提前准备容器,而资源供给是业务来驱动。业务的高峰流量冲击,升级扩容等场景,都会对容量规划造成很大的挑战。
  • 统一治理 VS 多云部署:现在很多企业使用了不止一朵云,不同的云厂商的账单接口和格式都不一样,不利于企业的多云统一成本治理。
  • 成本模型 VS 云原生架构:云厂商的成本模型相对比较简单,一般是按照物理资源来计费,比如ECS服务是以整机的价格来计费。云原生架构以应用为中心,资源的申请细化到CPU/内存等粒度。这就导致云原生场景成本可视化和成本分析比较困难。

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

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

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

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

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

▍华为云云原生FinOps解决方案

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

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

  • 通知(成本洞察):通知是 FinOps 框架的第一阶段。这一阶段旨在为所有利益相关者提供所需的信息,以便于他们了解情况,从而做出有关云使用的经济高效的明智决策。
  • 成本优化:成本优化重点是想方设法节约成本。根据当前使用情况,您的组织可以在哪些方面合理调整资源规模,并从折扣中受益?
  • 成本运营:成本运营是 FinOps 框架的最后一个阶段。在这一阶段,组织会根据业务目标持续评估绩效,然后想方设法改进 FinOps 实践。优化工作到位后,组织可以借助自动化来实施策略,在不影响性能的情况下不断调整云资源来控制成本。

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

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

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

▍云原生FinOps - 成本洞察

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

  • 基于标签的资源成本归属

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

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

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

  • 灵活的成本分摊策略

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

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

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

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

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

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

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

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

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

  • 集群物理资源成本,包括集群直接或间接关联的资源成本,比如集群管理费、ECS成本、EVS成本等。集群的物理资源成本可以从云成本账单中直观的体现出来。
  • 集群逻辑资源成本,从kubernetes资源的角度,集群的成本包括工作负载的成本,再加上集群闲置资源成本和公共开销成本。

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

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

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

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

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

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

3、云原生资源成本计算

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

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

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

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

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

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

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

集群成本可视化

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

命名空间成本可视化

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

节点池成本可视化

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

工作负载成本可视化

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

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

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

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

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

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

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

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

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

▍云原生FinOps - 成本优化

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

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

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

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

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

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

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

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

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

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

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

1. 智能应用资源规格推荐

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

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

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

2. 华为云云原生混部解决方案

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

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

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

  •  融合调度

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

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

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

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

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

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

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

超卖特性有如下特点:

  • 低于作业优先使用超卖资源
  • 高优作业预选超卖节点时只能使用其非超卖资源
  • 统一调度周期高优作业先于低优作业调度

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

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

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

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

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

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

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

该客户的主要痛点包括:

  • 应用干扰:大数据与在线语音、推荐等应用争抢资源,e.g. cpu/memory,网络;影响高优任务服务质量。
  • 应用资源配置不合理:为了保证调度成功,request设置很小,不能反馈负载资源需求,引发资源冲突
  • 应用绑核:部分应用绑核,总体资源利用率低

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

  • 客户将原来节点OS由CentOS切换至华为云HCE OS;
  • 将调度器由原来基于默认调度器切换至Volcano调度器;
  • 根据客户业务属性,配置调度优先级、隔离等等策略;

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

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

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

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

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

  • 互联网文娱和社交业务,春节假期期间流量是平时的数倍,专项跟踪运维保障,提前预留资源,成本巨大。
  • 网约车平台,业务具有典型的早晚高峰特点,传统驾驶模式需要客户手动购买和提前预留资源,资源利用率低。

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

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

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

标签:原生,云云,FinOps,集群,成本,Pod,资源
From: https://blog.51cto.com/u_15214399/10651024

相关文章

  • DBA福利:云原生分布式数据库 PolarDB-X 操作指南
    DBA福利:云原生分布式数据库PolarDB-X操作指南前言准备工作在Windows上准备测试环境环境操作说明安装PXD使用PXD一键安装PolarDB-X方式一方式二操作说明体验PolarDB-X源码编译安装PolarDB-X编译PolarDB-XDN体验感受前言作为开发者,数据库可以说与开发者息息相关,一个系统是否......
  • 原生JS实现城市选择(输入提示)组控件
    先看效果图:功能需求:国内城市、国际城市切换首字母索引分类输入变化提示HTML代码<divclass="m-list"><divclass="g-sch"><ulclass="f-cbz-blankhide"><liclass="first"><pclass="u-......
  • 云原生周刊:LitmusChaos 审计完成|2024.9.2
    开源项目推荐GardenerGardener实现了Kubernetes集群的自动化管理和操作服务,并提供了一个经过完全验证的可扩展性框架,可以调整以适应任何编程云或基础设施提供商。GrafanaMimirGrafanaMimir为Prometheus提供了横向扩展、高可用、多租户的长期存储解决方案。Terragrunt......
  • 云原生存储Rook部署Ceph
            Rook是一款云原生存储编排服务工具,Ceph是一种广泛使用的开源分布式存储方案,通过Rook可以大大简化ceph在Kubernetes集群中的部署和维护工作。        Rook由云原生计算基金会(CNCF)孵化,且于2020年10月正式进入毕业阶段。Rook并不直接提......
  • webView中,无法利用JS监听APP原生返回后事件
    描述:用uniapp开发的APP,内容页用webView内嵌的h5做的;现在有个需求,在A页面点击新增,uni.navigateTo打开B页面,然后在B页面新增修改完数据之后,uni.navigateBack返回A页面;需要在A页面监听;当页面回到A的时候刷新数据;问题:在A页面用js无法监听到页面返回了;尝试监听方案:1、只能监听页面......
  • 一线实战:运维人少,我们是如何从 0 到 1 实践 DevOps 和云原生?
    作者:周明轩背景上海经证实业集团成立于2009年,公司一直致力于为新能源、车辆租赁以及智能机器人行业的客户群体提供高质量的“产投融合”增值服务,通过标准化金融产品和供应链信息技术为纽带,更好的服务实体经济。上海经证科技有限公司是上海经证实业下属的科技公司。问题及痛点......
  • 一线实战:运维人少,我们是如何从 0 到 1 实践 DevOps 和云原生?
    作者:周明轩背景上海经证实业集团成立于2009年,公司一直致力于为新能源、车辆租赁以及智能机器人行业的客户群体提供高质量的“产投融合”增值服务,通过标准化金融产品和供应链信息技术为纽带,更好的服务实体经济。上海经证科技有限公司是上海经证实业下属的科技公司。问题及痛点......
  • 终于!我找到了开发的得力助手!阿里云天池云原生编程挑战赛参赛攻略
    作者:ysevenk_7参赛准备我是机缘巧合在 6月底了解到了天池云原生编程挑战赛,于是乎搜了一下,之前本人对于比赛并没有太多经验,看了大赛介绍之后莫名兴奋,果断拉了队友报名,完成认证、起队名、下载插件注册等准备任务,然后根据官方给出的赛题进行选择,由于我对开源的经验非常少,束手束脚......
  • 终于!我找到了开发的得力助手!阿里云天池云原生编程挑战赛参赛攻略
    作者:ysevenk_7参赛准备我是机缘巧合在 6月底了解到了天池云原生编程挑战赛,于是乎搜了一下,之前本人对于比赛并没有太多经验,看了大赛介绍之后莫名兴奋,果断拉了队友报名,完成认证、起队名、下载插件注册等准备任务,然后根据官方给出的赛题进行选择,由于我对开源的经验非常少,束手束脚......
  • 【云原生之kubernetes实战】k8s环境中部署Nginx服务
    【云原生之kubernetes实战】k8s环境中部署Nginx服务一、Nginx介绍1.1Nginx简介1.2Nginx特点1.3Nginx使用场景二、本次实践介绍2.1本次实践简介2.2本次环境规划三、检查k8s环境3.1检查工作节点状态3.2检查系统pod状态四、部署storageclass(......