阿里十年:资源与成本管理演进

从Excel管理的蛮荒时代到云原生FinOps的精细化运营,一览超大规模系统下的成本优化之道。

🏷️ 分类: 技术 商业
🔖 标签: #资源管理 #成本优化 #云原生 #FinOps #K8s #调度器

资源管理的历史阶段

1

第一阶段 (2008-2010): 能运行就行

核心诉求是稳定性,资源管理粗放,成本意识缺失。

  • 管理工具:Excel表格,手动更新IP。
  • 核心问题:管理效率低下,稳定性风险高。
  • 池化率 (PR): 0%,资源无法被统一调度。
2

第二阶段 (2011-2014): 方便管理

引入CMDB,以“应用分组”为核心,但资源仍是孤岛。

  • 管理工具:CMDB (Armory),关联应用与资源。
  • 核心问题:部署效率低,存在大量呆滞资源。
  • 池化率 (PR): 依然为 0%,仍是弱管理。
3

第三阶段 (2015-2017): 方便扩缩容

调度器(K8s等)成为核心,资源管理进入新台阶。

  • 管理工具:K8S/Sigma/ASI 等调度器。
  • 核心问题:池化率提升后,资源分配率成为新瓶颈。
  • 池化率 (PR): 从 30% 跃升至 95%,实现了质的飞跃。
4

第四阶段 (至今): 关注全局成本

视角从单一计算资源扩展至所有云产品,精细化成本运营。

  • 管理工具:成本中心 (HCRM),FinOps实践。
  • 核心问题:管理多云产品复杂性,平衡成本、效率与稳定性。
  • 目标:提升全局有效利用率 (EUTR)。

资源管理漏斗模型

一个量化资源管理水平的框架,揭示了从付费到有效使用的层层损耗。

Total: 所有付费资源

成本的起点,无论是否使用。

🔻

Pooling: 可调度资源

被统一调度器管理的资源。衡量指标:池化率 (PR)

🔻

Allocate: 已分配资源

已分配给业务的资源。衡量指标:分配率 (AR)

🔻

Used: 实际使用资源

业务真实消耗的资源。衡量指标:利用率 (UR)

🔻

Effective Used: 有效使用资源

归一化后的有效资源消耗。衡量指标:有效利用率 (EUR)

全局有效利用率 (EUTR)

EUTR = PR * AR * UR * EUR

衡量公司整体资源管理水平的CTO级指标。

优化漏斗:从PR到EUTR的实践

第二步:提高分配率 (AR)

核心在于解决资源碎片化问题,目标是让池内资源尽可能被业务申请走。

应用画像 & 规格整理

推荐合理规格,避免为凑规格而浪费资源。

碎片整理

通过离线重调度,将碎片资源整合成可用大块资源。

分配率优化:容器规格分布

分析容器`内存/CPU`比例 (α) 的分布,是规格整理的依据。规格过于分散是碎片的主要来源之一。

注:数据显示α=4和α=8是主流规格,但长尾分布依然造成碎片。

第三步:提高CPU利用率 (UR)

利用率是降本的核心。通过在线、离线任务混部,榨干CPU资源,实现成本的极大节约。

关键技术:在线离线混部

  • 优先级区分:在线任务优先级远高于离线任务。
  • 绑核机制:在线、离线任务可共享CPU核心。
  • 在线压制离线:在线任务繁忙时,自动抢占离线任务的CPU时间片。
  • 资源隔离:利用Cgroups等技术确保在线业务稳定,不受离线任务干扰。

混部成果

离线任务几乎 免费使用500万核以上 的CPU资源,极大节省了成本。

第四步:云上全局成本管理

当CPU优化到极致,其他成本(存储、网络)成为新的大头。需要系统化的成本管理平台(HCRM)进行全局优化。

HCRM 核心流程

预算 Budget
需求 Demand
交付 Delivery
额度 Quota
用量 Usage
账单 Billing

云上成本构成 (2022)

超越成本:稳定性不可能三角

成本不是唯一。研发团队必须在稳定性、资源效率和迭代速度之间做出权衡。

⚡️ 迭代速度
💰 资源效率
🛡️ 稳定性

不可能三角

一段时间内,三者只能取其二

生产效率模型

a = S · R · R'

在技术水平(a)不变时,稳定性(S)、资源利用率(R)、迭代速度(R')三者相互制约。