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

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

时间:2024-04-29 13:55:18浏览次数:20  
标签:原生 云云 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可以实现成本精细化治理,最终实现整体成本降低与收益最大化。

 

 

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

 

标签:原生,云云,FinOps,华为,集群,成本,资源
From: https://www.cnblogs.com/huaweiyun/p/18165538

相关文章

  • efcore 执行原生sql语句
    EntityFrameworkCore(EFCore)执行原生SQL查询需要返回查询结果使用FromSqlRaw()方法:这是EFCore提供的一种执行原生SQL查询的方式。您可以将SQL查询直接嵌入到代码中,并将结果作为实体对象返回。以下是一个示例,演示如何执行原生SQL查询并将结果映射到实体对象:v......
  • 云原生最佳实践系列 7:基于 OSS Object FC 实现非结构化文件实时处理
    01方案概述现在绝大多数客户都有很多非结构化的数据存在OSS中,以图片,视频,音频居多。举一个图片处理的场景,现在各种终端种类繁多,不同的终端对图片的格式、分辨率要求也不同,所以一张图片往往会有很多张衍生图,那如果所有的衍生图都存在OSS中,那存储的成本会增加,所以就可以通......
  • openGauss MOT查询原生编译_JIT
    MOT查询原生编译(JIT)MOT使您可以在执行之前以原生格式(使用PREPARE语句)准备并分析预编译的完整查询。这种本机格式以后可以更有效地执行(使用EXECUTE命令)。这种类型的执行效率要高得多,因为在执行期间,本机格式绕过了多个数据库处理层。这种分工避免了重复的解析分析操作。LiteExecu......
  • WPF所有原生空间使用demo
    //前台窗体<Windowx:Class="WpfTestDemo.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.......
  • h5使用原生麦克风
    conststartButton=document.getElementById('chart_button');    constinputText=document.getElementById('chatui_input');     //initrecognition    constrecognition=newwebkitSpeechRecognition();     functi......
  • .net开源智能家居之小米米家的c#原生sdk【MiHome.Net】1.0.0发布
    背景介绍hi大家好,我是三合,作为一个非著名懒人,智能家居简直刚需,在上一篇文章他来了他来了,.net开源智能家居之苹果HomeKit的c#原生sdk【Homekit.Net】1.0.0发布,快来打造你的私人智能家居吧中有靓仔提到,没有苹果设备,有一说一,苹果手机很贵,并且原生支持苹果HomeKit的智能家居设备......
  • 他又来了,.net开源智能家居之小米米家的c#原生sdk【MiHome.Net】1.0.0发布,快来打造你的
    背景介绍hi大家好,我是三合,作为一个非著名懒人,智能家居简直刚需,在上一篇文章他来了他来了,.net开源智能家居之苹果HomeKit的c#原生sdk【Homekit.Net】1.0.0发布,快来打造你的私人智能家居吧中有靓仔提到,没有苹果设备,有一说一,苹果手机很贵,并且原生支持苹果HomeKit的智能家居设备也......
  • “企业创新新引擎”数据库专项赋能会,让云原生技术普惠千行百业!
    本文分享自华为云社区《“企业创新新引擎”数据库专项赋能会,让云原生技术普惠千行百业!》,作者:GaussDB数据库。4月19日,由福州软件园科技创新发展公司和华为技术有限公司联合主办的HCDG城市行福州站——“企业创新新引擎”数据库专项赋能会在福州软件园成功举办。会议结合当下企业......
  • 原生js base64格式数据 下载
    原生jsbase64格式数据下载/***封装base64Strblob对象**/functionbase64toBlob(base64Str){varbstr=atob(base64Str),n=bstr.length,u8arr=newUint8Array(n);while(n--){u8arr[n]=bstr.charCodeAt(n);}returnnewBlob([u8arr]);}/......
  • 面试官:在原生input上面使用v-model和组件上面使用有什么区别?
    前言还是上一篇面试官:来说说vue3是怎么处理内置的v-for、v-model等指令?文章的那个粉丝,面试官接着问了他另外一个v-model的问题。面试官:vue3的v-model都用过吧,来讲讲。粉丝:v-model其实就是一个语法糖,在编译时v-model会被编译成:modelValue属性和@update:modelValue事件。一......