云原生场景的企业IT成本治理

更新时间:

ACK提供成本治理FinOps解决方案来协助企业IT成本管理人员实现容器集群分账。本文介绍了成本治理FinOps解决方案的背景信息、成本治理流程及如何实现容器集群分账。

背景信息

云原生技术逐渐成为当下很多企业进行IT信息化转型的最佳方式,提供共享、隔离、弹性等能力,能够非常简单地降低企业IT成本。然而,2021年CNCF《FinOps Kubernetes Report》的调研报告显示,迁移至Kubernetes平台后,68%的受访者表示所在企业计算资源成本有所增加,36%的受访者表示成本飙升超过20%。造成这一现象的原因有两方面:第一,由于云原生技术的一些不当使用而带来的技术债务,造成了IT成本增加;第二,传统企业在面对云原生架构的引入时缺乏有效的成本洞察和成本控制的手段,难以分析成本增加的根因。

ACK提供成本治理FinOps解决方案来协助企业IT成本管理人员实现容器集群分账。方案提供了资源浪费检查、资源费用预测等功能,通过账单分析、用量统计与实时询价相结合的方式实现对Pod维度的准确估算。

成本治理FinOps解决方案

成本治理FinOps解决方案从物理和逻辑两个维度进行聚合分析,物理维度包括集群的Node、节点池和资源组,逻辑维度包括Pod、应用负载和命名空间,并将物理维度的费用和逻辑维度的费用进行打通,建立完整的资源成本画像,能够更准确合理地进行IT成本治理。FinOps通过构建企业IT成本可视化系统,协同业务、运维、财务进行战略协同,实现IT成本的数字化、可视化,通过问责不追责的方式,连续迭代优化企业IT成本。

ACK以FinOps的方式实现了成本治理功能,通过成本洞察、成本优化和成本控制三个方面来进行IT成本治理。

成本洞察

成本洞察通过计量和计费相结合的成本分摊模型和智能资源成本画像,实现多维度的容器成本分账与洞察。本方案提供四个维度的成本洞察,分别为集群维度、命名空间维度、节点池维度和应用维度。

  • 集群维度提供对集群整体资源和成本情况的洞察,能够反映集群成本的整体健康状况。对于一个集群,首先需要关注的就是整个集群的费用趋势变化,以判断成本是否符合预期。在集群成本变化呈现非正常趋势时,进行问题下钻,排查成本异常的根因。

  • 命名空间维度能够通过命名空间筛选、展示各命名空间的资源和成本信息。使用命名空间大盘分析成本的前提是公司以命名空间维度划分部门或业务。在此基础上,本方案实现了部门或业务级别的成本分摊。

  • 节点池提供了集群资源维度的成本洞察。ECS云资源往往是集群产生费用的主要组成部分,也是IT运维人员最直接管理的资源。节点池成本洞察能够为您提供节点池资源使用分析和付费策略的选择。

  • 应用成本洞察以Label通配符匹配的方式,筛选出您关心的应用来进行成本、资源的统计,侧重于场景化的成本优化。通过Label通配符匹配的方式,您不仅可以监控单应用的成本和资源用量,还可以对多个有相关性的应用进行监控。例如大数据工作流的场景,您可以为流程中的所有应用加上一致性的Label,从而对整个工作流业务进行成本分析。

成本优化

成本优化提供多种优化策略。常见的优化策略包括:

成本控制

成本控制提供预算管理、配额管理、成本预测、成本报警等能力,并且支持多云及混合云等场景。

本方案中,成本洞察和成本控制是成本治理过程中最直接、有效的手段。在企业成本治理的过程中,一般推动成本治理的角色是IT主管和基础设施管理团队,他们可以通过成本洞察发现云资源使用上的浪费,再通过成本控制解决浪费问题。而成本优化是业务团队的职责,需要通过他们对业务层面上的认识来进行优化策略的选择,并非IT主管直接推动,同时在成本优化策略的选择中,容易因策略使用不当而产生技术债务,影响成本治理效果。因此,相比于成本优化,成本洞察和成本控制能更直接有效地实现成本治理的效果。

成本治理流程

在一个企业的IT成本治理过程中,可以分为三种角色:IT主管或财务、IT运维人员、业务研发人员。

IT主管或财务的职责是确认企业的IT成本处在预算的正常范围内,当成本趋势不合理时,需要找到对应的IT运维人员进行问题下钻;IT运维人员的职责是分析预算不合理的原因,设计资源付费的优化策略,再驱动业务团队进行优化;业务研发人员负责实施优化策略,再把IT成本治理的效果向上反馈,形成闭环。

因此,成本治理的一般流程为:

如何实现容器集群分账

这里以某公司运行大数据业务的集群为例,梳理成本治理的流程。首先IT主管通过洞察整个集群成本,发现该集群存在成本飙升的现象,随即安排IT运维人员进行问题下钻;IT运维人员找到成本趋势异常的命名空间(部门或团队),分析资源利用率和各应用的资源消耗情况,排查出了问题应用;业务研发人员进一步下钻,发现该应用是还未上线的测试应用,却配置了定时伸缩,且副本数较大,浪费了大量较贵的计算资源,最终通过重新配置资源解决了这一成本问题。

步骤一:从集群大盘获取集群总费用

  1. 登录“费用与成本控制台”,进入“成本优化 - 集群成本分析与优化-容器服务ACK”页,可进行各个集群的成本优化分析操作。

  2. 在右侧成本分析页面,单击Cluster页签,进入集群大盘。

  3. 在左上角选择CostDiscounted Cost,显示折后价格。在右上角选择计费周期。

    1

  4. 查看集群费用。

    参数名称

    参数说明

    Daily Cost

    昨日费用。

    Weekly Cost

    上周费用。

    Monthly Cost

    上月费用。

    Day-on-day Ratio

    相对昨日费用的变化比率。

    • 当变化比率的字体颜色为绿色时,表示相比前一日的成本是降低的。

    • 当变化比率的字体颜色为红色时,表示相比前一日的成本是增涨的。

  5. 查看集群费用趋势。

    参数名称

    参数说明

    Cost Trending-Cluster

    计费周期内集群费用的变化趋势。

    Cost Trending-Product

    计费周期内云产品费用趋势与比例。

步骤二:从命名空间大盘获取部门、业务费用拆分

  1. 在右侧成本分析页面,单击Namespace页签,进入命名空间大盘。

  2. 在大盘左上角选择具体的命名空间,在右上角选择计费周期。

    2

  3. 查看命名空间费用。

    参数名称

    参数说明

    Cost-NS

    命名空间的费用。

    Cost Ratio-Namespace

    该费用占集群总费用的比例。

  4. 查看命名空间资源使用情况。

    参数名称

    参数说明

    CPU Request、Memory Request

    分配的资源量。

    CPU Usage、Memory Usage

    真实消耗的资源量。

    Actual CPU Utilization、Actual Memory Utilization

    实际的CPU使用率。

  5. 查看命名空间中资源浪费最多的Pod。

    参数名称

    参数说明

    CPU Utilization

    Pod的CPU使用率。

    Memory Utilization

    Pod的内存利用率。

    Waste Rate

    Pod的资源浪费率。

    更多信息,如下图所示。3

步骤三:从应用大盘获取应用费用拆分

  1. 在右侧成本分析页面,单击Application页签,进入应用大盘。

  2. 在大盘左上角选择具体的命名空间,配置LabelSelector。在大盘右上角选择计费周期。

    5

  3. 查看应用费用。

    参数名称

    参数说明

    Cost

    计费周期内的费用。

    Cost Per Core*Hour

    每核时的单位价格。

  4. 查看应用资源使用情况。

    参数名称

    参数说明

    Pod Num

    该应用峰、谷值的副本数。

    Utilization

    CPU和内存的利用率。

    Uptime

    应用的运行时间。

    Core*Hour

    应用总消耗的核时资源数。

    Utilization Statistic

    应用占整个集群、命名空间的资源利用率。

  5. 查看应用内每个Pod的成本和资源信息。

    参数名称

    参数说明

    Utilization

    Pod的CPU和内存的利用率。

    Cost Per Core*Hour

    Pod每核时的单位价格。

    Cost Evaluation

    Pod的费用。

    Core*Hours

    Pod总消耗的核时资源数。

    Uptime

    Pod的运行时间。

    更多信息,如下图所示。4